Amazon Web Services ブログ

Category: Game Development

AWS Global Acceleratorのカスタムルーティングアクセラレータのご紹介

AWS Global Accelerator ではカスタムルーティングアクセラレータがサポートされるようになりました。新しく追加されたこの機能を利用することにより、Global Accelerator の利点を活用しつつ、独自のアプリケーションロジックを使用して複数のユーザーの宛先を特定の Amazon EC2 にルーティングできるようにします。 Global Accelerator は、 AWS グローバルネットワークインフラストラクチャを使用して、インターネットユーザーのパフォーマンスと可用性を向上させるネットワーキングサービスです。Global Accelerator の自動ルーティング最適化により、パケット損失、ジッタ、レイテンシーを一貫して低く抑えることができます。現在提供されているアクセラレータ機能は、ユーザーに最も近い正常なエンドポイントにトラフィックを自動的にルーティングします。これは、A/B テスト、ブルーグリーンのデプロイ、API アクセラレーション、ライブビデオのインジェストなど、さまざまなユースケースに使用できます。

Read More

AWS Global Accelerator と Amazon GameLift FleetIQ を活用してプレーヤーエクスペリエンスを向上させる

インターネット経由で世界中のユーザーにサービスを提供するゲームを構築することは困難です。この2つのパートからなるシリーズでは、ゲーム開発者が世界中のプレイヤーエクスペリエンスを向上させ、より効率的に展開し、レイテンシーを短縮し、インゲームのパフォーマンスを向上させ、ゲームコンテンツをより速く配信する方法について説明します。 この最初の投稿では、AWS Global Accelerator を使用して、ゲームプレイやオンラインストアのトラフィックなどの動的コンテンツのパフォーマンスを向上させる方法について説明します。また、AWS Global Accelerator と Amazon GameLift FleetIQ を統合するためのリファレンスアーキテクチャも提示し、マルチプレイヤーゲーム用のクラウドサーバーを簡単にデプロイ、運用、スケーリングします。2番目のブログ記事である、Amazon CloudFront を使用してゲームバイナリやメディアアセットなどの静的コンテンツを配信することについては、近日公開予定です。

Read More

Amazon GameLift採用検討FAQ

最近マルチプレイヤーゲームが多く見られ、Amazon GameLift関連の問い合わせも増えています。 この記事はGameLift採用検討のフェーズでよくある質問を紹介致します。 Amazon GameLift とは? Amazon GameLift は、マルチプレイヤーゲーム用のクラウドサーバーをデプロイ、運用、スケーリングする、専用のゲームサーバーホスティングソリューションです。

Read More

Amazon GameLift FleetIQ adapter for Agones のご紹介

本投稿は、Principal Specialist SA, Containers の Jeremy Cowan と Senior Solutions Architect の Trevor Roberts による記事を翻訳したものです。 新しいゲームタイトルのローンチにはある程度のリスクが伴い、かなりの投資が必要になり、大量のコンピューティングパワーが必要になる場合があります。それらはワクワクすることかもしれませんが、ゲームが大ヒットするかどうかを常に知ることはできません。クラウドは、かつて設備投資となっていたものを運用コストに変換できるため、そのリスクの一部を軽減できます。ゲームスタジオとしては可能な限り支出を削減したい、つまり可能な限り低いコストで優れたプレイヤー体験を提供したいと考えています。そのためには、最高の信頼性を提供するゲームサーバーが必要です。Amazon EC2 スポットインスタンスを使用すると、AWS クラウド内の使用されていない EC2 キャパシティーを大規模かつ簡単に活用できます。また、既存のオンプレミスでのデプロイと比較して、EC2 の支出を70%も削減できます。ゲームセッションが途中で終了する可能性を最小限に抑え、ゲームホスティングにおいて低コストのスポットインスタンスを利用できるとしたらいかがでしょうか?

Read More

サーバーレスでスケールするマルチプレイヤーゲームを構築する

