【CEDEC2017】開発初期から振り返る『アナザーエデン』のマル秘話…「イベントやマップの作り方」や「バトルを5回作り直した理由」を明かす

 
一般社団法人コンピュータエンターテインメント協会(CESA)は、8月30日~9月1日の期間、パシフィコ横浜にて、国内最大のゲーム開発者向けカンファレンス「コンピュータ・エンターテインメント・デベロッパーズ・カンファレンス 2017」(CEDEC 2017)を開催した。
 
本稿では、8月31日に実施された講演「本格スマホRPG『アナザーエデン』開発の裏側を包み隠さずお話します ~コード資産も無く、チームとしての経験も豊富ではない中エンジニアはどう挑んだのか~」についてのレポートをお届けしていく。
 
本セッションには、グリー Wright Flyer Studios事業本部 リードエンジニアの阿部智司氏、井田勝氏らが登壇。『アナザーエデン 時空を超える猫』(以下、『アナザーエデン』)の開発開始からリリースまでを振り返り、コード資産も無く、チームとしての経験も豊富ではない中、どのように開発が進行したのかを紹介した。また、それを支えた内製のマップエディタやシナリオ演出、データアセットの取り扱いなどについても取り上げ、技術的な観点からの具体的な事例も交えて話を展開した。
 

▲グリー Wright Flyer Studios事業本部 リードエンジニアの阿部智司氏。『アナザーエデン』では、フィールド生成やイベント処理を担当している。
 

▲グリー Wright Flyer Studios事業本部 リードエンジニアの井田勝氏。『アナザーエデン』では、バトルを担当している。
 
 

コンシューマーRPGを意識して作られた『アナザーエデン』

 
まずは阿部氏より『アナザーエデン』がどういったゲームなのかが紹介された。
 
『アナザーエデン』とは
“スマホに特化した冒険RPGを作る!”をテーマに、4月12日にリリースされたアプリ。開発を担当したのは、『消滅都市』や『ららマジ』、『武器よさらば』といったアプリで知られる、グリーの社内ゲームスタジオ「Wright Flyer Studios」だ。開発期間は約2年(※別途プロトタイプ開発期間有)で、2017年8月現在、300万ダウンロードを達成している。
  
 
 

▲『アナザーエデン』リリース後のアップデート概要。2~3週間毎にアップデートを実施している。
 
続いて、開発環境や人員規模についても公開。
 
・開発環境
OS:MacOS(Eng/Pln)/Windows(Art)
バージョン管理:git
CIツール:Jenkins
配布:HockeyApp
 
・ミドルウェア
エンジン:cocos2d-x(3.13.1+独自拡張)
アニメーション:Spine
エフェクト:LWF(LightWeightSWF)
サウンド:Cricket Audio
ムービー:CRI Sofdec
スクリプト:Lua
 

▲左から、プロトタイプ時、α開発終了時、β開発終了時、リリース時の開発規模となっている。約10名から始まり、現在はおよそ60名で開発・運営を行っている。各職の割合としては、プランナー、エンジニア、アートが1:1:2となっており、アート職が少し多い傾向にあるとのこと。
 

▲開発時からコンシューマーゲームを意識していたという『アナザーエデン』において、コンシューマーゲーム開発経験者がどのくらい参加していたかについても発表した。阿部氏によると、プロトタイプ時に3名、α・β時に4名、リリース時に6名ほどとなっているという。
 
 

■作りたいものを実現したイベント&マップ制作

 
ここからは、『アナザーエデン』開発中にエンジニアが向き合った課題とその解決法、さらに現在どういった状況になっているかというところまで包み隠さず話した。
 
プロトタイプ開発時の課題は「目指すゴールを共有すること」だったという。そこで、まずは1ヶ月をかけて「道」と「壁」と「地面」のみで構成されたシンプルな2DライクRPGを作成。この時点で既に「飛び出す絵本」のような”温かみのある世界”を目指すことは明確に決まっていたとのこと。
 

