Playable! Game-Python Bridge
Playable! Game-Python Bridge(GPB)は、ゲームプログラムと外部プログラムとの通信基盤となるプログラムです。 これを用いることで、ゲームプログラムに加える変更は最小限となり、また、様々なゲームタイトルで共通する形で外部プログラムを利用できます。
主な用途
- QA/デバッグの自動化
- CI の一環として、自動ビルド後のコンテンツ自動操作
- 機械学習
特徴/メリット
疑似入力デバイスによるゲーム操作
GPB を利用すると、以下のような流れで外部プログラムが人間と同様にゲームを操作することが可能になります。
- 外部プログラムから入力デバイスの操作に相当する JSON を送信
- ゲームプログラム側のプラグインが JSON を受信し解釈
- JSON の内容に基づき、プラグイン側でユーザー入力があったことにする
このような方法で操作することで、ゲームプログラム側に以下のようなメリットがあります。
- ゲームプログラム側で特別な対応をしなくても、外部プログラムからゲームを操作可能
- 複数のゲームを立ち上げ、個別に操作することが可能
- ゲームの実行環境を問わない
- 単一のプログラムで Windows/Android/iPhone など様々なゲームを操作することが可能
ゲームと自動プレイのロジックの分離
ゲームプログラム内に自動プレイのロジックを内包すると、以下のような問題が生じます。
- 自動プレイ機能の開発/メンテナンスを行える人材が熟練したゲームプログラマに限定されてしまう
- 不都合が発生したときに原因の切り分けが大変 (自動テストが不具合の原因になり得る)
- 自動プレイ側の修正をするたびにゲームプログラムのリビルドが必要になる
- 自動プレイのシステムを別のゲームで再利用することが難しくなってしまう
GPB は上記のような問題を避けるために、自動プレイのロジックをゲームプログラムと分離できるように設計しています。 そのため上記の問題を回避し、一定ゲームプログラムと外部プログラムの分業を図ることが可能です。
マルチプラットフォーム対応
GPB は TCP でデータのやり取りを行うため、自動プレイの対象となるゲームプログラムの実行環境を問いません。 外部プログラムと通信することが可能なプラットフォームであれば、プラットフォームを問わずゲームプログラムを自動プレイすることが可能です。
備考
現在は十分な動作確認が取れていないため、プラグインの'WhitelistPlatforms'
をWin64
に限定しています。
対応するゲームエンジン
Unreal Engine
- Unreal Engine 4
- 4.25 以降
- Unreal Engine 5
- 5.0 - 5.2
現在の制約
現在の GPB は以下の制約があります。継続的に開発を行っていますので、ご要望等あればご相談ください。
- 複数のゲームパッドのサポート
- 以下の入力デバイス
- タッチ操作
- スマートフォンの仮想キーボード