『Faaast Penguin』の挑戦 ~クロスプラットフォーム展開を支えるAmazon GameLift Servers~

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を組み合わせてネットワーク環境をどのように構築したか、そしてマッチングシステムの最適化とクロスプラットフォーム対応をどう行ったかをお伝えいたします。

profile-image

株式会社ヒストリアは、Unreal Engine専門のソフトウェア開発会社です。ゲーム事業とエンタープライズ事業、2 つの軸でソフトウェアの企画、開発を行っています。また、Unreal Engine の学習を目的とした作品制作コンテスト『UE5ぷちコン』や、『出張ヒストリア! ゲーム開発勉強会』を主催、技術ブログを毎週更新など、Unreal Engine コミュニティを盛り上げる活動も行っております。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

『Faaast Penguin』の挑戦 ~クロスプラットフォーム展開を支えるAmazon GameLift Servers~ 2025/03/28

2.

自己紹介 株式会社ヒストリア 代表取締役 佐々木 瞬 プロデューサー / ディレクター / エンジニア ゲーム系の専門学校を企画職として卒業。その後、ゲーム のディレクターを経て、エンジニアへ転身。前職でUnreal Engine 3 を使用していた経験から、2013年 Unreal Engine 専門会社のヒストリアを設立。ゲームとエンター プライズコンテンツの両方の制作を行う。 専門学校の授業や学生制作の担当講師も務める。 Unreal Engine 歴 13年くらい。

3.

自己紹介 株式会社ヒストリア エンジニア 高柳 俊一 ゲーム系の専門学校を卒業。学生時代にUE4を使 用した経験を活かしてヒストリアに新卒で入社。 ゲーム制作の他に内製ツールの作成やPC版移植 などを経て2022年にFaaast Penguinに合流。 本ゲームではインゲームのリードと並行して AWSの検証などを担当。 Unreal Engine 歴 6年くらい。

4.

略称 本スライドでは以下の略称を用いています。 正式名称 Unreal Engine 5 Epic Online Services Amazon GameLift Servers 略称 UE5 EOS GameLift Servers

6.

タイトルの特徴 ▶ 最大40人のアクションレースゲーム ▶ Switch / PS5 / Xbox S|X / Steam / Epic Games Store ▶ クロスプレイ ▶ 12言語対応 ▶ 初の自社大型パブリッシング

7.

Unreal Engine 専門のゲームデベロッパー エンジニアは全員クライアントエンジニア

8.

ホーム画面の画像

9.

開発スケジュール 2021 4月 2022 1月 第一次プロト 3~5人 2023 7月 2024 2月 第二次 プロト 8~15人 6月 量産 20~25人 QA 9月

10.

座組 クライアント リアルタイム通信 マッチングロジック サーバーサイド開発 GameLift Servers連携 クラウドサービス AWS環境構築 AWS

11.

システム構成決定の背景 <要件> クロスプラットフォーム対応 アカウント管理システムが必要 マッチングロジックが必要

12.

システム構成決定の背景 UE5 + EOS + AWS + GameLift Servers に決定! AWS FineさんがAWSが慣れていたのでAWSに決定。 環境は 開発、ステージング、QA、審査、本番 の5つで、 AWSアカウントは本番とそれ以外の2つで分けている

13.

GameLift Servers 採用の背景 ▶ AWSの他に追加費用が掛からない ▶ Dedicated Serverのオートスケーリングが楽 ▶ マッチングルール設定が自分たちにも簡単にできそう

14.

Fineさんとどちらがやるか という話があったが、 これならヒストリアで出来 そうだった! ←過去に使ったルールセットの一例

15.

システム構成決定の背景 Unreal Engine 5 リアルタイムサーバー(Dedicated Server) Epic Online Services プラットフォーム間アカウント共有 フレンドリスト・招待 ロビー機能(パーティー・プライベートルーム) AWS AWS + GameLift Servers APIサーバー、各種DB、CDN(チャンクのDL元)等 マッチメイキング(FlexMatch) Dedicated Serverのオートスケーリング マルチロケーションフリート

16.

作業内容と時期 ▶ 2023年7月:サンプル検証&用語整理 ▶ 2023年8月:SDK導入(Dedicated Server) ▶ 2023年8月:SDK導入(ゲームクライアント) ▶ 2023年10月:LinuxOS対応( Dedicated Server ) ▶ 2024年1月:GameLift Servers FlexMatch対応 ▶ 2024年8月:マルチロケーションフリート対応

17.

Faaast Penguinアプリの流れ LinuxServer パッケージ PF別Client パッケージ Upload S3 Dedicated Server パッケージ Clientパッケージ 各ストア経由で配布 Client PC / Console

18.

マッチングの流れ 指定 指定 参照 S3 参照 ビルド フリート キュー FlexMatch

19.

マッチングの流れ ▶ ビルド ビルド ⚫ GameLift Serversに実行ファイルを登録 したもの ⚫ OSやサーバー用SDKのバージョン を指定する ⚫ S3のアクセス権利を持つ IAMロールを設定する必要がある

20.

