オススメ機能
Twitter
お気に入り
記事履歴
ランキング
パッケージ
龍が如く4 伝説を継ぐもの公式サイトへ
読者の評価
79
投稿数:13
レビューを投稿する
海外での評価
77
Powered by metacritic
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[CEDEC 2010]プログラマの立場から考える,HDゲーム開発に必要な事前準備と開発手順
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2010/09/02 00:00

イベント

[CEDEC 2010]プログラマの立場から考える,HDゲーム開発に必要な事前準備と開発手順

 「10か月でHDゲームを開発する方法〜龍が如くを支えたテクノロジー」と題した,セガ第一CS研究開発部のスタッフ3人によるプログラミングに関するセッションが,CEDEC初日に行われた。
 このセッションでは,セガの第一CS研究開発部が制作するPlayStation 3版「龍が如く」シリーズを例に,大規模プロジェクトを迅速に遂行するために必要な事前準備や開発手順,デバッグの手法などが具体的に解説された。

 受講スキルとして,PlayStation 3やXbox 360,PCなどのハイエンド環境でC++を使用してのゲーム開発経験が挙げられていることもあり,専門用語や開発に使われるソフト名などを用いた,プログラマ向けの実践的な内容のセッションとなった。

画面は「龍が如く4 伝説を継ぐもの」
龍が如く4 伝説を継ぐもの
「龍が如く」とは,いわずと知れたアクションアドベンチャーゲームの大作シリーズ。毎年リリースすることを使命とし,実際の開発期間は約10か月と短い。その短期間ながら,クオリティに関しては維持(むしろ向上)が要求されている
龍が如く4 伝説を継ぐもの 龍が如く4 伝説を継ぐもの


セッション第1部・開発環境編


 最初に登壇したのは,セガ第一CS研究開発部フェローの加来徹也氏。同開発チームによる作品「龍が如く」の簡単な説明の後,主に開発の事前準備についての紹介を行った。その内容は,事前にさまざまな工夫をして開発時間の短縮を図るというものだ。なお,仕様書作成やリソースを揃えるといった作業はここでは割愛されていた。

 大量のデータと格闘しなければならないHDゲーム開発には,とにかく膨大な時間が掛かる。そこで,時間をいかに削ることができるかという点を,開発環境の改善によって考えていくことが重要だと加来氏は述べた。
 そのために必要なのが,リソース管理の高速化,ビルド時間の短縮,PCでの代替開発,コーディングしやすい環境づくり,という四つのポイントだ。


第1部は開発時間を短縮するため重要だという,この四つのポイントにスポットを当てて講演が行われた
龍が如く4 伝説を継ぐもの


 まず,リソース管理の高速化について。HDゲームにどれだけのデータが使われているかというと,「龍が如く4」では,製品版用の実機データ:21.4GB(約1万9000ファイル),中間データ(実機データにコンバートする前のデータ):398GB(約34万3000ファイル)。主にデザインリソースが占めるこれらのデータは,LANを通してのコピーが発生することとなる。これらはやむを得ないコストであるとし,その中でいかに高速化できるかを追求していくべきだと加来氏は語る。ちなみに,ソースコードは普通に,Subversionで管理しているそうだ。
 リソース管理の高速化で最初に行うことは,高性能なサーバー/ネットワークの導入で,導入コストを惜しまず信頼性の高いものをチョイスしているという。良いものを選ぶことで,結果的に時間が短縮されてコストが減るという思想が根本にあるようだ。

 しかし,いくら良いハードを導入しても限界はある。そこで,「龍が如く」開発チームは,独自のリソース管理ツール“TiVersion”を構築。この内製ツールは,最大5ノードとのP2P接続を使用し,サーバーの負荷を軽減することができる。さらに職種に応じた必要ファイルの選択が行え,ファイル転送量の根本的な削減に成功したという。ただし,このツールにはバージョン管理機能は必要最低限しか備わっておらず,バックアップ等はサーバーで行っているとのことだ。

TiVersionはエクスプローラーのような外観をしている。P2P接続をしているユーザー名や必要なファイルの場所はこのツールで一目瞭然
龍が如く4 伝説を継ぐもの


 ビルド時間の短縮については,分散ビルドによって解決し,ビルド時間は実に10分の1にまで軽減。リンク時間の短縮は,64bitOS(Window XP,Windows 7)を早期導入し,メモリの増設(4GB〜6GB),早いローカルストレージの導入といったPCの高性能化で対応したという。