本投稿は、Sr.Solutions Architect, Developer Acceleration の Tim Bruce による記事を翻訳したものです。 ゲーム開発は、要件が急速に変化するため非常に繰り返しの多いプロセスです。ゲーム開発者の多くは、可能な限り多くの時間を機能の構築のために費やしたいと思っており、サーバー設定、インフラストラクチャ管理、スケーリング技術の習得に時間を費やしたくないと考えています。 AWS のサーバーレスサービス を利用することで、4つの大きなメリットが得られます。1つ目は、運用オーバーヘッドを削減することで、企画からリリースまでのプロセスを短くします。2つ目は、運用に必要なハードウェアとソフトウェアを過剰にプロビジョニングしないため、コスト削減を実現できる可能性があります。3つ目は、サーバーレスはユーザーのアクティビティに応じてスケールします。最後は、サーバーレスサービスには組み込みの統合機能があるため、サービス統合に労力をかけることなくゲーム開発に集中できます。 AWSを利用するゲーム開発者は、これらのメリットを活用することで、チームがサーバーやソフトウェアのセットアップや保守といった差別化につながらないタスクに時間を費やすのではなく、ゲーム体験の向上やコンテンツ開発により多くの時間を費やすことができます。これにより、ゲーム体験とコンテンツがより良いものとなり、リリースまでの時間も短縮されます。 本ブログ記事では、「サーバーレスファースト」アーキテクチャを持つゲームについて紹介します。 Simple Trivia Service はウェブベースのゲームであり、貴社のゲームにも適用可能な複数のアーキテクチャパターンを持っています。

Read More
Amazon Game Tech

AWS Game Tech: 2020年の振り返り

2020年はこれまでの仕事のスタイルが変化し、これまで当たり前だったことが当たり前ではなくなったことで、ゲーム開発や運用の現場も大きな影響を受けました。そんな激動の日々の中、継続してプレイヤーに質の高いエンターテイメントを提供し続けているゲーム業界関係者の方々に敬意を表します。私たちAWS Game Techもゲーム業界の課題解決に貢献できるよう、これからもより一層努力努力してまいります。 さて、本記事ではAWS Game Techの2020年の活動を通した振り返りと、2020年にリリースされたサービスや機能の中からゲーム業界のお客様におすすめしたいものをいくつかご紹介します。   2020年を振り返る 2020年のソリューションアーキテクトの活動を振り返り、昨年に比べて印象に残った変化を挙げてみました。 マルチプレイゲームの増加 日本でも既存・新規IPによるマルチプレイゲームの開発が進み、これまでの3-Tierアプリケーションアーキテクチャに加え、マルチプレイをホストする専用ゲームサーバーをグローバルで展開するようなアーキテクチャをレビューさせていただく機会が多くなりました。Amazon GameLiftによってUnreal Engine 4のDecicated ServerやUnityのHeadless Dedicated Serverのビルドを複数リージョンでどのようにオーケストレーションするか、またゲームのマッチメイキング要件に応じてFlexMatchのマッチメイクルールをどのように記述するかなど、これまでよりさらにゲーム開発の中身に踏み込んだご支援が多くなっています。   コンテナ利用が増加 新規ゲームタイトルのバックエンドを中心にコンテナで実装するケースが増加しました。これまでEC2インスタンス上でそのまま稼働することが多かったPHPやGoなどのアプリケーションをコンテナ化し、Amazon ECSまたはAmazon EKSによってオーケストレーションを行い、データプレーン(コンテナが実際に稼働する部分)についてはインスタンス管理が不要なFargateを利用いただくケースも多くなってきています。現状はAPIまわりでの利用が多いですが、ステートフルな専用ゲームサーバーでも採用を検討するケースも除々に増えてきております。   ゲーム開発でのクラウド検討が進む 昨年から働き方改革やグローバルでの人材獲得を目的としてゲーム開発のクラウド化を検討する機会はありましたが、今年は各社のリモートワーク採用によってその検討が加速しました。オフィスのワークステーションを自宅からAWS Client VPNによってネットワーク接続したり、AWS上のGPUインスタンス上でワークステーションを実行し、リモート接続することで開発者の作業環境を整え、またPerforceなどのバージョンコントロール、EC2インスタンスによるビルドマシンをAWS上に構築し完全リモートに備えるケースも多くなりました。また、すでにビルドマシンがオフィスで稼働している場合、専用線やVPN接続によってAWSとネットワーク接続し、繁忙期のビルドマシン確保をオンデマンドで行うお客様も増えております。分散ビルドで代表的なIncrediBuildもライセンス面、機能面からAWSとの相性が非常に良い点が評価されています。(IncrediBuildのAWS利用についてはUsing IncrediBuild in AWS、ゲームの分散ビルド on AWSをご参照ください)   ゲームのワークロードで役立つサービス・新機能まとめ AWSは今年も数多くのサービス、機能追加を行いました。その中でもゲームのワークロードで有効だと思われるものをピックアップしてみました。   Amazon RDS Proxyがリリース ゲームではMySQLデータベースに対してコネクションプーリングを利用することも多いと思いますが、そのコネクションプーリングを行ってくれるサービス”RDS Proxy”がGAとなりました。EC2やコンテナなどのアプリケーションはもちろん、Lambdaなどイベント毎に都度コネクションを発生されるような場合にRDS側のリソース量をセーブすることが可能です。また、RDSインスタンスの障害時にもアプリケーションとのコネクションを維持しながらフェールオーバー完了を待つことが可能です。昨年末にLambdaのVPC上での実行においてコールドスタートの解消などが行われましたが、RDS ProxyによるRDS/Auroraへのコネクションプーリングが利用できるようになってさらにゲームのような大規模なワークロードでサーバレスを展開しやすくなりました。 詳細はこちらをご覧ください。   Application Load Balancer (ALB) がエンドツーエンド HTTP/2をサポートし、gRPCの負荷分散が可能に ロードバランサの1つであるALBはこれまでクライアントとの通信でHTTP/2をサポートしていましたが、その先のALBのターゲットとなるEC2インスタンスについてもHTTP/2をサポートしました。これによってゲームでも利用が多いgRPCプロトコルの負荷分散もサポートされることになりました。 詳しくはこちらをご覧ください。   AWS Global […]

