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

概要

PiaClone とジョイントセッション機能を使用してチームマッチメイクを行うデモです。

デモの適用範囲

このサンプルデモは、主に以下の項目に関するデモです。

各シーンでの処理の概要と操作方法

ネットワーク接続シーン

起動時に自動的にこのシーンに遷移します。

自動的に、インターネット接続およびゲームサーバーへのログインを行います。処理が完了すると自動的に チーム選択シーン へと遷移します。ネットワーク接続が失敗した場合、 エラー表示シーン へ遷移します。

チーム選択シーン

自分が所属するチームの種別を選択するシーンです。

入力 動作
十字ボタン 自分が所属するチームの種別を選択します。このサンプルではチームの種別を 3 種類用意しています。
A ボタン 自分が所属するチームの種別を決定します。選択すると マッチメイクのシーン に遷移します。
START ボタン ゲームサーバーからログアウトします。
選択すると Pia モジュールの終了処理およびゲームサーバーからのログアウト、インターネット通信の終了処理を行います。その後、自動的に ネットワーク接続シーン へ遷移します。

マッチメイクのシーン

チームを結成するためのランダムマッチメイク処理の開始待ちを行うシーンです。

自分が所属しているチームの種別を検索条件として自動探索し、同じチームの種別を選択したステーションとマッチメイクします。

入力 動作
A ボタン チームを結成するためのランダムマッチメイク処理を開始します。ランダムマッチメイク処理が完了すると 通信中のシーン(チーム用セッション) へ遷移します。
B ボタン チームの種別を選択し直すために チーム選択シーン へ遷移します。
START ボタン ゲームサーバーからログアウトします。
選択すると Pia モジュールの終了処理およびゲームサーバーからのログアウト、インターネット通信の終了処理を行います。その後、自動的に ネットワーク接続シーン へ遷移します。

通信中のシーン(チーム用セッション)

チーム用セッション内のステーションと通信を行います。

この状態から、ジョイントセッション機能を使用して、自分たちとは異なる種別のチームとのランダムマッチメイクを行うことができます。

このシーンでは、各ステーションが以下のような通信を行います。

  • 毎秒 15 回 の頻度で全員宛に、画面に表示されるキャラクタの位置等を送信

このシーンでは通信できていることを示すために、接続しているステーションごとに1つキャラクタ('*')を割り当て、表示しています。
キャラクタの右にチーム内でのメンバーインデックスを表示しています。 また、他にも、チーム内での共有オブジェクト、全ステーション共有オブジェクトを示すキャラクタも表示しています。 右に表示された文字によって、各キャラクタは次のように分類されます。

  • 数字:チーム内でのメンバーインデックスが数字と一致するステーションを表すキャラクタ
  • A:チーム内のステーションが操作でき、AtomicSharingClone でデータの送受信を行っているキャラクタ
  • Q:チーム内のステーションが操作でき、SequentialSharingClone でデータの送受信を行っているキャラクタ
  • CA:全ステーションが操作でき、AtomicSharingClone でデータの送受信を行っているキャラクタ
  • CQ:全ステーションが操作でき、SequentialSharingClone でデータの送受信を行っているキャラクタ

A、CA のキャラクタについては、AtomicSharingClone のロック取得処理中は右側に ? が、ロック取得完了後は右側に ! が表示されます。
また、CA、CQ のキャラクタは、ゲーム用セッションで通信中のシーンでのみ表示されます。

クライアントとして動作している場合、ホストがジョイントセッションへの参加処理を開始すると、自動的に セッション変更シーン に遷移します。
通信状態が異常になる等の理由で、意図せずセッションから切断された場合は エラー表示シーン に遷移します。

入力 動作
十字ボタン 画面に表示されるキャラクタの位置を動かします。キャラクタの右側に表示されている矢印や文字が赤色になっているキャラクタが現在の操作対象です。
通信が出来ていることを示すため、十字ボタンの操作が無い場合、キャラクタは右方向へ動くようになっています。
X ボタン ホストとして動作している場合、自分たちとは異なる種別のチームとマッチメイクするために セッション変更シーン に遷移した後、 通信中のシーン(ゲーム用セッション) へ遷移します。
クライアントとして動作している場合には何も起こりません。
B ボタン チーム用セッションから離脱して チーム選択シーン へ遷移します。
R ボタン 操作対象のキャラクタを変更します。
L ボタン セッションホストのみ操作できます。 セッションが締切状態の場合には、セッション参加受付処理を開始します。
セッションが募集状態の場合には、セッション参加締切処理を開始します。
A ボタン 操作対象のキャラクタが A の場合は、ロックの取得を試みます

セッション変更シーン

セッションの状態が変化する処理の完了を待つシーンです。処理が完了した後は、処理結果に応じて自動的にシーンが遷移します。

このシーンを通過する状況は以下の通りです。

  • 通信中のシーン(チーム用セッション) から 通信中のシーン(ゲーム用セッション) への遷移(自分たちとは異なるチームとマッチメイクするため)
  • 通信中のシーン(ゲーム用セッション) から 通信中のシーン(チーム用セッション) への遷移(ゲーム用セッションが解散されてチーム用セッションへ戻るため)
  • 通信中のシーン(ゲーム用セッション) から チーム選択シーン への遷移(ゲーム用セッションおよびチーム用セッションから離脱してチーム選択へ戻るため)

通信中のシーン(ゲーム用セッション)

ゲーム用セッション内のステーションと通信を行います。

このデモのゲーム用セッションは、自分たちとは異なる種別のチームと P2P 通信するためのセッションです。 ジョイントセッション機能を使用して、チーム用セッションから作成します。

各ステーションの通信内容および画面表示は、基本的に 通信中のシーン(チーム用セッション) と同様です。

ホストは、ジョイントセッションの解散処理によりゲーム用セッションを解散し、各チームをチーム用セッションで通信中のシーンに戻すことが可能です。
ホスト以外のステーションは、ホストがジョイントセッションの解散処理を開始すると、自動的に セッション変更シーン に遷移します。
通信状態が異常になるなどの理由で、意図せずセッションから切断された場合は エラー表示シーン に遷移します。

入力 動作
十字ボタン 画面に表示されるキャラクタの位置を動かします。
通信が出来ていることを示すため、十字ボタンの操作が無い場合、キャラクタは右方向へ動くようになっています。
X ボタン ホストとして動作している場合、ゲーム用セッションを解散するために セッション変更シーン に遷移した後、 通信中のシーン(チーム用セッション) へ遷移します。
ホストでない場合には何も起こりません。
B ボタン ゲーム用セッション、およびチーム用セッションから離脱して チーム選択シーン へ遷移します。
R ボタン 操作対象のキャラクタを変更します。
A ボタン 操作対象のキャラクタが A または CA の場合は、ロックの取得を試みます

エラー表示シーン

AP との接続異常などで通信が行えない場合や、セッションの通信が維持できなくなった場合に遷移するシーンです。
エラー種別(エラー表示シーンに遷移した理由)および Result とネットワークエラーコードの表示を行います。

エラー種別は以下の通りです。

  • 無線 OFF モードになっているため、初期化に失敗しました
  • 上記以外の理由で初期化が失敗しました
  • マッチメイクに失敗しました
  • セッションが消失(ロスト)しました
  • ネットワーク接続が断絶しました
  • アプリケーション都合のエラーが発生しました
  • その他の理由で通信エラーが発生しました
入力 動作
A ボタン シーンを抜け チーム選択シーン へ遷移します。
ネットワークのリセット(再ログインなど)が必要なエラーだった場合は Pia の終了処理を行った後 ネットワーク接続シーン へ遷移します。