どーも、ラディアスリーの中村です。
今回は、おーくしょんパーティ!のアプリ版の話です。
(ゲームデザインではなく、開発寄りの話になってます。)
使っている(or 使う予定)ものをざっと羅列してみると
- クライアントサイド
- Unity
- サーバサイド
- AWS EC2
- AWS Cognito
- AWS Lambda
- AWS DynamoDB
- docker
とまぁこんな感じでしょうか。
(もっと詳しい話は多分加藤が書いてくれるんじゃないかと…。)
ちなみに、EC2上で稼働するサーバー側アプリケーションは javascript で記述しています。
DynamoDB は DynamoDB local というのがあるので、それを利用する予定ですが、現時点では Redis を使っています。そのうち DynamoDB に切り替え予定。
開発はプログラマが複数いる(現状は加藤と私の2人)という状況なので、EC2上で動作させてデバッグなんてことはできませんし、いきなり EC2 と Unity で通信して動作確認なんてこともデバッグしづらくて大変そうです。
ということで、各開発者のローカル環境でデバッグが出来るように、 docker を使ってローカルにも同じ環境が簡単に作れるようにしています。(私じゃなくて加藤が整えてくれたんですが。)
で、実際どんな感じに開発をすすめているの?というのが、こちら。
開発段階1 : サーバアプリの実装
とりあえず javascript でぺこぺこ書いていきます。
開発段階2 : テストクライアントの実装
html + javascript でサーバアプリと通信して簡単な表示と操作が出来るものを作ります。
ここまで進むと、chrome などのブラウザから localhost にアクセスして、ローカル環境で起動したサーバアプリとのやりとりが出来るようになります。
ここで動作確認をしてバグを修正し、一通り機能が揃ったら git で共有できる状態です。
大体こんな画面になってます。
サーバ側
ログがびろびろと吐き出されています。
大半がどんなデータが送られてきて、どんなデータを送ったかのログですね。
まぁこんな画像を見せられてもわけわからないでしょうが、雰囲気だけ…。
テストクライアント側
ビジュアルはなく文字ベースのものなので、わかりにくいですが必要な情報は見れるように作られています。
クエストの内容とか、各プレイヤーの所持金や所持キャラクターなどが表示されているのがわかるかと思います。
ちなみに、画像はクエスト中で、1人目のプレイヤーが1つ目のミッションをクリアした状態ですね。
ここを作りこんで時間をかけてもあまり意味がないので、この程度でよしと割り切っちゃってます。
開発段階3 : クライアントの実装
Unity を使って、テストクライアントで行っていた挙動を作りこんでいきます。
UI なども載せてわかりやすくしていきます。が、まだデザイナ陣が入っていないのでプログラマが適当に用意した画像になっちゃってます。
まぁ、素材の差し替えは後でいくらでもできるので、気にせず雰囲気を出す程度にしておきます。
こんな感じの画面ですね。
テストクライアントと同じ状況を Unity で表示している画像になりますが、こちらの方がビジュアル的にわかりやすくなっているんじゃないでしょうか。
後は各画面を作りこみつつ、サーバ側に不備があれば修正 → テストクライアントで確認 → Unity で実装 という繰り返しです。
一通り仕上がったら、実際に AWS 上で起動して確認します。こうなると複数のプレイヤーで実際に遊べるようになります。
そして実際に遊んでみて、改修する必要があるところを確認したり、バランス調整をしたりしていきます。
まだまだ開発途中でカチッとしたビジュアルが見せられず恥ずかしいですが、プログラマだけで進めている開発初期段階ってこんなもんですよね…?(誰に問いかけているのか自分でもわかりませんが。)
ということで、今回はこれにてッッ!