Read More

Amazon DynamoDB の使用を開始するためのゲーム開発者ガイド

多くのゲームでデータベースが不可欠の部分であることは周知の事実です。けれども、ゲーム開発者としては、データベースのエンジニアリングではなく、優れたゲームの構築にすべての時間と専門知識を捧げたいでしょう。 わかります。私も、データストレージについて考えるのではなく、コリジョンボリュームの修正、フレームレートの引き上げ、あるいは完璧な制御システムの作成に気をかけたいです。では、それを簡単に行いましょう。この記事では、AWS の高速で柔軟な NoSQL サービスである Amazon DynamoDB を使用して、ゲームにデータベースを追加するのがいかに簡単であるかを示します。 DynamoDB は、キーをデータに関連付ける非リレーショナルデータベースです。データベース、特にゲームでの使用に詳しくない場合は、ゲームでのデータベースの基本的な使用法と、リレーショナルデータベースと非リレーショナルデータベース (ときに SQL と NoSQL と呼ばれる) の違いについて説明したこの記事「素晴らしいゲームのためのマネージドデータベース」をご覧ください。 Dynamo DB テーブルの作成 DynamoDB は、NoSQL データベースですが、SQL データベースから借用した用語テーブルを使用します。この場合のテーブルは、実際にはデータベースに格納されるアイテムの主要な機能を定義したものにすぎません。 DynamoDB には、テーブルを識別するためのテーブルのプライマリキーが常にあり、このキーはデータベースに保存されているすべてのアイテムに対して一意である必要があります。 便利なヒントは、プライマリキーが複数の値のハッシュになる可能性があることです。したがって、単一の一意の属性がない場合は、異なる属性を組み合わせて一意の値を作成できます。たとえば、名前とバージョン番号を持つアイテムです。「broadsword」という名前のアイテムは 10 個あり、「version 1」のアイテムは 100 個ありますが、「broadsword version 1」は 1 個しかありません。 DynamoDB には、オプションで、アイテムをすばやく並べ替えることができるソートキーもあります。たとえば、プレイヤーのソートキーはプレイヤークラスであるかもしれません。これにより、ゲーム内のすべてのファイタークラスのリストを取得するクエリが高速化されることでしょう。データベース内のアイテムを一意に識別するための代替方法でするセカンダリキーを持つこともできます。 このデモでは、プレイヤーキャラクターの属性を表す非常にシンプルなオブジェクトを作成します。オブジェクトには一意のプレイヤー ID、プレイヤーレベル、強さと知力の 2 つの統計が含まれます。プレイヤー ID がプライマリキーになり、このデモ用のソートキーやセカンダリキーはありません。 注意: 自分で練習したい場合は、ソートキーとして機能するプレイヤークラスを追加できます。 DynamoDB テーブルを作成する手順は次のとおりです。 AWS コンソールを開きます。 DynamoDB を検索して選択します。 DyanamoDB コンソールのホームページから [テーブルの作成] を選択します。 […]

