CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
clone/CloneProtocol サンプルデモ

概要

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 と接続されているかを表します。 そのあとの文字列は、ロックの状態を表します。

  • SequentialSharingClone

    Q 0 R 1000

    Q から始まる行は、 SequentialSharingClone を表します。 1000 の部分は、 STATION_INDEX_1 から順にこの SequentialSharingClone と値をやり取りする SequentialSharingClone と接続されているかを表します。

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 がアクティブ状態にあるステーションをコンソールに出力します。
十字キー左右 送信間隔を変更します。

エラーが発生するなどセッションを継続できない場合は、自動的にモード選択画面に戻ります。