8月30日から9月1日の期間、パシフィコ横浜で開催されている「CEDEC 2017」。本稿では、8月31日に実施されたセッション「本格スマホRPG「アナザーエデン」開発の裏側を包み隠さずお話します」をレポートする。

このセッションでは、人気スマホRPG「アナザーエデン」の開発スタートからリリースまでを振り返り、コード資産もなくチームとしての経験も豊富とはいえない状態で、どのようにその困難を乗り越えていったかをテーマに講演が行われた。

「アナザーエデン」は、今年の4月にリリースされ現時点で約300万ダウンロードを記録したスマートフォン向けゲームだ。プロジェクトが始まったのは2015年4月で、およそ2年かけて開発された。リリース後は、2~3週間毎にアップデートが行われている。

10名ほどでプロトタイプ開発を進め課題が明らかに

まず始めに登壇したのは、本作のリードエンジニアを務める阿部智司氏だ。同氏からは、「開発中の課題解決と現在」というテーマで、開発中にエンジニアが向き合った課題と、今現在どのような状況になっているのか語られた。

グリー Wright Flyer Studios事業本部リードエンジニアの阿部智司氏。

「アナザーエデン」は、10名ほどでプロトタイプの開発が開始された。このプロトタイプ開発で課題にしたのは「目指すゴールを共有」することだった。およそ1ヵ月で2DライクなRPGを制作。その時点では道と壁と地面しかないシンプルなものだったが、「飛び出す絵本」のようなあたたかみのあるデザインを目指すということははっきりと決まっていた。

とにかく動かすことに注力し、プロトタイプ開発ではゴールは明確に共有。課題も明確にすることができたという。このときに見つかった課題は、「トライアル・アンド・エラーを効率よく行いたい」「イベントをどう作るか」「マップをどう作るか」の3つだ。

チーム内で使用する開発環境「Furuty」で作業を効率化

実機で開発を進める場合、最初に動作確認をしデータ入稿、アセットビルドで実機で最終的に使用されるデータの準備をしアプリをビルド。それを実機にインストールし、データをダウンロード。再度動作確認といった流れを、完成まで延々と回していくことになる。

それらのなかで削りたいのは、待機時間の長い「アセットビルド」「アプリビルド」「インストールとダウンロード」である。最終的に持って行きたいのは、動作確認をしてデータ入稿。必要があれば最小限のアセットビルドを行って、再度動作確認をするという流れだ。では「アナザーエデン」ではそのあたりをどうしたのだろうか?

「アナザーエデン」の開発では、チーム内で使用する「Furuty」と呼ばれている開発環境がある。これはmacOS上でネイティブ動作するゲームクライアントだ。各種ビューワーやスイッチ、開発用ユーザーのデータ管理など、便利な機能も付いている。

なかでも大きな特徴は、「通常ゲームモード」と「マップ編集モード」があるというところだ。このふたつのモードを使い、大半の作業をFuruty上で行うことができ、最終的に実機で確認するといった流れを実現している。

まず「通常ゲームモード」だが、こちらは基本的には製品と同等の挙動をするほか、100カテゴリ以上の各種デバッグ機能が用意されている。RPGはパラメータが多く、デバッグ機能の充実が開発において重要となるのだ。

PC上で動くツールのため、マウスだけではなく対応するコマンドをキーボードショートカット化している。

「マップ編集モード」は、先ほどの「通常ゲームモード」にマップ編集用のUIを追加したものだ。また、「通常ゲームモード」から各種イベントが発生してほしくないトリガーを取り除いている。

その状態で、編集用UIを使い移動経路を設定したりオブジェクトの配置をしていくといった感じだ。

こちらがFurutyのメニュー画面。
ショートカットキーで会話の早送りなどもできる。
画面の右に勝利ボタンがあり、バトルが発生した場合も強制勝利することができる。
「マップ編集モード」モードで地面や背景、オブジェクトなどを設置していく。
マップごとのオブジェクト配置数のトップ5の図。
一番多いのは「セレナ海岸」で、1900ほどのオブジェクトが置かれている。

「アナザーエデン」のイベントは450以上の命令と80万行以上のスクリプトで作られている。またマップは自前のエディタで1000個ほど手動で配置しているという。このイベントとマップ双方にいえることは、「欲しいものは全部作った」ということだ。一定の質に到達するまでに量を積み重ね、その質が量産されたのが「アナザーエデン」のイベントとマップなのである。

