メンテナンス中のオンラインゲーム統合におけるグレースフルな中断処理
注釈:本資料はAI技術を用いて翻訳されています。
AccelByte Gaming Services (AGS) を利用したオンラインゲームは、認証、マッチメイキング、フレンドリスト、クラウドセーブなどの重要な機能において、堅牢なバックエンドインフラストラクチャに依存しています。安定性、セキュリティ、パフォーマンスを維持するために定期的なメンテナンスは不可欠です。しかし、適切に管理されない場合、メンテナンス期間中にプレイヤー体験の低下、予期しない切断、API リクエストの失敗が発生する可能性があります。
これらの中断を最小限に抑えるため、開発者はプレイヤーに情報を提供し、リトライを効果的に管理し、ゲームプレイへの影響を軽減するために、グレースフルな中断処理を実装する必要があります。AccelByte の組み込みリトライメカニズムを活用することで、サービス中断中でもゲームはよりスムーズな体験を提供できます。
前提条件
これらの処理例は Byte Wars の実装に基づいて説明されています。より深く理解するために、Unreal Engine Byte Wars Setup または Unity Byte Wars Setup のステップバイステップガイドに従って、ワークスペースに Byte Wars をセットアップしてください。
AGS ネットワーク通信
AGS は主に2つのタイプのネットワーク通信に依存しています:
- WebSocket 接続:ロビーとチャットサービスに使用されます。
- HTTP 接続:アクセス、ソーシャル機能、ストレージ、エンゲージメントサービスに使用されます。
AGS Unreal Engine と Unity SDK の両方には、設定されたタイムアウトでの自動再接続とリトライのための組み込み機能が付属しています。ただし、デフォルトのタイムアウトに達した場合、手動で再接続を試行するための追加の処理が必要です。
グレースフルな中断処理の実装方法
定期メンテナンス中のゲーム統合におけるグレースフルな中断処理の例:
ロビーWebSocketリカバリー
リアルタイムアプリケーションにおけるロビーWebSocket中断の処理のベストプラクティスを学びます。シームレスな再接続を確保し、ゲームプレイの安定性を維持します。API呼び出しリカバリー
ゲームにおける失敗したAPI呼び出しを適切に処理する方法を学びます。ネットワーク中断時でもスムーズなゲームプレイを確保します。ゲームメンテナンステスト
AccelByteのメンテナンスシミュレーションを使用して、リリース前にゲームがサービス中断をどのように処理するかをテストします。詳細なレポートで実際のダウンタイムに備えます。ゲーム状態復旧
ゲーム状態復旧、ログイン問題、マッチメイキング失敗、切断の処理に関するベストプラクティスを学び、プレイヤー体験を向上させるGame SDK ログ
開発者が接続問題をデバッグするのを支援するため、Game SDK の AccelByte 関連コンポーネントに対して詳細ログを有効にすることを推奨します。これにより、ネットワーク中断と再接続試行に関する詳細な情報が得られます。
- Unreal Engine
- Unity
Unreal Engine SDK では、AccelByte 関連コンポーネントを取得するために以下のログカテゴリを有効にできます:
- LogAccelByte – AccelByte SDK の一般的なログで、API リクエストとレスポンスをカバーします。
- LogAccelByteOSS – AccelByte Online Subsystem に関連するログで、マッチメイキング、認証、セッション処理に有用です。
- LogAccelByteLobby – パーティ管理やフレンド通知などのロビーインタラクションの WebSocket 接続をログに記録します。
- LogAccelByteWebsocket – WebSocket 接続と再接続試行に関する詳細なログを提供します。
- LogAccelByteHttpCache – HTTP キャッシュに関する詳細なログを提供します。
- LogAccelByteHttpRetry – HTTP リトライメカニズムに関する詳細なログを提供します。
これらのログを有効にすることで、開発者は問題を追跡し、リトライ動作を分析し、中断をより効果的にデバッグできるようになり、ネットワーク中断中でもよりスムーズなプレイヤー体験を提供できます。
Unreal Engine プロジェクトでこれらのログを有効にするには、以下の手順に従ってください:
- ゲームプロジェクトディレクトリの Config/DefaultEngine.ini ファイルを開きます。
- [Core.Log] セクションの下に、次のようにログカテゴリ名を追加します:
...
[Core.Log]
LogAccelByte=VeryVerbose
LogAccelByteOSS=VeryVerbose
LogAccelByteLobby=VeryVerbose
LogAccelByteWebsocket=VeryVerbose
LogAccelByteHttpCache=VeryVerbose
LogAccelByteHttpRetry=VeryVerbose
...
- また、ゲーム開始時にコマンドラインパラメータを使用して、異なるログカテゴリの詳細レベルを制御することもできます。これを行うには、起動コマンドの最後に以下のフラグを追加します:
-LogCmds="LogAccelByte VeryVerbose, LogAccelByteOSS VeryVerbose, LogAccelByteLobby VeryVerbose, LogAccelByteWebsocket VeryVerbose, LogAccelByteHttpCache VeryVerbose, LogAccelByteHttpRetry VeryVerbose"
これにより AccelByte コンポーネントの詳細ログが有効になり、ネットワーク問題、API リクエスト、再接続試行をより効果的に追跡できるようになります。
Unity SDK では、Set up Unity SDK Log Guide ページの手順に従ってログを有効にできます。