[リポート]Riot Games at the edge: Launching VALORANT with AWS Outposts #reinvent #GAM302

「AWS re:Invent 2021」で行われたRiotGames社がValorantという人気FPSゲームのサーバー配置経験セッションのリポートです

概要

DESCRIPTION

Riot Games develops, publishes, and supports some of the most player-focused games in the world, including League of Legends, one of the world’s most played PC games and a key driver for the explosive growth of esports. In this session, learn how Riot Games orchestrated the successful global deployment of its latest 5v5 character-based tactical shooter, VALORANT. Using AWS services, including AWS Outposts and AWS Global Accelerator, Riot rapidly deployed and scaled game servers to millions of players around the world and reduced latency by up to 20 milliseconds to provide players with a seamless real-time gaming experience.

SPEAKERS

  • Ashwin Raghuraman (Sr. Solutions Architect @AWS)
  • David Press (Sr. Principal Software Engineer @Riot Games)

SESSION LEVEL

300 - Advanced

Valorantはどういうゲームですか

  • キャラクターを要素とした戦略的なFPSゲーム
  • アクティブユーザーは1400万がいる
  • 合計16のエージェントといくつゲームモードを選べる

 


ゲーム設計に達成したい目標:

  • チーターがない公平なゲーム
  • PCスペックが広い範囲を支援し、PCスペックをプレーヤーの強さに影響させないようにする
  • スムーズなゲーム内挙動と速やかな反応
  • 銃操作に楽しめる
  • 拠点を防衛しているプレーヤーに有利にさせる

遅延に伴った公平性の問題

遅延に伴って、「覗い込む側(Peaker)有利」というゲーム内バランスの問題がありました。
FPS用語として、Peaker は「壁や遮蔽物から顔や体を出して覗き込む側」、Holderは「エイムしながらで敵を待ち構える側」。
Holderは基本動かず、位置情報が変わらないですが、Peakerだと一瞬覗いてすぐ隠すことで、遅延の影響サーバー側処理してからHolderに送るPeakerの位置はもう少し前の情報なので、少し前(例えば100ms)の情報は敵が目の前にいるということを受けたが、現時点は敵がその位置にいないというタイミングで射撃しようとするHolderに対する非常に不公平です。

解決案は二つあります:

  1. 低遅延の場合、元々Peaker側が有利ですが、Peakerは移動する方なので、移動しながら射撃精度を減らす
  2. 遅延を解消する

移動中プレーヤーの射撃精度を減らすのは対応しやすいですが、遅延を解消することは難点となります。

遅延を抑える方法

Riot GamesがValorantゲームネットワークの目標は、90%のユーザーの遅延を35ms以下にすることです。

 

概ね二つ方法があります:

  • ゲームサーバーをユーザーの近い都市に配置する
  • ネット通信経路を最適化する

 


サーバーについては三つ選択肢があります:

  • 各地に配置された既存のAWSサーバー(一番理想的)
  • AWS Outpostをレンラルする
  • Riot Games自社のデータセンターを配置する

 

AWS Outposts は、ほぼすべてのデータセンター、コロケーションスペース、オンプレミスの施設に同じAWS のインフラストラクチャおよびサービス、API、ツールを提供し、真に一貫性のあるハイブリッドエクスペリエンスを実現するフルマネージドサービスです。AWS Outposts は、ローカルシステムで相互依存性のあるアプリケーションの移行、データレジデンシー、ローカルのデータ処理、またはオンプレミスのシステムに低レイテンシーでアクセスする必要があるワークロードに最適です。

 



正式リリースする前に約3ヶ月のベータテストを行いました(AWSサーバーとRiot自社データセンター)。それで沢山のデータを収集し、分析した結果、「90%のユーザーの遅延を35ms以下にする」という目標は達成できませんでした。

物理的な制限があったので、アメリカのDallasとAtlantaにAWS Outpostを追加配置することが行われて、アメリカ中南地区のユーザーの遅延を50msぐらいから20msぐらいにしました。そして、ヨーロッパにもMadridとWarsawにも同じくAWS Outpostを配置し、PolandとSpainのユーザーの遅延は40msぐらいから20msになりました。

 


普通のある都市に配置されるサーバーに通信するには、遠い地区の場合、公共ネットワークを経由しなければならないので、非常に遅いです。AWS Global Acceleratorは公共ネットワーク経由せず、ネット通信経路を最適化し、裏側近い地区のプレーヤー同士を繋がるので、固定IPであっても全世界複数リジョンが接続可能です。自社のデータセンターが AWS Global Acceleratorに提供されるIPをシールドとし、DDoS攻撃も遮断してくれます。

 


Riot Games社は「AWS Global Accelerator」と自社の「Riot Direct」を同時運用し、プレーヤーを最適な経路にさせ、両方とも同じサーバープールに接続することにしました。それを行った結果は、アジアに22%のユーザーが35ms遅延クラブに追加され、そしてヨーロッパの低遅延ユーザーが9%が増え、全体85%の方の遅延が35ms以下となりました。

現時点まだ最適化作業を進行しています。

最後


ネットワーク最適化作業に学んだこと:

  • 有意義なベータテストスケジュールを作ること
  • 正式リリースに参考できる相当なユーザー数でネットワークテストすること
  • 各地の状況が違うかもしれませんので、円滑な対応を行うこと

以上です。