Amazon GameLift Servers でのホスティングの仕組み - Amazon GameLift Servers

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon GameLift Servers でのホスティングの仕組み

Amazon GameLift Servers は、セッションベースのマルチプレイヤーゲーム専用の低コストサーバー、インフラストラクチャのプロビジョニング、スケーリング、セッション管理を提供するサービスです。このサービスには、ゲーム用にカスタマイズしたり、独自のシステムと連携して使用したりできる柔軟なツールや機能が用意されています。Amazon GameLift Servers マネージドホスティングを利用すると、サーバーオペレーションを管理するのではなく、ゲームプレイエクスペリエンスの作成に集中できます。

このトピックでは、完全な Amazon GameLift Servers ホスティングソリューションのコアコンポーネントと、マルチプレイヤーゲームセッションをプレイヤーに提供するためにそれらがどのように連携するかについて説明します。

ゲームホスティングソリューションの主要コンポーネント

完全な Amazon GameLift Servers ホスティングソリューションは、マルチプレイヤーゲームエクスペリエンスを提供するために連携するいくつかの重要なコンポーネントで構成されています。これらのコンポーネントの中には、ユーザーが構築および管理するものもあれば、設定の選択に基づいて Amazon GameLift Servers によって提供および管理されるものもあります。これらのコンポーネントがどのように相互作用し、それぞれの役割を理解することは、効果的なゲームホスティングソリューションを開発するために不可欠です。コンポーネントには以下が含まれます。

  • ゲームクライアントはプレイヤーデバイス上で実行されます。

  • バックエンドサービスを使用すると、ゲームクライアントは Amazon GameLift Servers と通信してゲームセッション情報を取得し、ゲームに参加できます。

  • ゲームサーバーソフトウェアはゲームホスティングリソースで実行され、プレイヤーグループのゲームセッションをホストします。

  • プレイスメントシステムはゲームセッションを開始し、プレイヤーをゲームにマッチングします。

  • ゲームホスティングフリートは、1 つ以上の地理的場所にゲームサーバーを提供します。

  • ゲームホスティング管理システムは、ゲームホスティングのステータスをモニタリングし、容量を管理します。

マネージド Amazon GameLift Servers を使用したゲームアーキテクチャ。

ゲームクライアント

ゲームクライアントはプレイヤーのデバイス上で動作するゲームのソフトウェアです。バックエンドサービスと通信してゲームセッションへのプレイヤー配置を開始し、ゲームサーバーに直接接続してゲームプレイに参加します。

ゲームホスティングの主な機能
  • 結合リクエストをバックエンドサービスに送信します。関連するプレイヤーデータとゲームセッションデータを結合リクエストの一部として含めます。

  • ゲームクライアントのレイテンシーデータを収集し、その情報を結合リクエストに含めます。

  • バックエンドサービスからゲームセッション接続情報を受信し、それを使用してゲームサーバーに接続します。

  • プレイヤーの検証、Amazon GameLift Servers FlexMatch のマッチ承認、セッションの中断や切断など、セッション接続シナリオを処理します。

構築者

ゲームクライアントソフトウェアにゲームホスティング機能を追加し、バックエンドサービスとの通信を設定します。

バックエンドサービス

バックエンドサービスは、ゲームクライアントと Amazon GameLift Servers サービスの間を仲介するレイヤーです。サービスとのすべての通信を制御して、ゲームセッション配置のリクエストを行い、ゲームセッションとプレイヤーセッション情報を取得します。バックエンドサービスの使用は、ゲームクライアントに代わってサービスとの安全な通信を維持し、ゲームクライアントと AWS 機密認証情報とアクセス許可を共有する必要がないようにするベストプラクティスです。

バックエンドサービスは、ゲームセッションのプレイヤーグループ化戦略を実装します。プレイヤーがゲームセッションに参加する方法に大きな柔軟性があります。プレイヤー用にゲームセッションブラウザを設定したり、プレイヤー定義のパーティをサポートしたりできます。または、受信したゲームセッションリクエストをプールし、(必要に応じて事前に分類して) プレイヤーグループを形成し、各グループごとにゲームセッションを開始することもできます。FlexMatch マッチメーキングを使用すると、プレイヤーマッチを形成し、既存のマッチをバックフィルできます。

