Posted at

ゲーム品質を上げるための自動化、オートプレイ

More than 3 years have passed since last update.

CEDEC 2016 で『ベヨネッタ2』におけるゲーム品質を上げる為の自動化が大変割りきった設計のテストで、その割り切りっぷりが気持ちよかったので紹介します。


オートプレイの概要


  • ニューゲームからエンディングへ行くまで繰り返しプレイ

  • 3ヶ月程度で実装、最初は兼業で作り2~3週間で動くように

  • 同じ行動を繰り返してバグを発見・再現したいので、ランダム性は排除

本業の傍ら2~3ヶ月で動くようになったという事で少ない工数の中で実装されている点が興味深いです。続く実装方法にその秘密がありました。


オートプレイの実装

基本的には「パッド入力の再現」のみ。なんという割り切り。

延々とパッド入力を設定し続け、それを再生するだけという事です。もちろん「アイテム入手結果画面が出てきたらボタンを固定回数連打してパッド入力を再開」など場面に応じて操作を変える点はあるものの、とてもシンプルにまとめられています。

ちなみに、開発初期の頃はナビゲーションメッシュを使っていましたが、再現性が落ちるなどの理由から結局は使われなくなったそうです。


オートプレイの設定方法

実機で設定するのでゲームパッドを使いオートプレイのパッド入力を設定するそうです。

cone.png

具体的には、ゲーム内ツールから3D空間にコーンを次々と設置します。コーンにはボタン操作などのアクションが設定できます。オートプレイを開始するとキャラクター(ベヨネッタ)がコーンまで移動し、コーンに到着すると設定されたアクションを実行するというもの。

延々と設定するのは大変そうですが、特に難しい事はないなという印象です。


パフォーマンス計測の可視化


  • ブラウザでオートプレイ中のパフォーマンスを可視化

  • データは1日毎にxmlファイルへ保存

  • 作っても大抵の人は見ないため、自分には関係ないと思っているのでページの作り方を工夫
    => ワクワクするページを作ろう
    => 改善した後にみんなで喜んでもらえるページを作ろう
    => 毎日開いてもらえるようなページを作ろう

データがxmlに保存されているのはDBを採用して障害対応をしたくないとのこと。セッションの冒頭で「プログラムを書きたくない、書かずにゲームを作りたい」と言われていた言葉が思い起こされました。


所感

やりたい事を実現するために必要最小限の設計と実装で済むよう一貫して割り切っている点が大変印象的でした。

プログラムの設計はともすると複雑に考えてしまいがちですので、講演者の森田さんのようにシンプルに小さく実装する事を心がけたいです。