「龍が如く」シリーズではXoreax社の「IncrediBuild」というシステムを早くから導入していたという
龍が如く4 伝説を継ぐもの


 なぜ,PS3開発機ではなくPCで代替開発を行うのか。実際のところPS3開発機を用いているプログラマも多いと思うが,理由はこの専用開発機にいくつかの問題点があるためとのこと。これらの問題点を解決するため,高性能なPCで開発環境を構築しているのだが,これにより素早い起動を実現し,PS3開発機では実現困難なさまざまなオプションを持つデバッグ機能も利用可能になったという。さらに機器のコスト安と大量のPCによる同時デバッグなどといったメリットがあることにも触れられていた。

PS3開発機の問題点は,起動時間の遅さとデバッグ機能の不足,そして専用機であることからコストが高くなってしまうことだ
龍が如く4 伝説を継ぐもの


 また,プログラマに対してどんな会社でもコーディングルールというものは存在すると思うが,「龍が如く」チームでは緩いコーディングルールを敷いているという。一定の基準の中である程度の自由を与えることで,各自の能力を存分に発揮してもらい,さらにモチベーションの維持にも繋がっているそうだ。
 また,内製のライブラリも使っており,PCとPS3で同じ動作を実現しているという。加えて,内製のライブラリを使うことは,ライブラリ開発者が近くにいることでもあり,質問がしやすく,修正も迅速に,そして理解しやすいといったメリットがあるのだ。

 開発チームのコミュニケーションと育成に気を配ることでも,コーディングしやすい環境は作られるという。
 「龍が如く」チームの場合,上は23年目から下は1年目の新人まで,最大で35名のプログラマが活躍している。そのうち若手のプログラマには,「龍が如く」でいうプレイスポット,ビリヤードやダーツといったミニゲームを,1人のプログラマに最後まで任せることで,育成の環境としているのだとか。
 また,パーティションを立てずに雑談をしやすくし,質問や報告を気軽に行えるようにしてコミュニケーションの向上も図っている。

実際の開発室の風景も写真で紹介された。ざっくばらんに会話できる環境が,コミュニケーションを取りやすくしているのだろう
龍が如く4 伝説を継ぐもの


第2部・基礎技術(ライブラリ)編


 加来氏の次に登壇したのは,セガ第一CS研究開発部プログラムリーダーの厚孝氏だ。同氏の講演は,先に話に出ていたPC上での,代替開発のマルチプラットフォームライブラリ,HDゲーム開発には切り離せないシェーダに関する運用法,そしてPS3というターゲットに対しての最適化の3点がメインとなった。

 PCでPS3と同様の開発を行う,マルチプラットフォームライブラリを自社開発すること。これは製品のリリースを目的としたものではなく,開発効率の向上を目的としたものを指す。このライブラリ制作には,PCとPS3上での共通なソース記述やメモリ使用量などの機能を考慮して開発を行っているという。


龍が如く4 伝説を継ぐもの
DirectX 9環境での動作というのは,デザイナーや企画といった職種ではWindows XPを使っていることがあるためと説明された。動作速度については,PS3開発機と代替用PCで同じにすることができなかったという
龍が如く4 伝説を継ぐもの
中央の青い部分がライブラリ群で,システム層としてスレッドやファイル,メモリアロケーションといったOSに近い部分,マス層としてマトリックスやベクトル演算といったものがまとめられているのが分かる

 ここからは,同ライブラリで使っている共通のソース/メモリ使用量/挙動を内部記述を含めて解説していたので,そのスライドをまとめて掲載しておこう。

龍が如く4 伝説を継ぐもの 龍が如く4 伝説を継ぐもの
龍が如く4 伝説を継ぐもの 龍が如く4 伝説を継ぐもの


 シェーダに関しては,プログラマがコーディングする形を取っているという。これは,どうしても増えてしまうシェーダの総数を抑制し,現実的ではない冗長なシェーダを事前に排除する目的もあるようだ。なお,シェーダのソースコードはPC/PS3に加えて,DCCツール用のシェーダも共通化しているのが特徴。環境の違いはシェーダ共通のヘッダ内のプリプロセッサで解決するという手法だ。
 PS3の場合は,ここでフラグメントシェーダの静的分岐をエミュレートしている。シェーダのコンパイラに関しては,fcx.exe(PC),scs-cgc.exe(PS3)といったコマンドラインを呼び出すフロントエンドを用意し,それをVisual Studio上で行う形だ。ちなみに,シェーダの名前もルール化されており,名前からそのシェーダが何を実行しているのかを推測できるようにしている。

