Cygamesゲームエンジニア/クライアントサイドの柴田です。
2019年9月5日(木)に開催されたCEDEC 2019にて、「Shadowverse流開発手法 ~QAコスト削減と堅牢性強化を実現するプランナーによるテスト駆動開発~」という講演を、弊社ゲームエンジニア/クライアントサイドの鄒とともに行いました。
講演にご参加いただいた皆様には、改めて御礼申し上げます。
本講演では『Shadowverse』を運用していく中で問題となったQAコストの増加と堅牢性の低下に対して我々がどのように対応したかを、AI開発、スキル開発に分けて解説させていただきました。
ここではフォローアップとして、講演後にいただいた質問に返答したいと思います。
Q:テストケース再生時は改めてAIの処理を呼び出すのか?
A:そうです。AIがプレイした結果が正解盤面と一致しないことは想定した動きを実現できないことを意味するので、NGとします。一部のスキル付与や盤面再現のために非AI側の行動も行いますが、その場合はスタート盤面と一緒に手順も記録して再生します。
Q:複数の正解がある場合はどうやってテストシナリオを作るのか
A:基本的に1つのテストケースに正解は1つしかありません。複数の正解があるということは、複数の性質の異なる行動プランを立てられることになり、そのケースに含まれる戦術が1つだけではないということになります。その場合、要件をさらに切り分けられるかをプランナーと一緒に考えます。
Q:テストのための要素切り出しが難しいのではないか?
A:おそらくエンジニアだけでは非常に難しいです。テストシナリオと同様に、AIとスキルのどちらにおいても実装段階からエンジニアとプランナーで協力をして各構成要素を細かく算出し、それらを使用したテストの仕組みの作成や実装を行っていく必要があるかと思います。
Q:AIを搭載していないゲームの場合自動テストのためにAIを作ることになると思うが、やるだけの価値はあるか?
A:やる価値は非常に高いと思います。運用が長くなってきたときやプロジェクトが大規模化してきたときなどに、何か修正や実装を加える際にエンジニアの心の余裕も生まれますし、影響範囲が広い修正や実装だったりすると、どうしても人力ではチェックが追いつかないところが出てくるので、そのサポートをする意味でもやったほうが良いです。
また、AIに関しては賢いものである必要はありません、最低限オートでバトルを実行できて、法則性を持った動きをしなければ十分テスト用としては機能すると思います。
以上、講演後に頂いたご質問へのご返答になります。
皆さんのご参考になれば幸いです。