▲阿部氏はプロトタイプ開発を経て、ゴールや課題を明確に共有できたと話す。
 
◆課題◆
・トライアル・アンドエラーを効率良く行いたい
・イベント(ギミック/演出)をどう作るか
・マップ(フィールド/ダンジョン)をどう作るか

【トライアル・アンドエラー】
実機上で開発を進める場合、おおよそのアプリは「動作確認」→「データ入稿」→「アセットビルド」→「アプリビルド」→「インストール・ダウンロード」、そしてまた「動作確認」というサイクルで作業が進められる。しかし、この中で「アセットビルド」「アプリビルド」「インストール・ダウンロード」の工程は待機時間が長いため、なるべく削りたいという。
 
そこで、『アナザーエデン』では「動作確認」を行い、修正をして「データ入稿」、必要があれば最小限の「アセットビルド」を行い、「動作確認」というサイクルで開発を進めた。
 
 
 
これをどう実現したかについては次の通り。
 
阿部氏は、『アナザーエデン』では「Furuty」と呼んでいる開発環境があると切り出す。この「Furuty」は、macOS上でネイティブ動作するゲームクライアントで、PC上でマスターデータ化したり動作を確認することができる。使用頻度の高い各種スイッチ(イベント無効/バトル発生無効など)が入っているほか、「通常ゲームモード」と「マップ編集モード」で大半の作業が可能となっており、これが先のサイクルを実現できた要因となっている。
 

 
さらに、「Furuty」がどのようなものかを紹介。
 

▲「Furuty」のイメージ。通常ゲームモードは主にスクリプトに関わるプランナーやキャラ・エフェクトを制作するアートが、マップ編集モードは主にレベルデザインを担うプランナーや背景を設定するアートが使用している。
 
【通常ゲームモード】
製品版と同等の挙動が可能な「通常ゲームモード」。各種デバッグ用機能が100カテゴリ以上搭載されており、それを実現するために約300ファイル(.cpp/.h)で37000行が入っている。また、PC上で使用するツールのため「N倍速動作」「キャラ・カメラ移動」「強制勝利」「セーブ」「再読み込み」といった15種のコマンドをキーボードでショットカット発動できるようになっている。イベントや演出といった組み込み部分は通常ゲームモードで開発しているとの話だった。
 
 
 
▲会話の早送りやバトルの強制勝利といったコマンドで効率的な動作確認が可能となっているほか、キャラのラベル名や位置情報を表示させることができる。また、イベントやバトルを無効化して自分が求める場面に行くこともできる。
 
『アナザーエデン』のイベントはLuaスクリプトで形成されており、大きくは「フィールド」と「バトル」に分けられる。
 


▲フィールドには4つ、バトルには3つのイベントがある。阿部氏は一例として、プレイヤーがバルオキーにいた場合、隣接するヌアル平原とカレク湿原が一緒に読み込まれ、Areaのスクリプトの下に各種スクリプトがぶら下がる形になっていると説明した。バトルに突入した場合も適切なタイミングで各種スクリプトが読み込まれていく。
 


▲イベントで使用されているスクリプト全体の規模感についても公開。
 
【マップ編集モード】
通常ゲームモードに、Cocos Studioで作成した編集用UIを搭載した「マップ編集モード」。イベントが発生しないよう、各種イベントトリガーは排除し、移動経路やオブジェクトを配置できるようになっている。移動経路は「ノード設置」「ライン設定」「カメラ進入可否」「復帰候補設定」などが設定可能で、オブジェクト配置は「壁系4種」「地面系4種」「前景/背景」その他パラメータの設定ができる。
 

▲プロトタイプ版では「壁」と「平地面」しかなかったが、現在はラインナップが増えたほか、地面は「丸地面」となっている。丸地面は本作の特徴でもあり、レンダーテクスチャにオブジェクトを描画したうえで、そのテクスチャを使って3D空間上の湾曲したポリゴンに貼り付けている。そのため重たい処理になっており、エンジニア的にはプレイヤーが立ち止まっているときは地面テクスチャを更新したくないといった懸念などがあると明かした。
 
 
▲最初は何もない真っ暗な画面に、エリア内を内包する敷き詰め地面や背景を設定していく。雲がオートスクロールする速度や、プレイヤーの移動による相対移動量まで細かく決められる。
 