デザイナーなどは名前のルールに抵抗があるのではと危惧していたようだが,結果的にはすぐ慣れたという。あいまいな名前での発注がなくなることで,仕事自体の効率化にも繋がったようだ
龍が如く4 伝説を継ぐもの


 シェーダのアサインに関しては,キャラクターデザイナーや背景デザイナーがDCCツール(3ds MaxとSOFTIMAGE XSIに対応)上で,シェーダファイル名を指定して行っている。
 シェーダのパラメータとして,マテリアルとテクスチャ,さらにUVアニメーションや個別パラメータも設定可能。そのプレビューはツール上で確認できる。基本的な質感は実機と同様だが,ポストエフェクト処理とダイナミックな光源には未対応で,除外されたものになっているという。
 最終的には,モデルのマテリアル情報としてシェーダとパラメータをセットにしたものを出力する。その際は独自フォーマットのエクスポーターを使用するとのこと。

龍が如く4 伝説を継ぐもの
マテリアルエディタ上で指定したパラメータの状態が,プレビューとして確認できる。ここで使っている3ds Maxの場合は,標準でDirectXシェーダマテリアルというものが存在し,簡単なパラメータUIも作れるらしい
龍が如く4 伝説を継ぐもの
XGSを使用して,SOFTIMAGE XSIでも3ds Max対応フォーマットのリアルタイムシェーダ環境を実現したという。ファイル自体を共有できるのが長所だが,バージョンアップに手間が掛かり,実装コストはやや高い


 PS3というターゲットに対する最適化の指針は,PCとのマルチプラットフォーム環境,バイナリの互換と,同様の挙動は維持すること。ゲームアプリ開発者には出来るだけ負担をかけないよう,中間のライブラリ層で吸収させることを前提に考えること。意味のない最適化は自己満足にしかならないので,実シーンの解析を行って効果の大きい最適化を施すことの3点となる。
 ここでは,「龍が如く」での実例でより深く説明が行われた。この実例でのSPU(Synergistic Processing Unit )の利用についてパネルで詳しく解説されていたので,こちらも併せて掲載しておこう。

雑多な町並みを表現するため,オブジェクト数とマテリアル数が多いゆえに描写コマンドの発行数も増えてしまっている。「龍が如く」の舞台である神室町の高負荷な場所では約12000回。しかし,一つ一つは非常に軽量であることから,GPU描写よりも先にPPUの描写セットアップ処理が間に合わないという事態に。したがって,ここではPPUの処理時間を短縮させる最適化が効果的になるのだ
龍が如く4 伝説を継ぐもの

龍が如く4 伝説を継ぐもの 龍が如く4 伝説を継ぐもの


第3部・デバッグ編


 最後に登壇したセガ第一CS研究開発部プログラムグループリーダーの時枝浩司氏は,各種デバッグ用機能とオートテストを用いて,いかに開発期間を短縮したか,という命題の講演を行った。
 まずは,ランタイムデバッグ時に使う主な機能について,紹介しておこう。実機デモによるデバッグの実演も行われたので,そちらの画像も確認しながら読んでもらいたい。

●デバッグカメラ(free tracking view)
自由に視点を切り替えられるカメラ。ゲームカメラで目視しづらいバグの確認に用いる。
●デバッグストップ(pause)
実行フェイズを一時停止できる機能。デバッグカメラとの併用で細かい場所もチェックできる。
●デバッグウィンドウ(tweak window)
各種パラメータ類を調整可能なGUI風ウィンドウで,ゲーム進行からグラフィックの調整まで幅広く活用。
●シナリオセレクタ(scene selecter)
途中のシナリオから開始することが可能。
●どこでもセーブ・ロード(all-time save and load)
どこでもセーブとロードが可能。バグ報告に出来る限り添付してもらう。
●スクリーン・ムービーキャプチャ(scene capture)
ビットマップやAVIでキャプチャ可能。こちらもバグ報告に添付してもらう。