ゲームホスティングの主な機能
  • ゲームクライアントからの通信を認証します。

  • Amazon GameLift Servers に新しいゲームセッションの開始、ゲームセッション情報の取得、既存のゲームセッションへの参加をリクエストします。必要に応じて、関連するゲームセッションとプレイヤーデータをリクエストに含めます。

  • 必要に応じて、プレイヤーセッションのリクエストを作成して、ゲームセッションの可用性をより詳細にモニタリングします。プレイヤーセッションを使用して、ゲームセッションスロットを予約し、接続時にプレイヤーを検証し、プレイヤーの切断を追跡します。

  • リクエストに応じて、ゲームセッション接続の詳細やその他の情報をゲームクライアントに返します。

構築者

ゲーム要件をサポートし、プレイヤーのゲーム参加方法を実装するために、あなたが管理する環境にバックエンドサービスを構築します。 AWS SDK を統合して、Amazon GameLift Serversサービス API を呼び出します。必要に応じて、Amazon Simple Storage Service (Amazon S3) や Amazon Cognito などのサービス AWS を使用して AWS Lambda、 でバックエンドサービスを構築します。

ゲームサーバー

ゲームサーバーは、ゲームの状態を管理し、プレイヤーのアクションを処理し、複数の接続されたプレイヤー間でゲームプレイを同期するカスタムサーバーソフトウェアです。ゲームサーバーは、Amazon GameLift Servers サービスとの通信を維持し、ゲームセッションホスティングを管理します。

ゲームホスティングの主な機能
  • Amazon GameLift Servers と通信して、次を実行します。

    • セッションのホスト準備、プレイヤー受け入れ準備、ヘルスステータスなどの状態を報告します。

    • ゲームセッションの開始や終了などのサービスコールに応答します。

  • ゲームセッションのライフサイクルを管理し、プロセスごとに 1 度に 1 つのゲームセッションをホストします。

  • 他の AWS サービスと連携して機能を追加します。

  • 必要に応じて、新しいプレイヤー接続を検証します。

構築者

ゲームサーバーソフトウェアを構築します。サーバー SDK for Amazon GameLift Servers を統合し、サービスとの接続を確立し、ゲームセッション管理をサポートする機能を追加します。

ゲームホスティングフリート

ホスティングフリートは、ゲームサーバーを実行するコンピューティングリソースのコレクションです。フリートリソースは複数の地理的ロケーションに分散でき、プレイヤーの所在地に関わらず低レイテンシーのゲームプレイを実現します。各フリートリソースは、Amazon GameLift Servers と直接通信する 1 つ以上のゲームサーバープロセスを実行します。各ゲームサーバープロセスは、一度に 1 つのゲームセッションをホストできます。

フリートの特性と機能は、フリートのホスティングタイプによって異なります。マネージドフリートはリソースを にデプロイ AWS クラウド し、 によって管理されますAmazon GameLift Servers。Anywhere フリートは、お客様が用意したコンピューティングリソースであり、Amazon GameLift Servers の外部で管理されます。

ゲームホスティングの主な機能
  • ゲームサーバーホスティングリソースをプロビジョニングします。

    • マネージドフリートは、幅広い構成設定でクラウドベースの Amazon EC2 インスタンスをデプロイします。フリート設定は、フリート内の各インスタンスのコンピューティング能力、インスタンスの物理的な場所、およびその他の詳細を決定します。マネージドフリートは、キャパシティスケーリングに応じて EC2 インスタンスを追加または削除します。

    • Anywhere フリートデプロイはセルフマネージド型です。フリートは物理ハードウェアまたは他のクラウドリソースで構成され、必要に応じて設定できます。

  • ランタイム環境とゲームサーバーソフトウェアをインストールします。

    • マネージド Amazon EC2 Fleet インスタンスは、ゲームサーバービルドと、互換性のあるランタイム環境を備えた Amazon マシンイメージ (AMI) でデプロイされます。

    • マネージドコンテナフリートインスタンスは、ゲームサーバービルドと、Docker ツールやその他の Amazon ECS と連携するためのコンポーネントを含むコンテナ最適化 AMI と共にデプロイされます。

    • Anywhere フリートは、選択したゲームサーバーソフトウェアとオペレーティングシステムでデプロイされます。

  • ゲームサーバープロセスのライフサイクルを管理します。事前設定されたランタイム手順を使用して、各フリートリソースでプロセスを開始および停止します。

