Lobby の概要
概要
AccelByte Gaming Services (AGS) Lobby はプレイヤーのアクティビティの主要ハブとして機能し、ゲームとプレイヤー間の継続的な接続を提供します。
AGS Lobby は、プレイヤーのフレンドリストの取得、他のプレイヤーのプレゼンス状態の確認、プレイヤーが Lobby への 1 つのアクティブな接続のみを持つことの確保など、AGS フレンズおよびプレゼンスとのゲームクライアントのやり取りのエントリーポイントとしても機能します。
主要概念
AGS Lobby の設計で使用される主要概念を理解することが重要です。
Lobby 接続
プレイヤーが AGS のマルチプレイヤーサービスにアクセスするには Lobby にログインする必要があるため、安定した接続を維持することが重要です。ゲームクライアントが常に接続されていることを確保するために、サービスにはいくつかのセーフガードが組み込まれています。
- 自動再接続: プレイヤーが予期せず Lobby から切断されると、ゲームクライアントはサービスからの応答を受信しなくなります。この状況では、AGS Game SDK はプレイヤーの代わりに接続を再確立しようとするよう設計されています。
- トークンの更新: プレイヤーが最初にログインすると、指定された有効期間を持つアクセストークンが割り当てられます。サービスは、前のトークンが期限切れになったときにプレイヤーの代わりに新しいトークンを自動的に生成するよう設計されています。
- 接続の Ping: 接続が非アクティブになると、サービスはゲームクライアントに Ping を送信して、接続がまだアクティブであることをクライアントに通知するよう設計されています。
AGS はゲームクライアントに通知を配信するための信頼性の高いリアルタイムデータ転送を確保するために WebSocket アーキテクチャを使用します。このアーキテクチャにより、Lobby はゲームサーバーおよび AGS 内の他のサービスと同期を維持できます。
Lobby エンタイトルメントチェック
エンタイトルメントチェックは、接続されたプレイヤーがダウンロードコンテンツ(DLC)などのゲートコンテンツにアクセスするために必要な権限を持っていることを確認するために、さまざまなサービスで使用されます。このオプション機能は Lobby にも拡張されており、指定されたエンタイトルメントをアカウントに持つプレイヤーのみが接続できるようにすることで、ゲームにセキュリティの追加レイヤーを提供するために使用できます。
エンタイトルメントとその設定方法の詳細については、エンタイトルメントを参照してください。
Lobby レート制限
Lobby がゲームクライアントから送信されたリクエストに圧倒されないようにするためのレート制限を定義できます。これは、ゲームクライアントが指定された時間(「Duration Limit」)内に実行できるリクエスト数(「Burst Limit」)を設定することで制御されます。レートを超えると、Duration Limit に達するまで、そのゲームクライアントからの追加リクエストはブロックされます。
シングルポイントオブプレゼンス
ユーザーが複数のデバイスでログインするのを防ぐには、プレイヤーが Lobby に接続したら接続切断デリゲートを管理することができます。これにより、4041: 複数のセッションログインが検出されましたエラーで古いセッションを切断し、ユーザーが複数のデバイスからログインしているインスタンスを効果的に特定できます。
Lobby は、プレイヤーが一度に 1 つのデバイスまたはプラットフォームでサービスにログインしていることを確保するためのシングルポイントオブプレゼンス(SPOP)を強制するよう設計されています。プレイヤーが Lobby にログインしようとすると、サービスはプレイヤーのユーザーアカウント(リンクされたプラットフォームアカウントを含む)をチェックして、アカウントの接続がすでに存在するかどうかを判断します。存在する場合、サービスは新しいログインリクエストを完了する前に既存の接続を強制的にログアウトさせます。
ユーザーアカウントとアカウントリンクの詳細については、アカウントを参照してください。