2024年8月21日,ゲーム開発者向けカンファレンス「CEDEC 2024」で,スクウェア・エニックス クリエイティブスタジオ3の藤巻尚樹氏と,同じくクリエイティブスタジオ7の関屋亮太氏によるセッション「“GameSurvey”で開発・デバッグ効率が向上した取り組みAtoR from FINAL FANTASY XVI」が行われた。


 本セッションは「FINAL FANTASY XVI」(PS5 / PC 以下,FF16)の開発におけるデバッグ環境で活躍したシステム「GameSurvey」をピックアップし,導入の経緯から機能の解説,その成果などを紹介するというものだ。

 ゲームの開発において,バグの修正は必ず発生する作業だ。しかしそれを報告する際,発生場所,条件,手順など,多くの情報を伝えなくてはならないが,場合によってはセーブデータも必要になる。結果,面倒なバグ報告が後回しにされ,修正困難な終盤になって発覚,ということもあるという。
 また,報告されたバグの修正を依頼する際にも,その修正を受け取る際にも同様の手間がかかり,1つ1つはそこまで大きなコストがかかるわけではないものの,この作業が何十件,何百件と発生してくると,そのコストは膨大な量となり,本来やりたい作業に割ける時間が削られてしまう。

 そんな中,エンジニアとプランナーがお互いに「簡単に共有できる手段がほしい」「すぐに状況を再現したい」「とにかく楽に開発したい」といった構想を持っており,その考えを話し合う機会があったことから,GameSurveyの実装へと至ったという。


 GameSurveyは,報告のきっかけとなる「ゲーム側」と,データベースを読み書きしたり,データをゲームへ送信したりする「ツール側」で構成されており,主に7つの機能を持っている。

 1つめの機能は,報告したい内容と場所が紐づいた情報「レポット」の作成とその管理だ。レポットはゲーム内の好きな場所で報告ボタンを押すことで作成でき,バグの報告や情報の共有などに使用できる。もちろん,後からツール側で編集や削除も可能だ。

 レポットはゲーム内では今いるマップの存在するレポット一覧が,ツールでは指定した条件にマッチングした一覧が確認でき,場所を他人に共有する際,座標やカメラ方向をわざわざ伝える必要がなく,セーブデータが必要な際はレポットにそのまま添付できるという。


 2つめは,レポットの看板表示だ。作成したレポットは,ゲーム内で看板として表示され,視覚的にレポットの位置を確認できる。看板には作成者や主題,説明文も表示されているので,どこでどんなレポットが作成されているのかを,おおまかに確認できる。


 3つめは「レポットジャンプ」だ。これは,ゲーム上のレポットが作成された場所に簡単にジャンプする機能で,ゲーム,ツールのどちらからも行える。またこのジャンプ機能はリンクとして生成することも可能で,リンクをクリックすると,ツール,ゲームの起動,セーブデータのロード,指定位置へのワープ,カメラ方向の再現などを自動で行ってくれるという。


 また,このジャンプ機能はレポットを作成せずともリンクを発行できる。それが4つめの機能「レポットなしリンク」だ。ジャンプ機能としてはレポットジャンプと同じものだが,レポットの作成を介さないため一覧に表示されず,ちょっとした情報共有や自分用のブックマーク的な用途に使用できる。


 5つめは「マップエディタ連携」だ。マップエディタとは,マップ上にNPCなどをレイアウトするためのツールで,こちらは主にマップエディタで作業を行うアーティストチームからの要望で実装された。これにより,ゲーム上と同じように,マップエディタ上でレポットジャンプをしたり,レポットを作成したりできる。

 また,マップエディタ上のさらなる機能として,6つめの「カメラブックマーク」も紹介された。これはその名の通り,特定のカメラの状態をブックマークとして保存する機能で,こちらもアーティストの開発を手助けする機能として実装されたという。


 最後に紹介された機能は,QAチームからの要望で追加された,Redmine(課題管理システム)との連携だ。これにより,レポットからRedmineチケットを作成したり,既存のRedmineチケットにレポットを紐づけたりできるようになる。連携したレポットは,ツールの一覧からRedmineチケットが開けるほか,ステータスを確認することも可能となっている。


 こうして実装されたGameSurveyにより,「楽に開発したい」という要望が実現。さらに最初は想定していなかった機能も組み込まれ,想定以上に便利なシステムが生まれる結果になったという。


 先ほど紹介されたように,GameSurveyは,ゲーム内のものとツールに分かれているが,それをコミュニケーションハブがつないでいる。直接つながないのは,ハブがさまざまなツールのTCPポートなどを一元管理しており,GameSurveyもその仕組みの上で動いているからだそう。
 なお,レポットの情報はデータベースに保存され,マップデータなどに記入されるものではないため,マスターデータへの影響もない。


 これほど便利なシステムであるGameSurveyだが,実は開発にかかったコストはそこまで大きくないという。理由としては,エディタ制作でフレームワークができていたり,URLリンクはすでに仕組みがあったりしたためで,開発に携わったメンバー4人が各々メインの作業をしながらでも,今回説明された機能は3か月ほどで実装できたとのことだ。


 続いて,GameSurveyを実装したことによる成果が紹介された。
 GameSurveyで特に影響が大きかったのは,レポットリンクによる恩恵だという。セーブデータの抽出/読込や,複雑な再現手順,人によって違う言い回しなど,さまざまなコミュニケーション問題を,1つのリンクに情報を内包することで解決した。
 その結果,指示や報告をする人は詳しい説明が不要になり,報告を受けて作業する人は複雑な状況も簡単に再現できるなど,あらゆる場面での手間の削減につながったのだ。


 レポットリンクは,テキストベースであることも強みになっている。コピー&ペーストでどこからでも実行可能なため,在宅ワークのメンバーもチャットやオンライン会議などで簡単に共有できる。その扱いやすさから,仕様書やまとめページなどさまざまな場面で活用されていたという。


 GameSurveyは開発チームだけでなく,QAチームの作業コスト削減にも大きく貢献している。開発チーム同様,再現状況を伝える手間が減っただけでなく,開発チームとQAチームで共通のコミュニケーションが取れるようになり,「どこかわからないという報告がほとんどなかった」と言う人もいたそうだ。

 看板表示のおかげで,すでに報告されている案件かどうかがすぐに分かり,以前は既知かどうかを調べていた手間が不要になったり,Redmine連携により1日に作れるチケット数が格段にアップしたりといった効果もあった。実際,通常レポットの作成は80%がQAチームによるもので,中には1人で7000件ものレポットを作成した人もいたそうだ。


 このほか,マップエディタ作業の効率化にもつながっている。レポットリンクによる場所,アセットの特定,看板による内容の把握,俯瞰視点で看板をすべて確認して進捗する把握など,ゲームを起動せず,マップエディタだけで多くの作業を行えるようになったのだという。


 このように,GameSurveyを実装したことにより,開発環境のあらゆるコミュニケーションがシンプルになり,開発に関わる全員の負担が減り,連携を深めることに成功したそうだ。
 レポット作成数の変遷を見ても,中盤以降の長い期間活用されていたという。ピーク時には1万件を超える案件の確認,修正があったことを考えると,1回のコスト削減量は少ないが,相当な成果であったことがうかがえる。

 開発チーム内での評価も高く,クリエイティブディレクター(前廣和豊氏)からは,「GameSurveyのおかげでスケジュール通り発売できたかも」という発言もあったそうだ。


 そんなGameSurveyだが,大量のレポットが作成されると看板表示が重くなってしまう,レポットに添付されたセーブデータが実装都合で使用できなくなる,デバッグコンフィグに対応していなかったため,デバッグ機能を含んだ状況を再現できなかったなど,まだまだ改善点が多数あるのだという。


 最後のまとめで藤巻氏は,開発,デバッグ効率の向上は本当に重要で,期間が長くなる大規模なプロジェクトであればあるほど,GameSurveyのようなツールが必要だと語った。講演の内容が何かを実施するきっかけや助けになれば幸いとして,セッションを締めくくった。


鄭重声明:本文の著作権は原作者に帰属します。記事の転載は情報の伝達のみを目的としており、投資の助言を構成するものではありません。もし侵害行為があれば、すぐにご連絡ください。修正または削除いたします。ありがとうございます。