CTR-Pia
5.4.3
Game Communication Engine
|
PiaClone の CloneProtocol の使用方法を解説するためのデモです。
このサンプルデモは、以下の項目に関するデモです。
通信のモードを選択する画面です。 選択するとマッチメイクが行われた後メイン画面に移行します。
入力 | 動作 |
---|---|
A ボタン | ローカル通信 (UDS) のホストとして実行します。セッションを作成後同期データ選択画面に移行します。 |
B ボタン | ローカル通信 (UDS) のクライアントとして実行します。 UDS ネットワークを検索して発見したものに参加し、メイン画面に移行します。 UDS ネットワークを検索中に START ボタンを押すと、検索を中断してモード選択画面に戻ります。 |
X ボタン | インターネット通信を使うモードで実行します。 ランダムマッチメイクを行い、参加できるセッションがあればそこにクライアントとして参加、無ければホストとしてセッションを作成します。 その後、メイン画面に移行します。 |
START ボタン | アプリケーションを終了します。 |
CloneProtocol を使って通信を行います。
画面上の 2 行毎に一つのクローンに対応しており、 1 行目がそのクローンの状態、 2 行目がそこに登録されているクローンエレメントの値を表示しています。
最初の文字がクローンの種類、続いてクローンの ID、次いで R とあれば CloneProtocol に登録されていることを表します。 そのあとの表示はクローンの種類ごとに異なり、以下のような表示になります。
SendClone
S 0 R 1000
S から始まる行は、 SendClone を表します。 1000 の部分は、 STATION_INDEX_1 から順にこの SendClone から値を受け取る ReceiveClone と接続されているかを表します。 (接続されていれば 1 , されていなければ 0 )
ReceiveClone
R 0:0 R 1
R から始まる行は、 ReceiveClone を表します。 ID の後の数字は、接続先のステーションインデックスです。 最後の 1 の部分は、 対象の SendClone と接続されているかどうかを表します。
AtomicSharingClone
A 0 R 1000 Unlocked
A から始まる行は、 AtomicSharingClone を表します。 1000 の部分は、 STATION_INDEX_1 から順にこの AtomicSharingClone と値をやり取りする AtomicSharingClone と接続されているかを表します。 そのあとの文字列は、ロックの状態を表します。
Q から始まる行は、 SequentialSharingClone を表します。 1000 の部分は、 STATION_INDEX_1 から順にこの SequentialSharingClone と値をやり取りする SequentialSharingClone と接続されているかを表します。Q 0 R 1000
2 行目は、各クローンエレメントの値です。 最初の 4 個が UnreliableCloneElement 、 次の 1 個が ReliableCloneElement 、 次の 4 個が EventCloneElement で受信したイベントの履歴、 次の 1 個が ReliableLargeCloneElement 、 最後が ReckoningCloneElement です。 値が設定もしくは受信されるまでは表示されません。
一番下の行は CloneProtocol の状態を表示しています。 CloneProtocol のステート、時刻、送信間隔、1 秒当たりの送信パケット数を表示しています。 時刻の再同期中は、時刻の値の後に R と表示されます。
入力 | 動作 |
---|---|
十字キー上下 | カーソル(ピンク色の表示)を動かして操作対象を切り替えます。 |
L ボタン | CloneProtocol およびクローン、クローンエレメントのプロファイリングを開始します。10 秒後に結果をコンソール画面に表示します。 |
START ボタン | セッションを抜けてモード選択画面に戻ります。 |
各クローンにカーソルがあるときは、そのクローンを操作します。
入力 | 動作 |
---|---|
十字キー右 | CloneProtocol への登録/非登録状態を切り替えます。 |
十字キー左 | ( AtomicSharingClone の場合)ロック状態を切り替えます。 |
A ボタン | (送信可能な状態の場合) ReliableCloneElement に新たな値をセットします。 |
B ボタン | (送信可能な状態の場合) EventCloneElement でイベントを発行します。 イベントの発行/取得の経過はコンソールに出力されます。 |
X ボタン | (送信可能な状態の場合) ReliableLargeCloneElement に新たな値をセットします。 値の送信/取得の経過はコンソールに出力されます。 |
Y ボタン | ( SendClone の場合)この SendClone からデータを受け取る ReceiveClone が全てのステーションに存在するかどうかを判定し、その結果をコンソールに出力します。 ( SequentialSharingClone の場合)この SequentialSharingClone とデータをやり取りする SequentialSharingClone が全てのステーションに存在するかどうかを判定し、その結果をコンソールに出力します。 |
State の行にカーソルがある場合は、 CloneProtocol に対して操作します。
入力 | 動作 |
---|---|
A ボタン | CloneProtocol での通信を開始/終了します。 |
X ボタン | 時刻を再同期します。 |
Y ボタン | 現在 CloneProtocol に登録されているクローンの ID と種類をコンソールに出力します。また、現在 CloneProtocol がアクティブ状態にあるステーションをコンソールに出力します。 |
十字キー左右 | 送信間隔を変更します。 |
エラーが発生するなどセッションを継続できない場合は、自動的にモード選択画面に戻ります。