ゲーム開発経験のノウハウが無いままバトルを担当した結果……!?

続いて、同じく「アナザーエデン」のリードエンジニアを務める井田勝氏が登壇。ゲーム開発経験のノウハウが全くない状態で参加した同氏だったが、バトルを担当した結果どうなったかというと……1年半でバトルを5回も作り直すことになったという。

では、なぜそんなことになってしまったのだろうか?

グリー Wright Flyer Studios事業本部リードエンジニアの井田勝氏。

そのときの開発の流れはこんな感じだ。まずは“コード資産”がないため、スクラッチからスタート。また、“ノウハウ”もないため、とにかく作り、すぐにいいものができることはないため、ブラッシュアップを続けていく。あとはレベルデザインをすれば面白くなっていくだろうと調整をしていくなかで、開発の外に人に見てもらうと微妙な反応が返ってくる。そこで限界が見えてきて、最終的にはこのバトルシステムではやばそうだという結論になったという。

そういうことを複数回繰り返したが、未熟さ以外の要因もあった。

開発がスタートして半年ほどたったときに、「東京ゲームショウ2015」で初めてタイトルの発表やニコ生の放送を実施した。その結果、冷ややかな反応があったという。そこでプロデューサーから「じゃあ、決めてください」と、ユーザーに対してまさかの丸投げが行われたという。

開発から約1年が経過した「闘会議2016」のステージであらためてニコ生を実施し、そこでアンケートを行い、ゲームの内容を決めてもらうとプロデューサーが決定。その中のひとつに、バトルシステムは「ターン制」がいいか「リアルタイム制」がいいかというものが含まれていた。

開発から1年がたち、実はこの時点で出来上がっていたバトルシステムは「リアルタイム制」だった。その結果……61パーセントが「ターン制」を支持し、また作り直しが決定してしまったという。

そうして完成した最終的なバトルシステムは、良くも悪くも王道のものになったそうだ。このオーソドックスなバトルシステムが完成するまでの課程でも、ノウハウがなさ過ぎて5回も作り直すことになったというわけだ。

最終的な「アナザーエデン」のバトルシステム。
シームレスに注力した結果、複数の問題が発生

「アナザーエデン」では、シームレスに注力して開発が進められている。これは、町とフィールドの移動や、バトルへの突入などもローディングがなくシームレスに繋がっている。

あらゆるところをシームレス化した結果、いくつかつまづいたポイントが出てきた。ひとつはあらゆるところでカクつくという問題だ。課題は明白で、サイズの大きなファイルをたくさん読み込もうとしているところにあった。

それに対して、独自スレッドの非同期読み込みの仕組みを用意。サーバとの通信待ちを最小化することで、対策を取っている。

そもそも大きなファイルを読み込むので、ローディングが長くなる。中でも読み込み時間が長かったのが、キャラクターだ。ファイルの読み込みには「fread」ではなく「mmap」を使った方がいいという上を耳にし、実際にベンチマークを取ってみたところ100倍以上早く読み込ませることができるようになった。

それでもまだローディングが長いという問題が残っていた。ボトルネックとなっていたのは、Spineのデータ形式であるJSONの読み込みが非常に長いというところだ。現在のバージョンでは不要だが、当時はバイナリ形式を読み込むことができなかったので、自前でファイルを読み込めるように実装したそうだ。

先ほどカクツキを押さえるために非同期化を行ったという話があったが、その影響で今度はクラッシュが増加してしまった。これはプログラムが複雑化してしまったためだが、そのときに一番効果があったのは、XcodeのAddress Sanitizerを有効にしたところ安定性が向上したという。

Address Sanitizerを活用することで、変なメモリにアクセスしようとするとすぐに怒られるようになり、バグの発見や原因の特定が容易になったそうだ。これがなかったら、今年の4月にリリースするのは難しかったという。

「おねがいリィカ」と「Excelくん」の導入で入稿ミスが激減

ゲーム内に登場するアンドロイドのキャラクター「リィカ」を元にした、Hubotを使ったChatWorkのクライアントbot「おねがいリィカ」というものを用意している。これは「@liica check lua」といったコマンドをチャットで命令することで、実行してくれるというものだ。

この「リィカ」は、アプリのビルドやサーバーのデプロイ、アセットのブルド、アセットの各種検索など様々なことを実行することができる。

