129 Views
November 25, 25
スライド概要
2025年3月28日(金)に行われた「AWS for Games Developers Conference 2025」にて発表させていただいたスライドです。
イベント詳細ページ
https://pages.awscloud.com/aws-for-games-dev-conference.html
講演者:
株式会社ヒストリア 佐々木 瞬(代表取締役 / プロデューサー / ディレクター)
株式会社ヒストリア 高柳 俊一(エンジニア)
講演内容:
クロスプラットフォーム対応のサバイバルアクションレースゲーム『Faaast Penguin』。全世界同時配信から2ヶ月で50万ダウンロードを達成した本作ですが、クライアント専業の弊社がクロスプラットフォームかつF2Pのタイトルを自社開発・自社パブリッシングするまでには、様々な苦労がありました。本セッションでは、協力会社3社とどのような体制を組み、UE5とAmazon GameLiftを組み合わせてネットワーク環境をどのように構築したか、そしてマッチングシステムの最適化とクロスプラットフォーム対応をどう行ったかをお伝えいたします。
株式会社ヒストリアは、Unreal Engine専門のソフトウェア開発会社です。ゲーム事業とエンタープライズ事業、2 つの軸でソフトウェアの企画、開発を行っています。また、Unreal Engine の学習を目的とした作品制作コンテスト『UE5ぷちコン』や、『出張ヒストリア! ゲーム開発勉強会』を主催、技術ブログを毎週更新など、Unreal Engine コミュニティを盛り上げる活動も行っております。
『Faaast Penguin』の挑戦 ~クロスプラットフォーム展開を支えるAmazon GameLift Servers~ 2025/03/28
自己紹介 株式会社ヒストリア 代表取締役 佐々木 瞬 プロデューサー / ディレクター / エンジニア ゲーム系の専門学校を企画職として卒業。その後、ゲーム のディレクターを経て、エンジニアへ転身。前職でUnreal Engine 3 を使用していた経験から、2013年 Unreal Engine 専門会社のヒストリアを設立。ゲームとエンター プライズコンテンツの両方の制作を行う。 専門学校の授業や学生制作の担当講師も務める。 Unreal Engine 歴 13年くらい。
自己紹介 株式会社ヒストリア エンジニア 高柳 俊一 ゲーム系の専門学校を卒業。学生時代にUE4を使 用した経験を活かしてヒストリアに新卒で入社。 ゲーム制作の他に内製ツールの作成やPC版移植 などを経て2022年にFaaast Penguinに合流。 本ゲームではインゲームのリードと並行して AWSの検証などを担当。 Unreal Engine 歴 6年くらい。
略称 本スライドでは以下の略称を用いています。 正式名称 Unreal Engine 5 Epic Online Services Amazon GameLift Servers 略称 UE5 EOS GameLift Servers
タイトルの特徴 ▶ 最大40人のアクションレースゲーム ▶ Switch / PS5 / Xbox S|X / Steam / Epic Games Store ▶ クロスプレイ ▶ 12言語対応 ▶ 初の自社大型パブリッシング
Unreal Engine 専門のゲームデベロッパー エンジニアは全員クライアントエンジニア
ホーム画面の画像
開発スケジュール 2021 4月 2022 1月 第一次プロト 3~5人 2023 7月 2024 2月 第二次 プロト 8~15人 6月 量産 20~25人 QA 9月
座組 クライアント リアルタイム通信 マッチングロジック サーバーサイド開発 GameLift Servers連携 クラウドサービス AWS環境構築 AWS
システム構成決定の背景 <要件> クロスプラットフォーム対応 アカウント管理システムが必要 マッチングロジックが必要
システム構成決定の背景 UE5 + EOS + AWS + GameLift Servers に決定! AWS FineさんがAWSが慣れていたのでAWSに決定。 環境は 開発、ステージング、QA、審査、本番 の5つで、 AWSアカウントは本番とそれ以外の2つで分けている
GameLift Servers 採用の背景 ▶ AWSの他に追加費用が掛からない ▶ Dedicated Serverのオートスケーリングが楽 ▶ マッチングルール設定が自分たちにも簡単にできそう
Fineさんとどちらがやるか という話があったが、 これならヒストリアで出来 そうだった! ←過去に使ったルールセットの一例
システム構成決定の背景 Unreal Engine 5 リアルタイムサーバー(Dedicated Server) Epic Online Services プラットフォーム間アカウント共有 フレンドリスト・招待 ロビー機能(パーティー・プライベートルーム) AWS AWS + GameLift Servers APIサーバー、各種DB、CDN(チャンクのDL元)等 マッチメイキング(FlexMatch) Dedicated Serverのオートスケーリング マルチロケーションフリート
作業内容と時期 ▶ 2023年7月:サンプル検証&用語整理 ▶ 2023年8月:SDK導入(Dedicated Server) ▶ 2023年8月:SDK導入(ゲームクライアント) ▶ 2023年10月:LinuxOS対応( Dedicated Server ) ▶ 2024年1月:GameLift Servers FlexMatch対応 ▶ 2024年8月:マルチロケーションフリート対応
Faaast Penguinアプリの流れ LinuxServer パッケージ PF別Client パッケージ Upload S3 Dedicated Server パッケージ Clientパッケージ 各ストア経由で配布 Client PC / Console
マッチングの流れ 指定 指定 参照 S3 参照 ビルド フリート キュー FlexMatch
マッチングの流れ ▶ ビルド ビルド ⚫ GameLift Serversに実行ファイルを登録 したもの ⚫ OSやサーバー用SDKのバージョン を指定する ⚫ S3のアクセス権利を持つ IAMロールを設定する必要がある
マッチングの流れ ▶ フリート フリート EC2インスタンス 待機状態で起動 ゲームサーバー (Dedicated Server) ⚫ ゲームサーバーの起動管理をするもの ⚫ 1インスタンスで複数のゲームサーバーを 起動できる ⚫ EC2の操作など様々な権限を持った IAMロールを設定する必要がある
マッチングの流れ キュー ▶ キュー ⚫ ゲームセッションの配置先を決めるもの ⚫ 対象となる「フリート」と「ロケーショ ン」を設定できる ⚫ 複数のフリートを指定できるので、 「スポット」と「オンデマンド」の両立 が可能
マッチングの流れ FlexMatch ▶ FlexMatch ⚫ プレイヤー間のマッチングをしてくれるもの ⚫ マッチングすると「キュー」に ゲームセッションの作成を自動でリクエスト ⚫ Json形式でルールを記述できる。 ⚫ 任意のパラメーターを渡せるので ゲーム固有の条件を設定可能
マッチングの流れ ゲームセッション作成 リクエスト FlexMatch キュー S3 ビルド API Server フリート EC2インスタンス 待機状態で起動 ゲームサーバー (Dedicated Server) ゲームセッション作成 & アクティブ化 遊べる Client PC / Console
用語整理&サンプル確認 ▶ GameLift Serversの 「サンプルゲームを試す」を検証
Dedicated Server用SDK導入 ▶ “Amazon GameLift Servers C++ server SDK for Unreal Engine”を 導入 ▶ SDKを導入すると、GameLift Serversのゲームサーバーとして使えるよ うになる ▶ 導入方法が丁寧に書かれてるので簡単
LinuxOS対応 ▶ Dedicated Serverのランニングコストを下げたい ▶ UE5のクロスコンパイルツールチェーンを使えば、 Linuxマシンが手元になくてもビルドできる ▶ SDKのバイナリを、実行環境(AmazonLinux2023)で ビルドする必要がある
ゲームクライアント用SDK導入 ▶ “AWS SDK for C++“を導入 ▶ クライアントにSDKを導入すると、クライアントからマッチのリ クエストやセッションの一覧の取得ができるようになる ▶ UE5用に用意されたものがない ▶ メモリ管理がUE5と競合を起こすので対策が必須 ▶ 最終的にAPIサーバーがわで行ったため不要になった
FlexMatchに対応 ▶ Fineさんが構築したAPIサーバーを経由してFlexMatchに マッチングリクエストを行うように変更 ▶ 結果、ゲームクライアントにAWS SDKは入っていない
マルチロケーション対応 ▶ 金額や地域などを考えて、対象ロケーションを策定 ▶ GameLift Serversの設定はお手軽 ▶ ゲームクライアントから各ロケーションにPingを飛ばす必要 があった
導入における作業時期 2024 2023 7月 8月 10月 用語整理 サンプル確認 1月 サーバー用 SDK導入 Amazon GameLift Servers C++ server SDK for Unreal Engine 8月 クライアント用 SDKの導入
導入における作業時期 2024 2023 7月 8月 10月 LinuxOS対応 1月 FlexMatch 対応 8月 マルチロケーション フリート対応
便利だったマルチロケーションフリート 各サーバーへのPing値をマッチングのパラメーターとして扱い 全世界共通でマッチングを行うシステム 全体プール マッチ 部屋に合った場所に配置 本タイトルは「アジア」「西アメリカ」「東アメリカ」「ヨーロッパ」の4サーバー
その他FlexMatchで良かった点 ▶ バックフィル ⚫ 一度島へ移動してから 60秒遊びながら待てる ▶ マッチングルールがJSONで 書くだけ
判断が難しかったところ ▶ コスト面の見通し ⚫ GameLift Serversの試算ツールはとても役に立った ⚫ 想定CCUをSteamDB等を元に他タイトル事例から試算 ▶ APIサーバーのスペック選定(何人来るかわからない) ▶ スポットインスタンスの使用 ▶ マッチングの調整
クロスプレイの苦労点 ▶ GameLift Servers関連 ⚫ マルチロケーションフリート用に各サーバーへのPing値を取得する部 分が、プラットフォームによって簡単ではなかった ⚫ それ以外はあまり苦労していない ▶ APIサーバー ⚫ ログインや課金認証などを一つ一つ対応 ▶ 技術面以外がとにかく大変だった
実際やってみて ▶ 苦労点 ⚫ CMakeでのビルドやLinuxでの作業など未経験の対応が多く苦労した ⚫ 初めてAWSに触れる身としては、GameLift Serversだけでなく、 S3やIAMなど多岐にわたる知識が必要だった。 ▶ よかった点 ⚫ Dedicated ServerへのSDK導入は想像より何倍も簡単だった。 ⚫ 「SDKの関数」≒「公開されてるAPI」で、引数がシンプルなため、 アプリ側での煩雑な情報の取り回しが必要なかった。
開発・運営体制 ▶ クライアント専業がどう挑んだか、の良いリファレンス ▶ 「ヒストリア&Fine 定例」と「4社定例」、2つの定例がある AWS