Read More

Mistplay: Amazon S3 と Amazon Athena を使ったビジネス分析の改善

本記事は Mistplay のAI エンジニアであるSteven Wang氏によるゲスト投稿です。 Mistplay はモバイルゲーマー向けの世界トップクラスのロイヤルティプログラムです。数百万人のプレイヤーが Mistplay を使用して新しいゲームを発見し、ロイヤルティ報酬を獲得し、他のプレイヤーとつながっています。このプラットフォームにより、Playtika、Scopely、Peak などのモバイルゲームスタジオは、世界中のユーザーを獲得し、それらのユーザーと深く関わることができています。   Mistplay が AWS に移行した理由 Mistplay では十分な情報に基づいた意思決定を行い、計算されたリスクを取るにあたり、データに大きく依存しています。  Mistplay の Android アプリケーションは、ユーザーのインタラクションをキャプチャする大量のイベント情報を生成するため、チームにとって不可欠なデータソースとなっています。このデータは不可欠であり、ビジネス上の主要な疑問に答え、当社が可能な限り最高のユーザーエクスペリエンスを作る上で重要な役割を果たしています。 従来、Android アプリケーションは Firebase にイベントデータを送信するように設計されていました。そこから、デフォルトで利用可能な統合機能を使ってFirebase と BigQuery を統合し、 BigQuery でイベントデータを公開し、詳細に分析していました。 しかし当社のビジネスが成長するにつれ、既存のソリューションでは対処できないいくつかの課題に直面しました。たとえば、品質上・精度上の問題が増加し、処理データに影響を与えていることに気付きました。さらに、インフラストラクチャに対するコストが当社のビジネスと同じくらい急速に増加していました。料金モデルは理解しにくく、当社の使用パターンだと予想外に高額な請求が発生することがよくありました。 当社のデータが新しいホームを必要としていることは明らかでした。当社のイベント分析を AWS に移行することは自然な選択でした。当社では既に Amazon S3 と Amazon Athena を主要なデータレイクとして使用していたためです。  さらに、ツール類を1つのサービスセットで統合し、分析タスクを合理化し、AWS の下で既に実施されている既存のセキュリティ対策を活用したいと考えていました。最後に、AWS の明瞭な料金モデルのおかげで、予算作成が簡単に行えました。 本投稿では、Firebase と BigQuery から Amazon S3 および Amazon Athena に移行した方法と、分析機能、コスト構造、およびオペレーションがどのように改善されたかを説明します。   移行戦略 […]

Read More

AWSを使った Apocalypse Studio のクラウド移行