構築者

これはフリートのホスティングタイプによって異なります。

  • マネージド Amazon EC2 フリート: ゲームサーバービルドを にアップロードしAmazon GameLift Servers、フリートインスタンスへのデプロイ用に保存します。 Amazon GameLift Serversはフリートの AWS クラウド インフラストラクチャを提供します。フリートを設定し、各フリートインスタンスでゲームサーバーを実行する方法を指示します。

  • マネージドコンテナフリート: ゲームサーバーのビルドとランタイムの手順をコンテナイメージにパッケージ化し、デプロイのために Amazon ECR に保存します。 Amazon GameLift Serversはフリートの AWS クラウド インフラストラクチャを提供します。コンテナアーキテクチャを提供し、コンテナをホストするようにフリートを設定します。

  • Anywhere フリートでは、すべてのインフラストラクチャを自分でプロビジョニングし、サーバーソフトウェアのデプロイを管理します。Anywhere フリートを作成して、アクティブなゲームホスティングリソースをAmazon GameLift Servers に接続します。

ゲームセッション配置システム

ゲームセッション配置システムは、新しいゲームセッションをホストするために利用可能なゲームサーバーを特定します。システムは、ゲームサーバーの可用性に関するリアルタイム情報を使用して、最適な配置を判断します。

Amazon GameLift Servers では、ゲームセッション配置の主なメカニズムはキューです。ゲームセッションキューは、設定可能なアルゴリズムを使用して、可能な限り最良の結果となるようゲームセッションを配置します。ホスティングコストが最も低いことや、プレイヤーのレイテンシーが最も低いことなどの要因に基づいて配置に優先順位を付け、複数の地理的ロケーションをまたいで探索するようにキューを設定できます。キューの代わりに、ゲームセッションをホストする特定のフリートを指定することもできます。

ゲームホスティングの主な機能
  • バックエンドサービスから受信したゲームセッション配置リクエストを処理します。

  • ホスティングリソースの可用性に関するリアルタイム情報に基づいて配置を行います。

  • プレイヤーレイテンシーデータやその他のデータを使用して配置オプションに優先順位を付けます (キューのみ)。

  • ゲームサーバープロセスに新しいゲームセッションを開始するプロンプトを表示します。

  • ゲームセッションがプレイヤーを受け入れる準備ができたら、ゲームセッション接続情報を更新します。

  • 必要に応じて FlexMatch を構成し、プレイヤーマッチを作成して、マッチのゲームセッション配置をリクエストできます。

構築者

Amazon GameLift Servers はプレイスメントシステムを提供します。バックエンドサービスがプレイスメントリクエストを行う方法、およびオプションでゲームセッションキューと FlexMatch マッチメーカーを設定することで、プレイスメント動作を設定します。Amazon GameLift Servers コンソール、 AWS SDK、または AWS CLI を使用して、ゲームのキューとマッチメーカーを作成および設定します。

ゲームホスティング管理システム

ゲームホスティング管理システムは、ゲームホスティングソリューションのあらゆる側面を調整およびモニタリングする運用上のバックボーンです。このシステムは、Amazon GameLift Servers の配置とスケーリング機能を可能にするインテリジェンスと自動化を提供します。

ゲームホスティングの主な機能
  • ゲームセッションの配置と自動容量スケーリングをサポートするために、すべてのフリートでゲームサーバープロセス、ゲームセッション、プレイヤーセッションのリアルタイムのステータスと可用性を追跡します。

  • フリートのヘルスとパフォーマンスをモニタリングします。

  • ゲームホスティングアクティビティメトリクスを収集して分析します。

  • プレイヤーの需要とフリート使用率に基づく自動スケーリングなど、キャパシティスケーリングツールを提供します。

  • ゲームサーバーソフトウェアとランタイム手順の更新を管理します。

