LoginSignup
5
2

More than 5 years have passed since last update.

[CEDEC2017]本格スマホRPG『アナザーエデン』開発の裏側を包み隠さずお話します 〜コード資産も無く、チームとしての経験も豊富ではない中エンジニアはどう挑んだのか〜

Last updated at Posted at 2017-09-06

本格スマホRPG『アナザーエデン』開発の裏側を包み隠さずお話します 〜コード資産も無く、チームとしての経験も豊富ではない中エンジニアはどう挑んだのか〜

講演者

阿部 智司 さん(グリー株式会社)
井田 勝 さん(グリー株式会社)

講演内容

アナザーエデンの概要

  • 2017年4月12日にリリース
  • 現時点で300万DL
  • 開発開始は2015年4月
  • 現在は2~3週間の頻度でバージョンアップを行っている

開発環境

  • Mac
  • git
  • Jenkins
  • Cocos2d-x
  • Spine
  • LWF(Lightweight SWF)
  • Cricret Audio
  • CRI Sofdec

開発人員

約60名でアート職が一番多かった。
リリース時期までのコンシューマ開発経験者が6名程度しかいなかった

開発中の課題解決と現在

  • 開発開始時

10名程度の人員で開発を開始し、まず初めに目指すゴールの共有を行った。
1ヶ月間で2DライクなRPGを作成し、飛び出す絵本のような表現を目指して開発を行った。

  • トライアルアンドエラーを効率よく

動作確認→データ入力→長いアセットビルド→アプリビルド→インストール
このPDCAサイクルを効率よく回す必要がある。

  • Furutyを使用

MacOS上でネイティブに動作するゲームクライアント
実機/MacのSchemaを切り替えて動作するようにしている。

通常ゲームモードとマップ編集モードの2種類で動作するように行っている。

  • 通常ゲームモード

・製品版と同様の動作を行う
・各種デバッグ機能を搭載しており、デバッグ関連だけでも100カテゴリに及ぶデバッグ項目を用意
・約300ファイルに上るデバッグ用コードが存在
・mac上で動作するため各種キーボードのショートカットを用意

  • マップ編集モード

・通常モードに編集用UIを被せ、移動経路の設定やオブジェクト配置などのエディット機能
・配置情報などのデータは開発中はjsonで出力し、最終的にはFlatBuffersで出力を行っている

  • イベントスクリプト

・各種イベント(フィールドやクエストなど)をLuaスクリプトを使用して作成
・約450命令に上るC++の命令処理が存在している。

  • マップ作成

・上記のマップ編集モードを用いてデータを作成している。
・壁と床の種類はそれぞれ4種類ずつ
・一番重いマップではオブジェクトが1900個ほど配置されているとのこと

ゲーム開発未経験者の苦悩と闘い

  • バトル部分を担当

バトル部分のコード資産が無い状態で始めたため、スクラッチで実際に触るところまでとにかく
実装、仕様や演出のブラッシュアップを行っていた。
レベルデザインを行えばいずれは面白くなるはずを計5回繰り返して完成。

最初はアクションゲームとして実装を行っていたが、2016年にある事件が発生し、
ユーザーにアクション制かターン制かのアンケートを行い、ターン制ゲームとして作ることとなった。

その他の課題

エリア切り替えなどをシームレスで実装することとなったため、
切り替わるときのカクツキの対策を念入りに行っていた。

  • 原因

・膨大な量のアセットをロードする際にcocos2d-xのI/O処理がブロッキング処理だった。
・JSON形式のファイルのパース処理が重い

  • 対策

・独自スレッドを立ててロード処理を非同期で行うように対応
・パース処理が重たいのでバイナリ形式のファイルに変更

  • さらなる課題

非同期処理に切り替えたことにより、クラッシュが頻発するようになってしまった。
そこでXcodeのAddressSanitizerを使用して原因の特定修正を行った。

作業の効率化

作業の効率化を行うために以下ものを実装

Hubotで実装したchatbot

  • 定型業務のサポート
  • アプリのビルド
  • デプロイ
  • ビルド
  • 各種検索

これらをチャットベースで行えるように対応

マスターデータの入力ミス

マスターデータはエクセルベースで作成を行っている。
また、バージョン管理システムがgitを使用しているためロックすることが出来ずに
巻き戻りやコンフリクトが発生してしまっていた。
Excelの差分なので修正差分を表示することが出来ないため、
ロックや差分ができるようなものを作成して運用を行っている。

まとめ

コード資産が無い状態で開発を行った際の問題点や
コードではない部分の問題点のお話を聞くことが出来、
非常にためになりました。開発環境が無いなら作るという
チーム全体の意思やゴールを明確化していた
部分などどのような開発でも応用が利くものと思っています。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2