また、ツール上からは背景や前景を5枚ずつ設定できるようになっているが、スクリプトからだと制限なしに設定可能となっていると阿部氏は解説した。
 
そのほか、雲などは切れ目がないよう横方向にリピートされているが、月など複数あると違和感のあるオブジェクトについてはリピートせず単体で配置されているなど、物や状況によって豊かな表現が可能となっていることが伺えた。
 
 
▲続いて、ポイントやラインを追加して移動経路を作成していく。歩けるようになった場所に道を置いたり、家や草花といったオブジェクトを配置する。なお、オブジェクトの配置はコマンド以外の部分は基本的に全て手作業で行われているとのこと。
 

▲釣り堀など、アニメーションを持つオブジェクトは毎秒更新が必要となるため、エンジニアとしては頭を抱えるポイントだとも。
 

▲奥方向に延びるサイドボードは、ポリゴンを分割することで地面の湾曲に沿ったような描画が可能。
 

▲完成したマップに、通常ゲームモードで歪み系のエフェクトを加えたり、地面の湾曲具合やカメラ距離、色味などを調節することもできる。
 
マップ制作の流れを一通り説明し終えたところで、ゲーム内でオブジェクトの配置数が多いマップTOP5のランキングを公開。結果は以下の通りとなった。
 

 
最後に阿部氏は、『アナザーエデン』のイベントは450越えの命令と、80万行越えのスクリプトから成り立っていること、マップはお手製のエディタで、1000個ほど手動で配置していることを覚えていてほしいと述べた。そして結論として”欲しいものは全部作った”、質が一定の水準に達するまで量を積み重ね、その質を量産したイベントやマップが詰め込まれているとまとめて降壇した。
 
 

■バトルを1年半で5回作り直した理由とは

 
続いては、バトルを担当した井田氏が登壇。ゲーム開発は本作が初めてであるという井田氏は、元々ノウハウが全くないところからどういった視点で開発を進めてきたかを紹介した。
 

▲始めに「バトルを1年半で5回作り直した」という衝撃の発表からスタート。
 
理由としては、下のスライドにもある通り、コード資産がないためスクラッチから開発を始め、実装してブラッシュアップを図るが、どうしても限界が見え始め根本的な見直しをすることとなる。その中で、ノウハウがないため実際に触ってみるまで分からないことが多いという点が要因として大きかったようだ。
 

 
また、井田氏は未熟さ以外の要因もあったと明かす。
 
時は『アナザーエデン』が初めて世間にお披露目された2015年の東京ゲームショウに遡る。ここでタイトル発表を含めさまざまな情報を提供したものの、視聴者からは冷ややかな反応も目立った。
 
そこから約半年後、「niconico」のゲームイベント「闘会議2016」のステージにて、『アナザーエデン』プロデューサーの高大輔氏より衝撃の発言が飛び出す……。
 

 
なんと、「闘会議2016」のステージで「開発定例会議」と題し、ニコニコ生放送のアンケート機能を使って「タイトルの正式な略称」や「キャラクターボイスの有無」、「バトルシステム」など、ゲームの肝とも言える部分にまでユーザーの意見を前向きに取り入れていくという企画を実施。
 
【関連記事】
【闘会議2016】『アナザーエデン』の未来はユーザーが決める!? アンケートで次々とゲーム内容が決まる開発定例会議を開催!

 
なお、当時の時点で開発は1年ほど経過しており、リアルタイム制で作っていたバトルが完成間近にまで迫っていたとのこと。しかし、ユーザーアンケートの結果は以下の通り……。
 

▲こうして3度目の作り直しが決定した。
 
そんな紆余曲折を経て完成したのが、以下のバトルシステムだ。
 