龍が如く4 伝説を継ぐもの
龍が如く4 伝説を継ぐもの 龍が如く4 伝説を継ぐもの


 実機デモの後は,プロジェクト運用を支援する技術のポリシーが語られ,実際のプロジェクト運用支援技術に関して四つの具体例が紹介された。

デバッグ期間は,開発後期と重なっているうえに,非常に短いことが分かる。「龍が如く」の開発では,無駄な部分をなくす,もしくは無駄な部分を使ってデバッグを行うことがポリシーになっているのだという
龍が如く4 伝説を継ぐもの


 その一つが,ゲームアプリケーションのデイリーリリース。これは1日に1回,最新のゲームアプリケーションをビルド,チェックしてリリースするというもの。このとき,アプリケーションの配布はTiVersionを用い,開発初期からデバッグ期間まで行われているようだ。ここで大事になってくるのは,データのエラーチェックを入念に行い,問題がプロジェクト全体に影響を及ぼすのを防ぐこと。また,デイリーリリースの時間割をきっちり決めておくことで,規則正しいスケジュールで人が動けることも利点となる。

 二つめに説明されたのは自動ビルドチェックだ。これはデイリーリリースでも活用するSubversionの更新とビルドを繰り返し,ビルドエラーが発生したら自動でエラーメッセージを送信するというもの。メリットとしては,デイリーリリース環境で正常にビルドができる状態を維持できることと,何によって警告が出てしまうのかを学習できる点を挙げていた。

 三つめは,プログラムの例外により異常終了したときに,デバッグに必要なファイルと共にメールを送信するエラーレポート機能だ。この機能で送られるファイルについてもここで紹介しておこう。エラーレポート機能のメリットは,バグ報告をする人員の手間を軽減できることと,早期にバグが検知できることだ。

実際にデバッグ期間に入るのは12月だが,エラーレポートは10月の段階がもっとも多いという結果に
龍が如く4 伝説を継ぐもの


 最後の四つめは,AutoTest(動的テスト)で,その内容はゲームパッドの入力をランダムに発生させて,総当りでプログラムの異常個所を見つけることが目的に行われる。その流れは,まずはExcelで記述した設定ファイルをiniファイルに変換し,TiVersionでアップデート。その後テストを実行し,エラー発生時にはその旨が送信され,AutoTestの再起動が行われる。「龍が如く」シリーズ初期は,手順の初期段階を手動で行っていたが,人力ゆえのミスも多く,「龍が如く4」から,このAutoTestを運用を始めたのだという。
 なお,AutoTestは約80台あるという開発用PCで実行している。実施されるのはデバッグ期間のみで,PCが空いている休日や深夜を有効に使っているのだそうだ。

龍が如く4 伝説を継ぐもの
「龍が如く4」の場合,AutoTest設定ファイルの記述は時枝氏と若手プログラマの2人で行っていたという。横軸にあるのが実際にテストを行う項目を表している
龍が如く4 伝説を継ぐもの
Excelによる記述さえ行っておけば,開始ボタンを押すだけでAutoTestが自動で行われる

 プログラマとしての立場から,効率の良い作業を行うために行った創意工夫を惜しげもなく語ってくれたセガ第一CS研究開発部所属の講師3人。プログラマを本職とする人には,有意義なセッションとなったのではないだろうか。最後に,当セッションで話された内容をまとめておこう。

●事前準備で高速化を可能な限りやる
・予算の許す限り,高性能な機材を導入する
・ツールやデバッグ機能の作成に手を惜しまない

●メンバーが仕事をしやすい環境を整える
・PCでゲーム機と同様の動作をする環境を構築する
・メンバー間のコミュニケーションを密に行う

●プロジェクトを安定させる努力をする
・プロジェクトに潜んでいる余り時間を有効活用する
・人手のかかる容易な作業はツールで代替してミスを防ぐ
  • 関連タイトル:

    龍が如く4 伝説を継ぐもの

  • 関連タイトル:

    龍が如く OF THE END

  • 関連タイトル:

    龍が如く3

  • 関連タイトル:

    龍が如く 見参!

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:01月27日〜01月28日
タイトル評価ランキング
88
84
DEATH STRANDING (PS4)
76
鬼ノ哭ク邦 (PC)
56
Epic Seven (iPhone)
2019年07月〜2020年01月