本ゲスト投稿では、Apocalypse Studio の創設者である Denis Dyack 氏にお話を伺います。Dyack 氏は、ゲーム開発に長く携わっており、「ケイン・ザ・バンパイア」、「エターナルダークネス 招かれた13人」、「メタルギアソリッド ザ・ツインスネークス」、「トゥー・ヒューマン」などのタイトルの開発に携わった経験があります。Dyack 氏はまた、コンピュータサイエンスの経歴を持ち、人工知能、ニューラルネットワーク、ユーザーインターフェイスの修士号を取得しています。 オンタリオ州ナイアガラに拠点を置く Apocalypse は、ゲームスタジオのスタートアップ企業です。クラウドファーストのアプローチを採用することで、ゲームのプレイ方法を変革することを目指しています。オンラインマルチプレイヤーエクスペリエンスを創造し、世界中のプレイヤーを繋げ、楽しませることを目指しています。 私はゲーム業界で 30 年以上にわたり、エターナルダークネス、メタルギアソリッド ザ・ツインスネークス、トゥー・ヒューマン など、従来のゲーム機向けタイトルに取り組んできました。その間、ゲーム業界と、ゲーム開発のために私たちが使用するテクノロジーは、劇的に変化しました。2018 年に Apocalypse Studio を創業したとき、当社は全く新しい、クラウドを見据えた視点が必要であることが分かっていました。 当社のスタジオと最初のタイトルである Deadhaus Sonata は、まさにクラウド上で構築されています。COVID-19 が広まりだした頃、当社は社内カスタムビルドサーバーを備えた従来のオフィススペースから、AWS で構築したクラウド上のスタジオに移行しました。それが非常にうまく行ったため、2020年7月中旬にオフィスを永久的に閉鎖しました。今では、従業員がリモートで無期限に快適に働けるようにサポートできるようになりました。   クラウドを理解する クラウドはゲームに多大な経済的影響を与えました。10年以上前に私は、クラウドの社会的・経済的価値はコモディティ化により従来のプレミアムビジネスモデルよりも高くなると提言してきました。 現在、free-to-play (F2P) オンラインゲームは、世界全体のゲーム収益の 86% を占めています。 クラウドファーストの企業になるために、当社は一から取り組む必要があり、自社のエンジンから始めました。当社はソーシャルメディアと深く統合された最高品質のゲームを作るため、クラウド向けのゲームを制作したいと考えていました。当社は、サポート、コスト、機能、長期的見通しについて、あらゆるエンジンを比較しました。当社の場合これらのカテゴリを組み合わせると、Amazon Lumberyard が、その他のすべてのエンジンを上回っていました。Amazon Lumberyard を選択したことで、当社のクラウド移行を推進し成功させるのに役立ったいくつかのメリットがありました。 Amazon Lumberyard を使うことが決定した後、当社はすぐに AWS Game Tech 内の複数のグループと関係を構築しました。これらのチームと、構築プロセス、手続き型生成、ビデオゲームの未来などについて熱心に議論しました。また、当時は現実離れしていると思われた、本番プロセス全体をクラウドに移行する可能性についても議論しました。   当社のクラウドへのジャーニーの推進 話を2020年3月まで進めます。当社はサンフランシスコで開催される Game Developers Conference (GDC) に向けて準備をしていました。当社は、丁度  Deadhaus Sonata のMemento […]

Read More

Perforce Helix Core を AWS 上に構築する (Part3)

イントロダクション 3回にわたるAWSでのPerforce構築シリーズもこれで最後になりました。 Part1ではAWS 上で Perforce Helix Core を構築することの利点と技術的ポイントを俯瞰しました。 前回のPart2では AWS CloudFormation を用いてPerforceサーバーを構築する方法を解説しました。 今回のPart3では、Part2の手順7、CloudFormationの設定において「Enable Replica」をYesにしてReplica Serverの構築を有効にした場合のReplica ServerのSetup手順を紹介します。 Part2の手順で、Master Serverのみの構築を希望した場合は、こちらの手順は必要ありません。 もちろん、もう一度前回の記事の手順を最初からやり直して、Replica構築を有効にして、本記事の手順を実行していただくこともできます。 さて、実際の Replica server の構築手順ですが、これはAWS特有というわけではなく、Perforceの通常の構築手順に従って手動でコマンドを実行して行くというものになります。 それでは実際に手順を見ていきましょう! 事前準備 こちらのPart2の手順を実行していることが前提になります。実行されていない方はまずは前回の記事の手順を実行し、その際に必ず「手順7」の「Enable Replica」をYesにして有効にします。 こちらを参考にして東京リージョンで任意の名前のS3バケットを用意しておいてください。S3バケットの名前は全世界で一意の名前にする必要があります。 例えば次のようなS3バケットの名称にすると他のバケット名との衝突を避けることができます。 (例) perforce-test-[自分の名前]-[日付] など Replica Serverをセットアップする Replicaの動作を定義するには、Perforceのコマンドである“p4 configure set”コマンドを使用して、Master serverのdb.configファイルに構成情報を入力する必要があります。Replicaを作るにはまず最初にMaster serverを設定します。Master serverの設定が、後でReplica serverに複製されます。 Mater Server側で設定を行う まずは、Master Serverにsshログインします。下記では適宜、自分のssh keyとEIPアドレスに置き換えてください。 $ ssh -i ~/.ssh/general-key.pem p4admin@18.180.250.162 前回Part2でp4adminユーザーをサーバー側に作成していない場合は作成します。作成済みの場合はスキップして次に進みます。下記のコマンドを実行するとviが起動しますので内容を確認して、「:wq」をタイプして保存します。 [p4admin@master ~]$ p4 […]

Read More