イベント
[CEDEC 2021]フロム・ソフトウェアの開発支援ツール「情報地図」を紹介する講演をレポート。マップに埋め込まれた情報をWebアプリで閲覧
情報地図とは,文字どおり,ゲームで使うマップに埋め込まれた情報を閲覧できるツールのことだ。フロム・ソフトウェアでは,これをWebアプリとして作成し,社内で活用しているという。
そもそもこういったツールが必要となったのは,ゲームのマップが広くなりすぎて,全体の情報が管理しきれなくなったことに起因するそうだ。マップ自体の大きさが拡大していくのと並行して,マップ内の情報密度も上がっていくと,マップ全体の情報量が非常に大きくなってしまう。
しかし,すべての人がその膨大な情報全体を必要としているわけではなく,それぞれの作業で必要な情報はさほど多くはない。情報が多すぎると調べるのも簡単ではなく,どのアイテムがどこにあるのか担当者しか分からないといった効率上の問題も発生していたという。加えて,テストプレイ時の行動データやパフォーマンスデータをマップ上で確認したいというニーズも出てきて,社内でマップ情報を簡単に効率よく閲覧できるツールの需要が高まった。そこで,この情報地図が作られたのだ。
このツールでどんなことができるのか,川崎氏はデモムービーで紹介してくれた。まず,表示されたマップを拡大/縮小して任意の部分を見ることができる。検索機能を使うと,マップ上に検索結果のマーカーや結果一覧を表示することが可能だ。マーカーにマウスカーソルを当てると概略がポップアップし,クリックすると詳細が表示される。
また,ゲームと連動させて,その場所にワープすることも可能だ。Webベースなので,情報はURLで共有もできる。そのほか,テストプレイ時のプレイログデータをマップ上で再生して,どのような行動をしたのかを可視化も可能だ。このとき,よく行く場所や,プレイ時のパフォーマンス状況をヒートマップ表示することもできるようになっている。
さて,この情報地図を開発するにあたって,いくつかの課題があった。
まずは,すでに進行しているプロジェクトでも使えるようにしたいというものだ。開発は迅速に行われる必要があった。そして,当然ながら,ほかのプロジェクトでも使えるものでなくてはならない。
結果として,情報地図の開発は,進行中のプロジェクトに合わせてプロトタイプを作り,それを汎用化していくといった手順で行われている。ゲームプロジェクトチームがフロントエンド部分のうちの,そのゲームに特化した部分を担当し,R&Dチームがバックエンドと残りのフロントエンド部分を担当している。
フロントエンド部分の開発はJavaScriptで行われているが,インタラクティブマップ用のオープンソースライブラリであるLeafletが全面的に利用されている。これにより,地図の表示やマーカーの表示などが簡単に実現できる。また,ヒートマップやプレイログ再生といったプラグインも豊富で,情報地図でも活用されている。Leafletを使うことで,高度な機能を手軽に実装しつつ,開発の迅速化も図られている。
直近のゲームに合わせてプロトタイピングが行われたため,そのプロジェクトには間に合ったのだが,プロジェクト固有の仕様になっており,ハードコードされている部分もあったという。そこで,ツールの汎用化を進めるために,機能をモジュール化し,対応するゲームが必要なものを組み込めるように汎用版が作られている。ゲームに特有な要素はハードコードではなく,設定ファイルにまとめられるようになった。
バックエンド部分は,Go言語で開発されている。これは過去にGoでの開発ノウハウがあったことが大きいという。DBにはPostgreSQLが使われ,Go言語のEchoライブラリを使ってRESTful APIが構築されている。
フロントエンド部分は初期ターゲットに寄せた開発が行われていたが,DB部分の再設計はコストが高いとして,最初から汎用的な利用を想定した設計が行わている。しかし,ゲームごとに扱うデータが変わってきたり,途中でデータの仕様が変更されたりすることもあるため,DBには柔軟性が求められていた。
これに対し,古田島氏は,表示されるものはすべてマーカーとして扱い,各ゲームで固有の部分は拡張データとしてまとめることで解決している。拡張データは,JSON形式のフィールドになっており,ゲームごとに自由に定義して利用できるような仕組みだ。細かい検索などは自前でやる必要があるが,そこさえクリアすれば柔軟なシステムが構築できる。
ゲームで使用しているデータからマーカーデータへの変換には,それぞれで専用ツールが作られている。個別に作成しているが,似たような処理も多いため,さほど手間ではないとのことだ。
このようにしてゲーム内マップ情報の管理ツールが構築されたわけだが,すでにいくつかのプロジェクトで使われているという。当初の問題点であった,大量の複雑なデータの管理や必要な情報だけを簡単に取り出せる仕組み,今後のプロジェクトでも使える汎用性は実現できている。パフォ―マンス解析やゲーム内の行動解析でも使われることで,ゲーム自体の改善にもつながっている。全体的に大きな成果を上げていると言えそうだ。
このようなツールをWebアプリケーションとして制作することで,データや情報の共有が図られ開発効率も上がる。制作にオープンソースソフトウェアを活用することで,高度な機能を簡単に導入できる。参考になる情報管理方法だったのではないだろうか。
フロム・ソフトウェア公式サイト
4Gamer「CEDEC 2021」記事一覧
- この記事のURL:
キーワード