MatchMaker Ticket は、サーバーがマッチメイキングのロジックを管理します。クライアントはチケットを発行し、サーバーがマッチメイキングを完了するのを待つだけになります。
MatchMaker が発行するチケットを使えば、クライアントはサーバがマッチメイキングを行い、マッチしたクライアントに通知対するを待つだけになります。
チケットによって行われるマッチメイキングの制御は、サーバーが行います。
サーバでのチケットの制御方法はこちらを参照ください。
マッチメイキングのロジックをサーバーが完全にコントロールすることで、マッチメイキングの仕様やロジックが変わっても、クライアントのコードは一切変更する必要がありません。
チケットを発行する
Diarkis.Modules.MatchMaker mm = new Diarkis.Modules.MatchMaker();
mm.IssueTicket();
マッチングが完了・失敗したサーバからの通知を受け取る
サーバーは、マッチメイキングチケットがマッチを見つけ終えたとき、またはマッチを見つけられなかったときに通知を送信します。マッチングしたリモートクライアントも、マッチングチケットを発行したクライアントとマッチングしたときに通知を受け取ります。
ここでは、通知を受け取るためのイベントリスナーコールバックを設定する方法を説明します。
mm.OnTicketComplete += (bool success, byte[] message) =>
{
if (!success)
{
// The server failed to find matches...
return;
}
// message contains the data that the server created.
// message that the server sends can be easily configurable on the server.
};
発行されたチケットをキャンセルする
発行したマッチメイキングのチケットをキャンセルする方法をご紹介します。
注意: チケットのキャンセルは、自分が発行したチケットに限られます。
mm.CancelTicket();
チケットキャンセルの結果通知を受け取る
mm.OnCancelTicket += (bool success, byte[] message) =>
{
if (!success)
{
// Failed to cancel the ticket...
// message byte array contains the error data
return;
}
// ticket has been successfully canceled
};