イベント
「アナザーエデン」はどのようにしてRPGの体験をスマホで実現したか。そのカギはオートセーブとイベントスクリプトにあり
現在,エンジニアを統括する立場にあるという西田氏。スマホでRPG体験を実現するために,主に技術面でWFSがやってきたこととは,どのようなものだったのか。本稿では,その内容をレポートしよう。
※記事内に掲載した画像は,SlideShareから切り出したものになります。なお,講演で使われたスライドは「こちら」から閲覧できます。
システム面から支えたRPG体験のための工夫
WFSがアナザーエデンの開発にあたり,最初に目指したものはスマホでコンシューマゲームのような体験のできるRPGを作ることだった。そこで西田氏達は,スマホゲームとコンシューマゲームの差異について考えたという。
両者の違いは,サービスとパッケージという販売方法の違いであったり,ホーム画面の有無であったり,パッと思いつくものから,ちょっと考えないと分からないものまでさまざまだが,技術的な部分で西田氏達が注目したのが,「データ通信速度」「ユーザデータを保持する場所」の2点だった。
スマホ向けのゲームは頻繁に入るネットワーク処理,チート対策,ランキングなどに対応することに重きを置いたデザインになっている。特にユーザーデータの保持する場所は大きな問題であり,通信待ちが頻繁に発生してしまっている状況を改善しなければならない。コンシューマライクな作品を実現するためには,この部分をシステム的に見直さなければならなかったと西田氏は振り返る。
西田氏達がこの見直しを行った結果,アナザーエデンはどういった立ち位置の作品になったのか。詳しくは資料のスライドを確認してほしいが,極論を言えばスマホ向けゲームとコンシューマゲームの中間に位置する,ハイブリッドな作品と位置づけることができる。
データ通信をバックグラウンドに寄せることで,0とはいかないまでも通信量を大幅に軽減できたという。データの更新も基本的にはクライアントメインで行うが,ものによってサーバーからも行えるようにするといった,技術的な面におけるアナザーエデンの位置は,非常にユニークだ。
オートセーブ機能
上記のようなシステム面の見直しが行われたところで,西田氏達はオートセーブ機能に着目した。コンシューマライクな作品を実現するために,下記4つの要素を担保したオートセーブ機能を作る必要性に気がついたという。
- いつ中断しても途中からやり直せる
- 割り込みの多いスマホでも納得感のある挙動を
- プレイヤーの没入感を邪魔しない
- ネットワーク環境に依存しない(オフライン時でも,ある程度遊ぶことができる)
アナザーエデンでは,オートセーブが行われるとゲーム画面の左上に「Auto Saving…」の表示が出る。このタイミングでは,プレイヤーの行動は阻害されず,バックグランドでサーバーとの通信が発生しているとのこと。ちなみに,本作でオートセーブが行われるタイミングは,以下のとおりだ。
- 各種設定UIクローズ時(全画面を覆うパーティ編成など)
- フィールドのエリア移動時
- luaイベント終了時
- シナリオ進捗時
- バトル終了時
- 1分に1回(プレイ時間が積み上がる)
このほかにも,ゲーム的に際どいタイミングでのオートセーブも行われている。確率と実力に左右される釣りをプレイしたときは,魚を釣り上げてから,何を釣り上げたか分かる間にセーブが行われる。これにより,結果を確認してからのリセット,やり直しができないようになっているという。
やや技術者向けになるが,スライドではステートの遷移図やクライアントからサーバへの同期についても解説されているので,興味のある読者はぜひ参照してほしい。
面白いのは,サーバー障害時やオフライン時,アナザーエデンではクライアント側にオートセーブの情報を溜め込むようになっており,障害解消後またはオンライン時に,止めていたデータが一気にサーバーへと送られる仕組みになっている点だ。このため西田氏は,サーバー障害時にひやひやすることもあるという。
アナザーエデンのオートセーブについて,西田氏は下記のようにまとめる。
「ステート区切りのオートセーブ制御によって,適切なタイミングでオートセーブを走らせ,アプリケーションを中断しても納得感のあるタイミングで復帰が可能になった。キューイングとバックグラウンド通信の組み合わせによって,なるべくプレイヤーの操作を阻害せずデータの同期を行った。これにより,当初から目指していたコンシューマライクなプレイ体験を実現した」
膨大なイベントスクリプトから創られたRPG体験
続いて西田氏は,コンシューマゲームでの開発手法を元に,イベントスクリプトに比重を置いてアナザーエデンの開発は行われたと話す。西田氏は,RPGの醍醐味を冒険であるとし,さらに冒険とはタンスを開ける,NPCに話しかける,カーテンを開けるなど,調べたい場所を調べられること,プレイヤー目線で言えば「ここ触れたらいいよね」という状態が作り込まれたものなのではないかと持論を展開していった。そして,エンジニアサイドから言えば,これらはすべてイベントスクリプトに帰結するという。
アナザーエデンのイベントスクリプトは,ゲーム開発者にはおなじみのLua(ルア)という言語で記述されている。本作では,フィールドの制御など多くのシーンに利用されているそうだ。今回のセッションで西田氏は,イベントスクリプトで制御されているシーンを列挙してくれた。
【フィールド系】
- Area Script - 1エリア1つ。毎フレーム,アップデートされる
- AreaEvent Script - フィールドギミック全般,最も量が多い
【シナリオ系】
- Story Script - メインストーリーが記述される
- Quest Script - サブクエストが記述される。キャラクター劇などもここ
- Lottery Script - 出会いのキャラクター劇
【バトル系】
- Enemy Script - バトル中の特殊キャラクターのギミック
- Skill Script - バトル中のスキルの特殊ギミック
上記の通り,アナザーエデンでは非常に多くの要素がイベントスクリプトで制御されている。西田氏によると,本作の制作チームは約80人で構成されており,そのうち25人はイベントスクリプトの記述ができるそうだ。ゲーム開発に携わる人なら分かるかもしれないが,この比率は非常に高い。これによって,各チームの実装担当者達が思い思いに自分が入れたいと考えた要素,良いと思った要素を自由な発想で入れていけるという。
アナザーエデンでは,そういった発想から生まれたイベントスクリプトの事例に出会う機会は多い。主人公の妹が朝起こしてくれるイベントで,その声を無視して眠り続けると何かが起こるとか,フィールドの一部分が一定間隔ごとに光ってバトルが発生する床になるとか,街中でいきなり発生する鬼ごっこなどが挙げられる。
こういった自由な発想から生まれるイベントスクリプトだが,そのレビューにプログラマが関わることは少ないそうだ。実装担当者が思い思いのスクリプトをトライ&エラーで入れていき,新しいスクリプトが生まれた際には共有され,発展していくという。
そんな環境で記述されたイベントスクリプトは,現在146万行に登る。西田氏いわく,アナザーエデンのリリース当初は63万行であり,1年で約100万行増えたとのこと。
やや余談だが,アナザーエデンのチームには職人スクリプターがいるらしく,そういった職人の書いたスクリプトはもはや魔術だという。このほかにも,若手のスクリプターがいきなり1500行のイベントスクリプトを書いて実装するなど,西田氏自身も驚かされることが多いようだ。
西田氏はこの経験からある確信を持ったという。それは,イベントスクリプトに最大限の裁量を与えること。結果的に,アナザーエデンでは,イベントスクリプトとオートセーブの合わせ技によって,プレイヤーの行動を阻害せず,自由な発想で開発を行っていける環境を作ることに成功したそうだ。
さて,ここまでの講演内容を振り返ってみて,鋭い読者は「こんなことは,昔からゲーム業界で行われているのでは」と思ったかもしれない。これはその通りで,西田氏によればアナザーエデンの開発は「スーファミ(向けゲーム)の作り方だね」と愛を込めて笑われることもあるとのこと。しかし,おそらくそれをスマホゲームで可能にしたのが,西田氏達がシステム面で支えた結果に生まれた,アナザーエデンの魅力なのかもしれない。
※なお,本講演ではこのほかにセキュリティについても語られたが,本稿では割愛する。もし気になる場合は,以下のリンクからスライドを参照してほしい。
『アナザーエデン 時空を超える猫』スマートフォンでのRPG体験の実現のためにしてきたこと(SlideShare)
「アナザーエデン 時空を超える猫」公式サイト
「アナザーエデン 時空を超える猫」ダウンロードページ
「アナザーエデン 時空を超える猫」ダウンロードページ
- 関連タイトル:
アナザーエデン 時空を超える猫
- 関連タイトル:
アナザーエデン 時空を超える猫
- この記事のURL:
キーワード
(C)WFS Developed by WRIGHT FLYER STUDIOS
(C)WFS Developed by WRIGHT FLYER STUDIOS