การแตกแขนงขึ้นอยู่กับการรองรับ VCS เล็กน้อยสำหรับคุณสมบัติ (เช่น: VCS ทำให้ง่ายหรือยาก)
แต่อย่างน้อยที่สุดคุณต้องการสาขาสำหรับแต่ละโครงการที่ได้รับการสนับสนุนโดยอิสระ นั่นคือถ้าคุณมี "Game 2" และ "Game 2 + Expansion" ซึ่งเป็นผลิตภัณฑ์แยกต่างหากที่สร้างขึ้นจาก codebase เดียวกันและคุณต้องสามารถแก้ไขและอัปเดตได้คุณต้องมีสิ่งเหล่านี้ มีอยู่ในสาขาของตัวเองออกจากรหัสฐานหลักเพื่อให้การแก้ไขฐานรหัสหลักสามารถผสานเข้ากับแต่ละผลิตภัณฑ์เหล่านี้ได้อย่างอิสระ (โดยทั่วไปแล้วสาขาเหล่านี้จะถูกสร้างขึ้นเมื่อมีการเปิดตัวผลิตภัณฑ์แต่ละตัวหรืออาจจะเป็นสองสามวัน / สัปดาห์ก่อนหน้าถ้าคุณมีคนกำลังทำงานกับสิ่งต่าง ๆ ใน codebase ซึ่งคุณไม่ต้องการออกไปกับรุ่นแรก)
เมื่อทำงานกับ VCS ซึ่งใช้สาขาที่ยุ่งยากหรือเจ็บปวด (SourceSafe, svn, ฯลฯ ) คุณอาจจะมีความสุขที่สุดในการรักษาสาขา "ปล่อย" สำหรับผลิตภัณฑ์ที่วางจำหน่ายแต่ละครั้งและทำการพัฒนาหลักใน "ลำต้น" การรวมการเปลี่ยนแปลงจาก "trunk" ไปยังสาขา "release" หากคุณต้องการเผยแพร่โปรแกรมแก้ไขด่วนสำหรับรุ่นเหล่านั้นและเมื่อใด
หากในอีกทางหนึ่งคุณกำลังทำงานกับหนึ่งในระบบ VCS ที่ใหม่กว่าซึ่งสร้างขึ้นจากการรวมสาขาและการรวมกัน (git, Bazaar, Mercurial ฯลฯ ) คุณอาจจะมีความสุขที่สุดในการพัฒนาระยะสั้น - "ฟีเจอร์" กิ่งก้านสด ตัวอย่างเช่นหากคุณกำลังทำงานกับ AI pathfinding คุณสามารถสร้างสาขา "pathfinding" และใช้รหัสในนั้น เมื่อคุณทำเสร็จแล้วคุณรวมสาขานั้นกลับเข้าไปในลำต้นหลักของการพัฒนาและ (ทางเลือก) ลบสาขาที่คุณกำลังทำงานข้อดีของวิธีนี้คือช่วยให้คุณทำงานหลายอย่างพร้อมกันแทนที่จะต้องทำให้เสร็จสมบูรณ์ งานก่อนที่จะเริ่มในครั้งต่อไป
ในโครงการบ้านปัจจุบันของฉัน (ใช้ git) ฉันมีสาขาฟีเจอร์ห้าสาขาที่เปิดใช้งานอยู่ตอนนี้ทำงานกับฟีเจอร์ต่าง ๆ สองวิธีนี้เป็นวิธีการสำรองในการทำสิ่งเดียวกัน (สำหรับการทำโปรไฟล์) สองรายการเป็นแนวคิดทางกลเกมทดลองและอีกวิธีหนึ่งคือ refactor ขนาดใหญ่ของระบบ AI ของฉัน ตอนนี้ แต่มันมีความมุ่งมั่นในฟีเจอร์สาขาสำหรับการอ้างอิงและการสำรองข้อมูลและการใช้งานไม่ได้ทำให้ฉันไม่สามารถทำงานในฟีเจอร์อื่น ๆ ได้ ฟีเจอร์อื่น ๆ เหล่านั้นจะแยกและเรียกใช้อย่างถูกต้อง
จากประสบการณ์ของฉันในการพัฒนาเกมมืออาชีพที่ยิ่งใหญ่เรายังคงยึดติดกับระบบควบคุมเวอร์ชันเก่า (และสนับสนุนในเชิงพาณิชย์) เป็นส่วนใหญ่ Perforce อาจใช้บ่อยที่สุดตามด้วยการโค่นล้ม ทุกที่ที่ฉันทำงานเรามีสาขา 'ลำตัว' แล้วแยกสาขา 'ปล่อย' สำหรับทุกสิ่งที่สามารถส่งได้ บางครั้งใครบางคนจะสร้างสาขาส่วนบุคคลสำหรับการเปลี่ยนแปลงครั้งใหญ่บางอย่างที่พวกเขากำลังสร้างหรือทดสอบ แต่นี่เป็นของหายากมากและมักจะเป็นสิ่งต่าง ๆ เช่น "การแปลงเกมให้ทำงานกับห้องสมุดฟิสิกส์ที่แตกต่างกัน" ซึ่งอาจไม่ผ่าน ผลิตภัณฑ์ที่วางจำหน่าย