Bir oyun geliştirirken, deneysel değişikliklerin, düzenlemelerin veya yarım kalmış fikirlerin genel projeyi hemen etkilemesini istemezsin. Birden fazla dal oluşturmak, senin ve takım arkadaşlarının genel proje ilerlemesini yavaşlatmadan birlikte veya bağımsız şekilde güvenle çalışmasını sağlar.
Dallar, ana projenin farklı hızlarda ve farklı amaçlarla ilerleyen paralel sürümleridir.
Bir projenin aynı anda birden fazla tür çalışmayı desteklemesi gerekebilir. Dallar oluşturup bunları ayrı ayrı yöneterek her iş akışının kendi yolunda ilerlemesine izin verebilirsiniz. Böylece bu dalları yalnızca hazır olduğunuzda birleştirebilirsiniz. Takımların farklı nedenlerle kullandığı farklı dallanma stratejileri vardır, ancak yaygın yöntemlerden birinde aşağıdaki yapıdan yararlanılır:
Ana Dal: Proje için temel görevi gören, uzun süreli ve kararlı bir dal.
Sürüm Dalı: Belirli bir sürüm için çalışmaların test edildiği ve hazırlandığı dallar.
Özellik Dalı: Özellik çalışmalarının, bir sürüm dalına veya
anadala entegre edilmeden önce yürütüldüğü odaklı dallar.Deneysel Dal: Tüm projeyi veya diğer dalları etkilemeden güvenli bir şekilde keşif yapılabilen dallar.
Ana Dal
Ana dal, bir projenin en stabil sürümüdür. Diğer tüm dallar ondan türer ve tekrar ona geri bağlanır. Bu dal paylaşılan ve güvenilir temel sürümdür.
Ana dal şunun için kullanılır:
Çalışma hazır olduğunda başka bir dalı entegre etmek.
Oynanış testleri için stabil bir derleme oluşturmak üzere yinelemek.
Ana dalı takip eden bir geliştirme dalı oluştur. Geliştirme dalı, ana dalla birleştirmeden önce çalışmanın kararlılığını test edebileceğin yerdir.
Sürüm Dalı
Sürüm dalları, bir derlemeyi teste veya sürüme hazırlarken çalışmaların yapıldığı yerdir. Bir sürüm dalı, belirli bir sürüm hedefi veya zaman çizelgesi etrafında çalışmayı düzenlemek için harika bir yoldur.
Bir sürüm dalı şunlar için kullanılır:
Belirli işleri yayınlamak için özelliklerin dondurulması.
Hata düzeltmelerine ve ince düzenlemelere odaklanmak.
Son dakika değişikliklerinden ve kapsamın değişmesinden kaçınmak.
Sürüm çalışmalarını kendi dalına ayırmak, geliştirme sürecinin sonlarına doğru özellikle değerlidir çünkü:
Deneysel çalışmalara takım içinde sorun yaratmadan devam edilebilir.
Değişiklikler genel projede kalıcı değildir, bu da gecikmelere yol açabilir.
Takım bir sürüme nelerin dahil olduğunu her zaman bilir.
Özellik Dalları
Özellik dalı; sürüm dalları veya ana dallar için risk teşkil etmeden özellik çalışmalarını devam ettirmek amacıyla kullanılır. Takım arkadaşlarının diğer proje dallarını bozmadan özgürce değişiklik yapabildiği birçok özellik dalı olabilir.
Özellik dalları, şunlar gibi belirli görevler üzerinde çalışmak için oluşturulur:
Yeni bir oynanış sistemi eklemek.
Bir UI akışı oluşturmak.
Haritanın yeni bir bölümünü eklemek.
Özellik dalları şunlar için faydalıdır:
Özellik çalışmalarının gruplandırılması ve gözden geçirilmesi.
Nerede olduğunu kaybetmeden veya etkin çalışma alanını farklı değişikliklerle karıştırmadan, devam eden özellikler ile diğer işler arasında geçiş yapılabilmesi.
Farklı bir yönde ilerlemeye karar verdiğinde, özelli̇k dalı kimseyi etkilemeden kolayca terk edilebilir.
Özellik dalları, başka bir ekip arkadaşını veya devam eden çalışmayı etkilemeden kolayca terk edilebilir.
Deneysel Dallar
Deneysel dallar, yeni fikirlerin başka bir takım üyesinin çalışmasını kesintiye uğratmadan güvenle keşfedildiği yerdir. Bir fikri inceledikten sonra sonuçları karşılaştırıp neyi saklayacağına karar verebilirsin. Bir fikir işe yararsa değişiklikleri birleştirebilirsin. İşe yaramazsa dal silinebilir veya terk edilebilir.
Deneysel dallar şu şekillerde kullanılır:
Oynanış fikirleri için prototip oluşturmak.
Performans optimizasyonlarını denemek.
Alternatif tasarımları veya seviye dizilimlerini keşfetmek.