CEDEC 2010「ネットワークゲーム開発における構成管理ソフトの活用方法」
今回はSEGAさんのPERFORCEの導入事例のセッションをレポートします。
ネットワークゲームのデータ管理の複雑さと、PERFORCEとその他のソフト(静的解析・BTS・自動ビルド)との連携などなかなか興味深かったです。
ではレポートです。
なぜ構成管理ソフトを導入するのか?
導入のきっかけ
- セガ・マークIII、メガドライブなどで発売されたファンタシスターシリーズ
- 2006年に運営が開始された PHANTASY STAR UNIVERSEで起きたトラブルから導入が検討
- 以降のソフトで採用されることとなった
構成管理ソフトとは?
- バージョン管理ソフトと、構成管理ソフトとどこが違うのか?
- 成果物の制御や変更管理・ワークフロー管理なども行う
- ビルド環境の構築のコアとなるツール
- プログラムのソース・デザインデータ・企画パラメーターなども一括管理
- デイリービルドも行える
- 成果物の状態を把握し、任意のバージョンを再現可能とする
- 日付を指定しての再現・バグのない状態への巻き戻りも容易にできる
ネットワーク開発において
- ゴールは一つではない(運営が終了するまで)
- しかも同時に別の道を走らなければならない
- しかも、同時に別の道を走らなければ
- それも"全力疾走で"
ネットワークゲームのタイムライン
構成管理ソフトの再検討
- 継続的なインテグレーション環境
- ビルドとテストを自動で行う環境の構築
- バグを減らすためのツールの導入
- 作業タスクの把握と変更管理
- チェック体制の見直しとツールでの補完
要求
- ブランチとマージ機能の充実
- 修正項目の把握と管理ができる
- 速くて軽くて簡単に扱える
- 他のツールとの連動ができる
- BTS・静的解析・タスク管理ソフトとの連携
選定候補
- PERFORCE
- AlienBrain
- データが大きくなりがち
- 全体的に処理が重い
- ブランチ・マージの機能が求めるレベルではなかった
- アーティストが使うデータ(画像など)のビューアが充実している
- アーティスト間のデータのやり取りには使われている
- Subversion
- データが増えると重くなる
- バイナリデータの扱いが苦手
- ブランチの機能が弱い
- ファイルを丸々コピーしてしまう
- ".svn"フォルダが生成されてしまう
- そのまま360のデータフォルダに入って問題になったことも
- ※セッション後に聞いた話では、Gitなどでもビューアや、GUIツールが対応されれば、全然使えるような事も言われていました。
PERFORCE 決定理由
- 軽い・速い
- 採用理由の大半がここ
- 40GBのデータを1回でコミット出来たのは、PERFORCEだけ
- 他のソフトは途中で止まる
- 分割してコミットするなどして、対応しないといけない
- Linuxでも、Windowsでも使える
- サーバのセッティングと管理が楽
- ブランチの機能が強力
- GUIのクライアントが存在する
- ソースとデータを同一に管理できる
- 日本語対応されている
- サポートが受けられる
- 社内でサポートする必要が減る
運用
活用
- 並列作業となるパッチ作成に活用
- ローカライズ対応
- 他機種への移植
- ゲームショーなどのプレゼンROMの対応
Tips
- サブミットする単位は一つの変更毎に行う
- サブミットコメントのフォーマットを揃える
- ブランチするタイミングを見極める
- ブランチのブランチは作らない(メインラインパターン)
- Excelとの差分が取れないので、インハウスツールを作って対応する
利点
要望
開発環境の紹介
- Hudsonを使って、継続的インテグレーション環境の構築
- 日本語環境に対応している
- PERFORCEのプラグインがあった
- 常時サブミットを監視してビルドを行う
- 専用PCを設置、自動ビルドを行う
- 出来たものは成果物として、サーバにアップする
- バージョンを指定しての成果物作成が可能
- 以前のバージョン・日付を指定して再現することが出来る
- IRCを使ってビルドの要求と結果の通知
- 静的解析ツールとの連動
- 毎晩、静的解析ツールを回している
- 毎朝、引っかかった部分は各自の所に結果が届く
- タスク管理システムやBTSとの連動
まとめ
- リリースに必要なファイルは全て管理しよう
- アーティスト・プランナにも使いやすい環境を整備しよう
- 変更管理をしっかりしよう
- 様々なツールを連動させよう
- より良い環境になるように、みんなで工夫しよう
ひとまず、これでニュースサイトに上がっていないセッションのレポートは、いくつか補完できたでしょうか。もうそろそろCEDECアーカイブが公開されるはず(?)なので、それまでの繋ぎ情報になると思いますが、活用していただけるとありがたいです。
あとマズい情報など載っけてしまった時は、お手数ですがご連絡ください。すぐに対処させていただきます。
では。