しかし、開発中~後半にかけて、マスターデータが巻き戻るといった問題がまれに起こった。これは、Excelバージョン管理をGitにしたのが原因だ。Gitにはファイルのロック機能がなく、Excelがバイナリ形式のためGithubに修正差分が表示されないのである。

そこで、Excelファイルのロックを管理する「Excelくん」というウェブツールを用意。Excelの修正差分出力と、それを付けたGithubへのプルリクエスト作成を「おねがいリィカ」でサポートするようにしたという。これにより入稿ミスが激減したそうだ。

ノウハウもなくコード資産もなかったことから、このような苦労をうんだ「アナザーエデン」の開発だったが、苦労した反面ようやくコード資産を築くことができた。

そしてそのノウハウが存分に活かされたのが、次のプロダクトである「ダンジョンに出会いを求めるのはまちがっているだろうか~メモリア・フレーゼ~」である。それなりのボリュームを持つアプリであったが、開発期間わずか10ヵ月でリリースまでこぎ着けることができたのである。

(C) Wright Flyer Studios

※画面は開発中のものです。

この記事のゲーム情報

機種
Mobile
プラットフォーム
アプリ
OS
iOSAndroid
会社
WFS
ジャンル
RPG
システム
横向きソロ
クリエイター
加藤正人
  • セガゲームス特集ページ
  • BUSTAFELLOWS特設サイト
  • 軌跡シリーズ特設サイト

REGULAR定期配信

  • ゲーム発売日・配信日カレンダー
  • Gamer編集部通信
6月7日(金)
Conan Outcasts コンプリートエディション
Conan Outcasts デラックスエディション
みんなのGOLF VR
みんなのGOLF VR デジタルデラックス版
6月8日(土)
OCTOPATH TRAVELER
SNK 40th ANNIVERSARY COLLECTION
6月11日(火)
CLOSERS
ラスト レムナント リマスタード
6月12日(水)
ケンガンULTIMATE BATTLE
バートラム・フィドルの冒険 エピソード2:惨々たる誤算
最果てのバベル
開店デパート日記2
魂斗羅 アニバーサリーコレクション
6月13日(木)
ガンマンストーリーHDコレクション
コンダクト トゥギャザー!
スーパーリアル麻雀P7
ドラえもん のび太の牧場物語
今宵、妖しい口づけを ~綺龍・千影・雪之丞編~
今宵、妖しい口づけを ~雅・京牙・沙門編~
夢現Re:Master
夢現Re:Master 限定版
鬼灯の冷徹~地獄のパズルも君次第
6月14日(金)
GOD WARS 日本神話大戦
あやかしコントラクト
ケイデンス・オブ・ハイラル: クリプト・オブ・ネクロダンサー feat. ゼルダの伝説
6月18日(火)
Bloodstained: Ritual of the Night
6月20日(木)
777TOWN mobile
Dead by Daylight サバイバーエディション[限定版]
SCRAP RUSH!!
Summer Pockets
イースVIII -Lacrimosa of DANA- スーパープライス
グノーシア
メカフォース
レイト・シフト
妖怪ウォッチ4 ぼくらは同じ空を見上げている
華ヤカ哉、我ガ一族 幻燈ノスタルジィ for Nintendo Switch
華ヤカ哉、我ガ一族 幻燈ノスタルジィ for Nintendo Switch 限定版
龍が如く5 夢、叶えし者
6月21日(金)
AI流現代囲碁
Steel Sword Story
6月27日(木)
CLOCK ZERO ~終焉の一秒~ Devote
CLOCK ZERO ~終焉の一秒~ Devote 限定版
DOGFIGHTER -World War 2-
HARDCORE MECHA
Home Sweet Home
LA-MULANA 2
SAMURAI SPIRITS
SAMURAI SPIRITS DELUXE PACK
your diary +
your diary + 完全生産限定版
この素晴らしい世界に祝福を!~希望の迷宮と集いし冒険者たち~
この素晴らしい世界に祝福を!~希望の迷宮と集いし冒険者たち~ 完全生産限定版
じんるいのみなさまへ
ぷよぷよeスポーツ
アキハバラ リズム アンド リミックス
グーニャファイター
チキチキプロレス大乱闘!!
ハロー・レディ!-Superior Dynamis-
ヘル・ワーダー
勇者ヤマダくん
実況パワフルプロ野球
絆きらめく恋いろは
6月28日(金)
スーパーマリオメーカー 2
スーパーマリオメーカー 2 はじめてのオンラインセット