ゲームの開発中、実験的な変更や修正、未完成のアイデアがすぐにプロジェクト全体に影響するのは避けたいものです。 複数のブランチを作成すると、プロジェクト全体の進行を遅らせることなく、あなたとチームメイトが安全に協力して作業したり、単独で作業したりできます。
ブランチは、メイン プロジェクトの並行バージョンであり、それぞれ異なる速度と目的で進行します。
プロジェクトでは、複数の種類の作業を同時にサポートする必要がある場合があります。 ブランチの作成と管理は、各種のワークストリームをそれぞれ独自のパスで進めることを可能にし、準備ができたらそれらをマージすることで、これを実現します。 チームは目的に合わせてブランチングを使い分けますが、一般的なパラダイムの 1 つは以下を活用します。
メイン ブランチ:プロジェクトの基盤となる、安定した長期運用用のブランチ。
リリース ブランチ:特定のリリースに向けて作業をテストし、準備するためのブランチ。
機能ブランチ:リリース ブランチや
メインブランチに統合される前に、機能の作業を進めるための専用ブランチ。実験的ブランチ:プロジェクト全体や他のブランチに影響を与えることなく、安全に試行できるブランチ。
メイン ブランチ
メイン ブランチは、他の全てのブランチがそこから分岐し、最終的に戻ってくる共有された、信頼できるベースラインとなるため、プロジェクトの最も安定したバージョンです。
メイン ブランチは次の目的で使用されます:
作業の準備ができたら、別のブランチを統合する。
プレイテスト用の安定したビルドを作成するためにイテレートする。
メイン ブランチに追従する開発ブランチを作成する。 開発ブランチでは、メイン ブランととマージする前に作業の安定性をテストできます。
リリース ブランチ
リリース ブランチでは、テストまたはリリース用のビルドを準備する間、作業がロックされます。 リリース ブランチは、特定のリリース目標やスケジュールに合わせて作業を整理するには適した方法です。
リリース ブランチは次の目的で使用されます:
機能をフリーズして、特定の作業をリリースする。
バグの修正と改善に注力する。
直前の変更や作業範囲の肥大化を避ける。
リリース作業を独自のブランチに分けることは、開発の終盤で特に効果的です。理由は次のとおりです:
実験的な作業は、チームにとっての問題を引き起こすことなく継続できます。
変更はプロジェクト全体に恒久的に反映されないため、スケジュールの遅れが発生する可能性があります。
チームは常に、リリースに何が含まれるかを把握できます。
機能ブランチ
機能ブランチは、リリース ブランチやメイン ブランチにリスクを持ち込むことなく、機能に関連する作業を行うために使用されます。 チームメイトが他のプロジェクト ブランチを壊すことなく自由に変更できる機能ブランチは、複数作成できます。
機能ブランチは、次のような特定のタスクの作業のために作成されます。
新しいゲームプレイ システムの追加。
UI フローのビルド。
マップの新しいセクションの追加。
機能ブランチが役立つ場面:
機能作業をグループ化し、レビューする。
進捗を失わずに作業中の機能とほかの作業を切り替える、性質の異なる変更でアクティブなワークスペースが混乱しないようにする。
別の方向に進むことにした場合でも、機能ブランチは他の人に影響を与えることなく簡単に破棄できます。
機能ブランチは、別のチームメイトや進行中の作業に影響を与えることなく、簡単に破棄できます。
実験的ブランチ
実験的ブランチは、別のチーム メンバーの作業を妨げることなく、新しいアイデアを安全に試すことができるブランチです。 アイデアを検討した後、結果を比較して、何を残すか決定できます。 アイデアに満足できれば、変更をマージできます。 不満があれば、そのブランチは削除するか、放棄できます。
実験的ブランチは、次の方法で使用されます:
ゲームプレイのアイデアのプロトタイプを作成する。
パフォーマンスの最適化を試す。
代替のアートやレベルのレイアウトを検討する。