マッチングの流れ ▶ フリート フリート EC2インスタンス 待機状態で起動 ゲームサーバー (Dedicated Server) ⚫ ゲームサーバーの起動管理をするもの ⚫ 1インスタンスで複数のゲームサーバーを 起動できる ⚫ EC2の操作など様々な権限を持った IAMロールを設定する必要がある

21.

マッチングの流れ キュー ▶ キュー ⚫ ゲームセッションの配置先を決めるもの ⚫ 対象となる「フリート」と「ロケーショ ン」を設定できる ⚫ 複数のフリートを指定できるので、 「スポット」と「オンデマンド」の両立 が可能

22.

マッチングの流れ FlexMatch ▶ FlexMatch ⚫ プレイヤー間のマッチングをしてくれるもの ⚫ マッチングすると「キュー」に ゲームセッションの作成を自動でリクエスト ⚫ Json形式でルールを記述できる。 ⚫ 任意のパラメーターを渡せるので ゲーム固有の条件を設定可能

23.

マッチングの流れ ゲームセッション作成 リクエスト FlexMatch キュー S3 ビルド API Server フリート EC2インスタンス 待機状態で起動 ゲームサーバー (Dedicated Server) ゲームセッション作成 & アクティブ化 遊べる Client PC / Console

24.

用語整理&サンプル確認 ▶ GameLift Serversの 「サンプルゲームを試す」を検証

25.

Dedicated Server用SDK導入 ▶ “Amazon GameLift Servers C++ server SDK for Unreal Engine”を 導入 ▶ SDKを導入すると、GameLift Serversのゲームサーバーとして使えるよ うになる ▶ 導入方法が丁寧に書かれてるので簡単

26.

LinuxOS対応 ▶ Dedicated Serverのランニングコストを下げたい ▶ UE5のクロスコンパイルツールチェーンを使えば、 Linuxマシンが手元になくてもビルドできる ▶ SDKのバイナリを、実行環境(AmazonLinux2023)で ビルドする必要がある

27.

ゲームクライアント用SDK導入 ▶ “AWS SDK for C++“を導入 ▶ クライアントにSDKを導入すると、クライアントからマッチのリ クエストやセッションの一覧の取得ができるようになる ▶ UE5用に用意されたものがない ▶ メモリ管理がUE5と競合を起こすので対策が必須 ▶ 最終的にAPIサーバーがわで行ったため不要になった

28.

FlexMatchに対応 ▶ Fineさんが構築したAPIサーバーを経由してFlexMatchに マッチングリクエストを行うように変更 ▶ 結果、ゲームクライアントにAWS SDKは入っていない

29.

マルチロケーション対応 ▶ 金額や地域などを考えて、対象ロケーションを策定 ▶ GameLift Serversの設定はお手軽 ▶ ゲームクライアントから各ロケーションにPingを飛ばす必要 があった

30.

導入における作業時期 2024 2023 7月 8月 10月 用語整理 サンプル確認 1月 サーバー用 SDK導入 Amazon GameLift Servers C++ server SDK for Unreal Engine 8月 クライアント用 SDKの導入

31.

導入における作業時期 2024 2023 7月 8月 10月 LinuxOS対応 1月 FlexMatch 対応 8月 マルチロケーション フリート対応

32.

便利だったマルチロケーションフリート 各サーバーへのPing値をマッチングのパラメーターとして扱い 全世界共通でマッチングを行うシステム 全体プール マッチ 部屋に合った場所に配置 本タイトルは「アジア」「西アメリカ」「東アメリカ」「ヨーロッパ」の4サーバー

33.

その他FlexMatchで良かった点 ▶ バックフィル ⚫ 一度島へ移動してから 60秒遊びながら待てる ▶ マッチングルールがJSONで 書くだけ

34.

判断が難しかったところ ▶ コスト面の見通し ⚫ GameLift Serversの試算ツールはとても役に立った ⚫ 想定CCUをSteamDB等を元に他タイトル事例から試算 ▶ APIサーバーのスペック選定(何人来るかわからない) ▶ スポットインスタンスの使用 ▶ マッチングの調整

35.

クロスプレイの苦労点 ▶ GameLift Servers関連 ⚫ マルチロケーションフリート用に各サーバーへのPing値を取得する部 分が、プラットフォームによって簡単ではなかった ⚫ それ以外はあまり苦労していない ▶ APIサーバー ⚫ ログインや課金認証などを一つ一つ対応 ▶ 技術面以外がとにかく大変だった

36.

実際やってみて ▶ 苦労点 ⚫ CMakeでのビルドやLinuxでの作業など未経験の対応が多く苦労した ⚫ 初めてAWSに触れる身としては、GameLift Serversだけでなく、 S3やIAMなど多岐にわたる知識が必要だった。 ▶ よかった点 ⚫ Dedicated ServerへのSDK導入は想像より何倍も簡単だった。 ⚫ 「SDKの関数」≒「公開されてるAPI」で、引数がシンプルなため、 アプリ側での煩雑な情報の取り回しが必要なかった。

37.

開発・運営体制 ▶ クライアント専業がどう挑んだか、の良いリファレンス ▶ 「ヒストリア&Fine 定例」と「4社定例」、2つの定例がある AWS