構築者
  • マネージドフリート: Amazon GameLift Servers は、可用性の追跡、ゲームホスティングアクティビティとハードウェアパフォーマンスに関するメトリクス、キャパシティスケーリングツールを提供します。利用可能な AWS ツールを使用して、ゲームサーバーソフトウェアの更新の管理、ランタイム手順の変更、メトリクスの使用のカスタマイズ (モニタリング用の CloudWatch の設定など) を行います。カスタムスケーリングポリシーを設定し、必要に応じて変更します。

  • Anywhere フリート: Amazon GameLift Servers は、可用性の追跡とゲームホスティングアクティビティメトリクスを提供します。ゲームサーバーソフトウェアの更新やランタイム手順など、フリート設定の変更を管理します。フリートのパフォーマンスをモニタリングし、フリート容量のスケーリングを管理するシステムを作成します。

コンポーネント間の連携の仕組み

ゲームホスティングコンピューティングがデプロイされたとき
  • ゲームサーバーソフトウェアのインストール: コンピューティングはランタイム環境とゲームサーバービルドでインストールされます。

  • ゲームサーバーの起動: ゲームサーバーの実行可能ファイルのインスタンスが少なくとも 1 つ起動され、オプションの起動パラメータがコンピューティングに表示されます。

  • ゲームサーバーを Amazon GameLift Servers に接続する: スタートアップアクションの一環として、ゲームサーバープロセスはサーバー SDK を呼び出してサービスへの接続を初期化します。

  • ゲームサーバーは、ゲームセッションをホストする準備ができたことを報告します。ゲームサーバープロセスはスタートアップアクションを完了すると、サーバー SDK を呼び出して準備状況を報告します。設定に基づいてヘルスステータスのレポートが開始されます。

  • Amazon GameLift Servers が可用性を追跡する: サービスは、ゲームセッション配置に対するゲームサーバープロセスの可用性を記録します。また、フリート、インスタンス、ゲームセッションのメトリクスを更新して、使用状況と容量を追跡します。

  • ゲームサーバーはゲームセッションの割り当てを待機: ゲームサーバープロセスは、プロンプトがゲームセッションを開始するのを待つ間、アイドル状態を維持します。

プレイヤーがゲームに参加したい場合
  • プレイヤーがゲームを開始する: プレイヤーはゲームクライアントを起動し、バックエンドサービスで認証して、ゲームへの参加をリクエストします。

  • バックエンドサービスはゲームセッションをリクエスト: バックエンドサービスは Amazon GameLift Servers を呼び出して、プレイヤーのグループ化戦略に基づいて適切なゲームセッションを検索または作成します。リクエストには、ゲームセッションで使用するプレイヤーまたはゲームデータが含まれる場合があります。

  • Amazon GameLift Servers がゲームセッションを配置: 新しいゲームセッションを開始すると、プレイスメントシステムはセッションをホストする最適な場所を特定し、利用可能なゲームサーバープロセスを選択します。サービスは、選択したプロセスに新しいゲームセッションを開始するように促し、プレイヤーまたはゲームデータを渡します。FlexMatch マッチメーキングが使用されている場合、マッチメーカーは最初にマッチを作成し、次にマッチの配置をリクエストします。

  • ゲームサーバーがゲームセッションを開始: ゲームサーバーはゲームセッションを開始するステップを開始します。完了すると、プレイヤー接続を受け入れる準備ができたことを Amazon GameLift Servers に報告します。

  • ゲームクライアントに配信される接続情報: ゲームサーバーがステータスを更新すると、Amazon GameLift Servers はゲームセッションの接続情報を提供します。バックエンドサービスはこの情報を受け取り、ゲームクライアントに配信します。

  • プレイヤーがゲームセッションに接続: ゲームクライアントは接続情報を使用してゲームサーバープロセスに直接接続し、ゲームセッションに参加します。

  • Amazon GameLift Servers は、ゲームセッションのステータスをモニタリング: ゲームサーバープロセスは、進行中のゲームセッションの可用性を追跡するために、ヘルスステータス、オプションのプレイヤー接続ステータス、ゲームセッションステータスを報告します。

  • ゲームサーバープロセスがシャットダウン: ゲームサーバープロセスはゲームセッションを終了し、ステータスを報告し、それ自体をシャットダウンします。