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

概要

nn::pia::session::Session の使用方法をアプリ開発者に示すために用意された、ランダムマッチメイク機能を使用した 単純なサンプルです。 インターネット通信のみのサンプルとなります。

デモの適用範囲

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

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

ネットワーク接続のシーン

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

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

ランダムマッチメイクのシーン

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

入力 動作
A ボタン ランダムマッチメイク処理を開始します。ランダムマッチメイク処理が完了すると通信中のシーンに遷移します。
B ボタン ゲームサーバーからのログアウト、インターネット接続終了処理を行って、ネットワーク接続のシーンに遷移します。
X ボタン あいことばマッチメイクのあいことばの設定を切り替えます。
R ボタン 参加先のセッションの候補が複数あった場合に、優先的にマッチメイクするセッションを決定する方法を変更します。
・ランダムに決定する Random
・レーティング値とゲーム優先度の二つの条件で決定する BroadenRange+Priority
・設定したパラメータをスコア換算して決定する ScoreBased
を切り替えられます。
十字ボタン 上下 セッションの選択方法が BroadenRange+Priority、ScoreBased であるときに使用するパラメータの値を変更します。
十字ボタン 左右 セッションの選択方法が ScoreBased であるときに使用するスコア換算設定を変更します。
L ボタン

セッションの選択方法が ScoreBased でスコア換算設定が Rating の時のみ、GeoIp を Tokyo と Sydney 間で切り替えます。

セッションの選択方法が ScoreBased である時のサーバに設定されているスコア換算設定は次の通りです。

ScoreSettingIndex 換算設定の詳細
2 Rating レーティング値によりマッチメイクする対象を選択します。 0-1000, 1001-1500, 1501-2000, 2001-2500, 2501-10000 を順に 1 から 5 のグループに分け、
グループの値の差が 1 以内のセッションにマッチメイクします。 また、GeoIp による距離が遠い場合にはマッチメイクしにくくなるよう設定しています。
3 Disconnection Rate 切断率によりマッチメイクする対象を選択します。 0-1%, 1-3%, 3-5%, 5-100% を順に 1, 2, 3, 10 というグループに分け、
グループの値の差が 1 以内のセッションにマッチメイクします。
4 Violation Rate 違反率によりマッチメイクする対象を選択します。 0-1%, 1-3%, 3-5%, 5-100% を順に 1, 2, 3, 10 というグループに分け、
グループの値の差が 1 以内のセッションにマッチメイクします。
5 Geo Ip インターネット上の距離によってマッチメイクする対象を選択します。 5,000 km 以内であるセッションにマッチメイクします。
デバッグ用の API を使用して IP アドレスを上書きしています。
6 Country Code 国コードが一致する場合にマッチメイクします。
7 Session Duration セッションの存続時間が長いものに優先的にマッチメイクします。 15 秒以上存続しているセッションが優先的にマッチメイクするようになっています。
8 Selection Priority

セッションのマッチメイク優先度が高いものに優先的にマッチメイクします。

通信中のシーン

セッション内のノードと通信を行います。
このシーンでは、各ノードが以下のような通信を行います。

  • 毎秒 60 回の頻度でブロードキャスト(全員宛)パケットを送信(上画面に表示されるキャラクタの位置を送りあいます)

このシーンでは通信できていることを示すために、接続しているノードごとに1つキャラクタ('*')を割り当て、表示しています。 また、セッション情報や自分自身およびセッションホストのネットワーク情報を表示しています。

ネットワークから切断された場合は エラー表示シーン に遷移します。

入力 動作
十字ボタン 上画面に表示されるキャラクタの位置を動かします。
通信が出来ていることを示すため、十字ボタンの操作が無い場合、キャラクタは右方向へ動くようになっています。
B ボタン セッションからの離脱処理を開始します。離脱処理に成功した場合 ランダムマッチメイクのシーン に遷移します。 離脱処理が失敗した場合は、 エラー表示シーン に遷移します。
Y ボタン セッションの選択方法が BroadenRange+Priority で検索されたときに判定に使用されるマッチメイク優先度の値を更新します。
X ボタン 検索条件に指定されているセッションの属性の値を変更します。セッションのホストのみが実行できます。 検索対象となる値と検索対象外となる値を切り替えます。
R ボタン セッションを参加受付処理を開始します。既に参加受付状態の場合はセッションを参加締め切り処理を開始します。(セッションホストのみ)
十字ボタン 右 を押しながら L ボタン セッションの複数の設定を更新します。 様々な条件が更新されるのでマッチメイクできなくなります。
十字ボタン 左 を押しながら L ボタン アプリケーション定義のデータを更新します。

エラー表示シーン

非同期処理で失敗した場合や通信が維持できなくなった場合に遷移するシーンです。

エラーの概要、及び、エラーリザルトの詳細とネットワークエラーコードに変換した値を表示します。

入力 動作
A ボタン 再初期化処理を行って ランダムマッチメイクのシーン に遷移します。 ネットワーク接続をやり直す必要があるエラーであった場合には、 ネットワーク接続のシーン に遷移します。