龍が如くシリーズが1年スパンで発売できる秘密

http://www.4gamer.net/games/094/G009425/20100901107/ (4gamer.net)
ほぼ1年おきに新作を出している『龍が如く』シリーズの開発ノウハウが、日本版GDCCEDEC 2010』にて公演。


セッション第1部・開発環境編
(1)リソース管理の高速化

・マシンやネットワークなどの投資を惜しまない
・極力ネットワーク負荷を抑える運用を独自に構築

私の関わるプロジェクトは、この投資を惜しむ所が多い事多い事....
但し、投資をしても限界はあるので、そこで独自にP2P型のリソース管理ツール"TiVersion"を作成して運用していたらしい。
(P2Pなので、データ転送などが必要最小限になる。)


(2)ビルド時間の短縮

・OSを64bitにし、メモリを大量に載せて分散ビルドをする。

10分の1の時間でビルドできる様になるのは、結構大きいですね。
んで、利用OSでWindowsXP/7と、Vistaがdisられているのはワロタww


(3)PCでの代替開発

PS3開発機にプログラムデータを転送する必要があり、その為起動に時間が掛かる。
PS3開発機上だとデバッグ機能が貧弱
PS3開発機は高い(多分PCと比べての意味だと思う)

まぁ、極当然な事ではあるよね。
それよりも、PS3と同等の機能を持つ内製ライブラリを開発しているのは、なかなか素晴らしい。
カプコンのMT-FrameworkやスクエニのCrystal Toolsも、マルチプラットフォーム開発としては素晴らしいのかもしれないが、
実は、セガの内製ライブラリも、地味に凄いかもしれないねぇ。


(4)コーディングしやすい環境作り

・チーム内でのコミュニケーションと育成
・『プレイスポット』のミニゲーム制作を全て若手に任せて、小規模だがゲーム開発手法を育成している
パーティションは立てずに、雑談や質問がしやすい環境

ミニゲーム制作を若手に任せて育成』は、ある意味『龍が如く』らしい育成方法ですね。


第2部・基礎技術(ライブラリ)編
(1)代替開発のマルチプラットフォームライブラリ

・製品リリースを目的としているわけではなく、開発効率の向上を目的としている。
・PCとPS3で共通の型を利用する(共通のソースコード
・内部メモリの使用量を極力同等にする(共通のメモリ使用量)
APIやハードの違いを吸収する(共通の挙動)
PS3とPCではエンディアンが異なるため、データはPS3に合わせて作成し、PCではロード時にエンディアンを解決する(共通のバイナリデータ)
・DirectX9環境での動作
・不正動作時のASSERT処理

とにかく『共通』がキーワードになっている感じですね。
DirectX9環境は、PS3がGeForce7800のデチューン版だから、当然と言えば当然ですね。
不正動作時のASSERT処理は、結構重要ですよね。


(2)HDゲーム開発には切り離せないシェーダに関する運用法

・シェーダプログラムはプログラマが作成する事により、シェーダの総数掌握や現実的ではない冗長なシェーダを事前に排除する
・シェーダプログラムは極力PC/PC3で共通化出来る様にライブラリ側で極力吸収する
・シェーダプログラムに命名規約で取り扱い、プログラム名だけでそのシェーダの動作が判明出来る様にする

シェーダプログラム自体はデザイナーではなくプログラマーが作成するのは、GUIツール上で制作する様な海外とは若干異なる部分かもしれないですね。
命名規約については、ゲーム開発に限らず大規模開発時はよく使われている手法ですよね。


(3)PS3というターゲットに対しての最適化

・重かったらSPUに処理を移す

アプローチ的には、コナミMGS4と同じやり方ですね。
当然の如く、頂点処理はSPUにやらせている様です(笑)が、SCE提供のPlaystation Edgeではなく独自実装の様です。


第3部・デバッグ

デバッグカメラ(ゲーム中は目視しにくい部分を確認する等)
デバッグストップ(デバッグカメラとセットで更に細かい部分まで目視確認)
デバッグウィンドウ
・シナリオセレクタ(シナリオの途中から開始する事でデバッグ時間短縮)
・どこでもセーブロード(バグ発生時のエビデンスとして)
・スクリーン・ムービーキャプチャ(バグ発生時のエビデンスとして)

(1)ゲームプログラムのデイリーリリース
デイリーリリースの時間割をきっちり決めて、TiVersionで配布。
(2)自動ビルドチェック
subversionで管理されているソースコードを自動ビルドしてチェックし、問題を早期発見・学習する。
ビルドエラーが発生した場合は、自動でエラーメッセージを送信する様にする。
(3)プログラムが異常終了した際のデバッグレポートをメールで送信する機能
自動で送信される様にして、人員削減に貢献。
(4)オートテスト
設定ファイルを元に自動でテストをしてくれる様にする。
PCが空いている休日や深夜を有効利用できる。


開発の一部分のみではなく、全般に渡るお話で、非常に内容が凄い濃い。
マジ、どろり濃厚龍が如くエッセンス。
これ、ゲーム開発だけじゃなくて、通常の業務開発でも十分に使えるよ。