ゲーム開発ではなぜファイルのマージよりも「ロック」を多用して開発を進めるのか?
概要
ゲーム開発ではGitによるマージではなくPerforceのファイルロックが主流である理由を、ゲーム開発者アレックス・クリリン氏が解説。画像・3Dモデルなどのバイナリファイルの特性と、ゲーム開発特有のワークフローが背景にある。
詳細
- テキストvsバイナリ: Webサービス開発のようにテキスト形式のコードは差分マージが可能。だがゲームの画像・音声・3DモデルはバイナリでGitが行単位比較できない
- Unreal Engine Blueprint: GUIで作れるビジュアルスクリプトも自動マージが難しく、排他ロックが必要
- Perforce P4: 中規模以上のゲーム開発で広く使われるバージョン管理システム。中央サーバーがファイルとロック状態を管理し、排他チェックアウトで同時編集を防止
- ロックの問題点: 主要キャラのファイルを数日間ロックすると、アニメーターやデザイナーが作業できない。ロック解除忘れも問題
- 対策: 1ファイルに多くの機能を集めず役割ごとに小さく分割。Unreal EngineのActorComponentでファイルを分離
- ブランチ戦略: バイナリファイルのマージが困難なため、チーム全員がmainブランチで作業しロックで衝突を防ぐ運用が多い
- データ容量: 4Kテクスチャ1枚が数十MB、プロジェクト全体が数TB〜数十TBになることも。差分同期が必須
参照
- 出典: ゲーム開発ではなぜ「ロック」を多用するのか?(Gigazine)
- はてなブックマーク数: 17