メインコンテンツまでスキップ

独自のセッションマネージャー Extend Override アプリを作成する

Last updated on February 4, 2026

注釈:本資料はAI技術を用いて翻訳されています。

はじめに

AccelByte Gaming Services(AGS)では、Extend Override アプリを使用して、セッション(パーティーセッションとゲームセッション)の作成、更新、削除イベント時にセッションデータをカスタマイズできます。

Session Manager Actions

Extend Override アプリをトリガーすると、Session サービスは以下の入力パラメータを提供します:

  • 前のセッション状態
  • 現在のセッション状態
  • 操作(ゲームおよびパーティーの作成、更新、削除)

アプリは、セッションデータに変更がある場合、Session Create 操作でセッションデータを返します。

前提条件

API コントラクト

コントラクトには以下の関数があります:

service SessionManager {
rpc OnSessionCreated(SessionCreatedRequest) returns (SessionResponse);
rpc OnSessionUpdated(SessionUpdatedRequest) returns (google.protobuf.Empty);
rpc OnSessionDeleted(SessionDeletedRequest) returns (google.protobuf.Empty);
rpc OnPartyCreated(PartyCreatedRequest) returns (PartyResponse);
rpc OnPartyUpdated(PartyUpdatedRequest) returns (google.protobuf.Empty);
rpc OnPartyDeleted(PartyDeletedRequest) returns (google.protobuf.Empty);
}

OnSessionCreated​

OnSessionCreated は、ゲームセッションが作成され、セッションがクライアントに返される前にそのデータをカスタマイズしたい場合に呼び出されます。この操作は同期的に呼び出されるため、Session サービスはデータをデータベースに保存する前に gRPC サーバーからの応答を待ちます。

public override Task<SessionResponse> OnSessionCreated(SessionCreatedRequest request, ServerCallContext context)
{
...
}

OnSessionUpdated

OnSessionUpdated は、ゲームセッションに更新または変更がある場合に呼び出されます。この操作は非同期であるため、Session サービスはゲームセッションに更新がある場合に gRPC サーバーに通知しますが、データベースを更新するための応答を待ちません。

public override Task<Empty> OnSessionUpdated(SessionUpdatedRequest request, ServerCallContext context)
{
...
}

OnSessionDeleted

OnSessionDeleted は、ゲームセッションが削除される際に呼び出されます。このイベントは非同期であるため、Session サービスは削除リクエストがある場合に gRPC サーバーに通知しますが、データベースを更新するための応答を待ちません。

public override Task<Empty> OnSessionDeleted(SessionDeletedRequest request, ServerCallContext context)
{
...
}

OnPartyCreated​

OnPartyCreated は、パーティーセッションが作成され、セッションがクライアントに返される前にそのデータをカスタマイズしたい場合に呼び出されます。この操作は同期的に呼び出されるため、Session サービスはデータをデータベースに保存する前に gRPC サーバーからの応答を待ちます。

public override Task<PartyResponse> OnPartyCreated(PartyCreatedRequest request, ServerCallContext context)
{
...
}

OnPartyUpdated

OnPartyUpdated は、パーティーセッションに更新または変更がある場合に呼び出されます。この操作は非同期であるため、Session サービスはパーティーセッションに更新がある場合に gRPC サーバーに通知しますが、データベースを更新するための応答を待ちません。

public override Task<Empty> OnPartyUpdated(PartyUpdatedRequest request, ServerCallContext context)
{
...
}

OnPartyDeleted

OnPartyDeleted は、パーティーセッションが削除される際に呼び出されます。このイベントは非同期であるため、Session サービスは削除リクエストがある場合に gRPC サーバーに通知しますが、データベースを更新するための応答を待ちません。

public override Task<Empty> OnPartyDeleted(PartyDeletedRequest request, ServerCallContext context)
{
...
}
備考

gRPC リクエスト処理の詳細については、こちらをご覧ください。