▲コマンド選択式のターン制バトルという王道な仕上がりに。ノウハウがないゆえ、オーソドックスなバトルを作ることさえもスクラップ&ビルドを繰り返したと井田氏は語った。
 
ここからは少し話を変え、苦労の末できあがったシステムにおいて、『アナザーエデン』の特徴のひとつでもある「シームレスとの付き合い方」について解説を行った
 

▲『アナザーエデン』では、町からフィールドの一部、またはフィールド画面からバトルへはシームレスで推移する。
 
今でこそ滑から切り替えを実現できているが、開発時にはカクツキが頻発することもあったという。これは同時に発生する膨大なアセットの読み込みが問題となっていたが、「独自スレッドの非同期読み込みの仕組みを用意」「データのセーブなどサーバーとの通信待ちを最小化」という対策で解決したとのこと。
 

※対策2については下記の講演レポートにて詳細が紹介されている。
 
【関連記事】
【CEDEC2017】人気タイトル『アナザーエデン』になぜ通信待ちストレスがないか。その理由は非同期オートセーブにあった

 
また、ローディング待ちによるもっさり感を拭うために2つの対策を行った。キャラの読み込み時間が長いことへの懸念は、キャラのアセット読み込みにmmapを使うことでファイル読み込み時間を短縮。JSON形式のファイル読み込み時間が長い問題には、Spineのバイナリ形式のファイル読み込みを自前で実装し、ローディングによって生まれるもっさり感を解消するに至った。
 



これで問題解決かと思いきや、カクツキへの対策として行った各種非同期化によりクラッシュが増加してしまう。この問題には、XcodeのAddress Sanitizerを「有効」にしたところ飛躍的に安定性が向上したとのこと。
 

▲井田氏曰く、これがなければ2017年4月のリリースは難しかったのではないかと言わしめるほどの効果だったという。
 
そのほか、『アナザーエデン』開発において行った特徴的な試みを紹介。
 
【おねがいリィカ】

▲『アナザーエデン』に登場するアンドロイドのキャラ「リィカ」をモチーフとしたHubotを作成。チャットでコマンドを打ち込むと、結果をお知らせしてくれる。
 
「おねがいリィカ」には、「アプリのビルド」「サーバーのデプロイ」「アセットのビルド」「アセットの各種検索」をお願いできる。アセットの各種検索は、指定した文字列を含むマスターデータのID一覧や、指定したアセットがどのキャラと関係しているのかなどを調べられる。
 
Excelくん】
Excelファイルのバージョン管理をGitとしたことで、マスターデータが一部巻き戻る現象が稀に発生するように。原因は、Gitにファイルのロック機能がなく、Excelがバイナリ形式のためGithubには修正差分が表示されないためだと井田氏は説明した。そこで、Excelファイルのロックを管理する「Excelくん」を用意し、修正差分出力を見えるようにしたり、プルリクエスト作成をしたりという部分を「おねがいリィカ」でサポートすることにより問題を解決したとのこと。
 



 
これら2つのツールを組み合わせ、「Excelくん」の交通整理で同時編集による衝突を排除し、「おねがいリィカ」の差分表示付きプルリクエストで入稿前のチェックを強制できたことにより入稿ミスが激減。本フローの定着によりマスターデータの巻き戻り事故はゼロとなった。
 
最後に井田氏は本講演のポイントを下記のようにまとめ、セッションの締めとした。
 


▲『アナザーエデン』で苦労してコード資産を築くことができたおかげで、『ダンジョンに出会いを求めるのは間違っているだろうか~メモリア・フレーゼ~』ではノウハウを存分に活かし、開発期間僅か9カ月でリリースまでこぎつけることができたとの話だ。

 
(文・撮影 編集部:山岡広樹)


 
■『アナザーエデン 時空を超える猫』
 

公式サイト

App Store

Google Play



(c) Wright Flyer Studios
株式会社WFS
https://www.wfs.games/

会社情報

会社名
株式会社WFS
設立
2014年2月
代表者
代表取締役社長 柳原 陽太
企業データを見る