Während der Entwicklung eines Spiels ist es unpraktisch, wenn experimentelle Änderungen, Fehlerbehebungen oder unfertige Ideen sofort das gesamte Projekt beeinflussen. Das Erstellen mehrerer Branches (Verzweigungen) ermöglicht dir und deinen Teammitgliedern, mit mehr Sicherheit gemeinsam oder unabhängig zu arbeiten, ohne den gesamten Projektfortschritt zu verlangsamen.
Branches sind parallele Versionen des Hauptprojekts, die mit unterschiedlicher Geschwindigkeit und für unterschiedliche Zwecke weiterentwickelt werden.
Ein Projekt muss möglicherweise mehrere Arten von Arbeit gleichzeitig unterstützen. Das Erstellen und Verwalten von Branches macht dies möglich, da hierbei alle Arbeitsbereiche auf jeweils eigenen Pfaden ablaufen, die man erst dann zusammenführt, wenn man bereit ist. Es gibt verschiedene Branching-Strategien, die von Teams aus unterschiedlichen Gründen genutzt werden, aber bei einer häufigen Herangehensweise kommt Folgendes zum Einsatz:
Main-Branch: Ein stabiler, langlebiger Branch, der als Grundlage des Projekts dient.
Release-Branch: Branches, deren Arbeit getestet und für eine bestimmte Veröffentlichung vorbereitet wird.
Feature-Branch: Fokussierte Branches, in denen an Funktionen gearbeitet wird, bevor diese in einen Release-Branch oder
main-Branch integriert werden.Experimenteller Branch: Branches, in denen Verschiedenes sicher ausprobiert werden kann, ohne dabei das gesamte Projekt oder andere Branches zu beeinflussen.
Main-Branch
Der main-Branch ist die stabilste Version eines Projekts, da er die gemeinsame und zuverlässige Grundlage bildet, von der alle anderen Branches ausgehen und in die sie wieder zurückfließen.
Ein Main-Branch wird für Folgendes verwendet:
Um einen anderen Branch darin zu integrieren, sobald die Arbeit daran fertig ist.
Um zu iterieren und einen stabilen Build für Spieltests zu erstellen.
Erstelle einen dev-Branch, der dem main-Branch folgt. Im dev-Branch kannst du die Stabilität der Arbeit testen, bevor du ihn mit dem main-Branch zusammenführst.
Release-Branch
Bei Release-Branches ist die eigentliche Arbeit angehalten, während ein Build für Tests oder die Veröffentlichung vorbereitet wird. Ein Release-Branch ist eine tolle Möglichkeit, um die Arbeit im Sinne eines bestimmten Veröffentlichungsziels oder -zeitplans zu organisieren.
Ein Release-Branch wird für Folgendes verwendet:
Um Funktionen einzufrieren und so bestimmte Arbeit zu veröffentlichen.
Um sich auf Fehlerbehebungen und Feinschliff zu konzentrieren.
Um Änderungen in letzter Minute und das Aufblähen des Projekts zu verhindern.
Die Zuteilung der Release-Arbeit zu einem eigenen Branch ist aus diesen Gründen vor allem im späteren Entwicklungsverlauf nützlich:
Experimentelle Arbeiten können fortgesetzt werden, ohne dem Team Probleme zu bereiten.
Änderungen sind nicht dauerhaft für das Gesamtprojekt, was sonst zu Verzögerungen führen könnte.
Das Team weiß immer, was in eine Version kommt.
Feature-Branches
Ein Feature-Branch wird für laufende Arbeiten an Funktionen verwendet, ohne dass Risiken für den Release-Branch oder Main-Branch entstehen. Es kann viele Feature-Branches geben, in denen Teammitglieder frei Änderungen vornehmen können, ohne andere Projekt-Branches zu beeinträchtigen.
Feature-Branches werden für die Arbeit an einer bestimmten Aufgabe erstellt, zum Beispiel:
Hinzufügen eines neuen Gameplay-Systems
Aufbau eines UI-Ablaufs
Hinzufügen eines neuen Kartenbereichs
Feature-Branches sind hilfreich für:
Gruppierung und Prüfung von Arbeiten an Funktionen
Wechsel zwischen unfertigen Funktionen und anderer Arbeit, ohne deine Platz zu verlieren oder deine aktiven Arbeitsbereich mit verschiedenen Änderungen zu verunreinigen
Wenn du dich entscheidest, eine andere Richtung einzuschlagen, kann der Feature-Branch ganz einfach aufgegeben werden, ohne dass dies sonst auf jemanden Einfluss hat.
Feature-Branches lassen sich leicht aufgeben, ohne ein anderes Teammitglied oder laufende Arbeiten zu beeinträchtigen.
Experimentelle Branches
In einem experimentellen Branch kann man neue Ideen sicher ausprobieren, ohne die Arbeit eines anderen Teammitglieds zu unterbrechen. Nachdem du eine Idee erkundet hast, kannst du die Ergebnisse vergleichen und entscheiden, was du behalten möchtest. Wenn eine Idee funktioniert, kannst du die Änderungen durch Zusammenführen übernehmen. Sollte sie nicht funktionieren, kann der Branch gelöscht oder aufgegeben werden.
Experimentelle Branches werden auf folgende Weise verwendet:
Prototypen-Entwicklung für Gameplay-Ideen
Ausprobieren von Performance-Optimierungen
Ausprobieren alternativer Grafiken oder Level-Layouts