Playable!
Playable! とは
「Playable!」は、AIQVE ONE 株式会社が提供する、ゲーム QA に特化した自動テストツールスイートです。 AI 技術を活用し、より高度なゲーム QA・デバッグ・テスト体験を実現することを目指しています。
Playable! では、外部のプログラムからゲームを操作する仕組みを提供しています。 これにより、ゲームプログラムへの変更を最小限にした形で自動テストを実現します。
現在、ゲームプログラムを変更せずに、外部からゲームを操作する仕組みも研究開発中です。
基盤技術: Game-Python Bridge
Playable! では「Game-Python Bridge」という、ゲームプログラムと外部プログラムとの通信基盤を用意しています。 これを用いることで、ゲームプログラムに加える変更は最小限となり、また、様々なゲームタイトルで共通する形で外部プログラムを利用できます。
Game-Python Bridge は以下の方針で設計しています。
- 外部プログラムと TCP 通信でやり取りを行う
- 外部プログラムによるゲームの操作はゲームパッドなどと同等に扱われるようにする
- 各種内部パラメータを取得し、外部プログラムに送信する
Game-Python Bridge の利用にともないゲームプログラムに加える変更は 「各種内部パラメータを取得し、外部プログラムに送信する」部分になります。
Game-Python Bridge の詳細はこちらを確認してください。
TCP 通信が行えれば、ゲームプログラムはゲーム機の開発機上で動作していても問題ありません。
現在提供している自動テストツール
現在、Playable!ツールスイートとして下記の自動テストツールを提供しています。
- Playable! Collision Checker
- Playable! Item Collector
- Playable! Playthrough Tester
- Playable! General Agent
また、Playable! Collision Checker、Playable! Item Collector 及び Playable! General Agent の実行に必要なマップのスキャンデータを作成する補助ツールとして、 Playable! Map Scanner を提供しています。
Playable! Collision Checker
「Playable! Collision Checker」は、マップ上のすべての壁に衝突して当たり判定に問題がないかチェックする自動テストツールです。
大量のゲームインスタンスを並列起動し、広大なマップのあらゆる場所の当たり判定を自動で、かつ再現可能な形でチェックします。 従来人手で行われていた作業をコンピュータで代替するだけでなく、人手では確認困難なコリジョンの抜けも網羅的に発見することができます。
Playable! Collision Checker の詳細はこちらを確認してください。
Playable! Item Collector
「Playable! Item Collector」は、マップ上に配置されているアイテムを自動ですべて回収する自動テストツールです。
プレイヤーキャラクターを実際に操作し、アイテムが入手可能かを確認することが特徴です。 配置したアイテムが実際に入手可能な状態になっているかを確認できます。
Playable! Item Collector の詳細はこちらを確認してください。
Playable! Playthrough Tester
「Playable! Playthrough Tester」は、ゲームシナリオを最初から最後まで通しでプレイし、ゲームがクリア可能であることを確認する自動テストツールです。
人力では高頻度に行うことが難しかった通しプレイをコンピューターに代替させることができます。 これによりマップに変更を加えても常にクリアできる状態にあることを確認しながら開発を進めることができます。
Playable! Playthrough Tester の詳細はこちらを確認してください。
Playable! General Agent
「Playable! General Agent」は、チャットボットを通して自然言語によりゲームアプリをテストプレイするためのツールです。
Playable! General Agent の詳細はこちらを確認してください。
ゲームごとに必要な対応
Playable! を利用するには、ゲームプログラムと Playable! 各ツールそれぞれに対して以下の対応を行なう必要があります。
導入チュートリアルを用意しています。以下のドキュメントも参照してください。
ゲームプログラムに必要な対応
- Game-Python Bridge を組み込む
- Unreal Engine / Unity 向けにはプラグインを用意しています。
- 自動プレイを行うために必要なゲーム内情報を収集し、外部プログラムに送信する処理を実装する
- (必要に応じて) 自動テストに必要なデバッグ機能の追加実装
なお、上記対応はゲームのロジックに影響を与えることはありません。
各自動テストツールに必要な対応
対応が必要な箇所は利用する自動テストツールごとに異なります。 以下は各ツールに共通する主な対応事項となります。
- 自動プレイエージェントのパラメータ変更
- ゲーム毎に操作方法やプレイキャラクターの身体能力が異なるため、各ゲームに合わせた調整が必要です。
- タイトル画面などのメニュー操作処理の実装
- ゲームを起動してからプレイヤーを操作できるようになるまでの、メニュー操作処理を実装する必要があります。
- ステージごとのマップ画像の作成
- Playable! Collision Checker などの結果を可視化する際に必要となります。
- ゲームごとの仕様を踏まえたツール GUI の調整