Playable! Mobile 概要
ここでは Playable! Mobile Unity Plugin を中心とした Playable! Mobile の動作原理について説明します。
自動プレイ
Playable! Mobile は Unity 上のプラグイン (Playable! Mobile Unity Plugin) とツール (Playable! General Agent for Mobile) を WebSocket 接続し、以下のような仕組みでゲームを操作しています。
- ツールがゲームから自動プレイに必要な情報を収集
- ゲームの情報を使い、LLM を活用した自動プレイエージェントが操作を決定する
- エージェントが決定した操作をプラグインが再現
ツールとプラグインの接続
ツールとプラグインはネットワークを介してやり取りを行います。そのために、ツールとプラグインはネットワーク接続をする必要があります。
Playable! Mobile ではネットワーク接続をするための方法を2種類用意しています。
ツールから Windows/Mac ビルドのゲームを起動する場合
ツールからゲームを起動する場合は、コマンドライン引数として接続情報を指定してゲームを起動し、起動したゲームが即時ツールと接続する仕組みになっています。
- ツールがコマンドライン引数を指定してゲームを起動
- ゲームとツールが WebSocket 接続を確立
それ以外の場合
Android や iOS 上で動作するゲーム、もしくは Unity Editor 上で動作しているゲームはツールから起動することはできません。
そこで、ツールから起動しないゲームについては、起動直後にプラグインが接続相手とマッチングを行う仕組みで適切な相手と接続が行えるようにしています。
- ゲームの起動から30秒間、UDP ブロードキャストで接続する相手を募集
- (GUI で接続したい相手を決定すると) ツールからゲームに対して WebSocket の接続情報を UDP で送信
- ゲームとツールが WebSocket 接続を確立
ゲーム起動から30秒以上ツールと接続できない場合、プラグインは接続をあきらめ動作を終了します。