Amazon GameLift Streams と Pixel Streaming は何が違うのか
こんにちは。ゲームソリューションの出村です。
Web ブラウザ上で Unreal Engine のゲームを動かしたいという相談をいただくと、よく Pixel Streaming という言葉が出てきます。ただ、この Pixel Streaming をAWSに構築しようとすると、かなり手間がかかります。そして、AWSには、この Pixel Streaming と同じような技術を使った Amazon GameLift Streams というサービスも存在します。
ここでは、GameLift Streams と Pixel Streaming がどこは同じで何が違うのか、そしてそれぞれのメリットがどこにあるのかを解説していきます。これを理解することで、みなさんが進めようとしていることに対して GameLift Streams が適しているのか、それとも Pixel Streaming が適しているのかを判断できるようになります。
そもそもピクセルストリーミングとは何か
はじめに、ピクセルストリーミングそのものについて解説します。ピクセルストリーミングは GameLift Streams と Pixel Streaming のどちらでも使われている共通の技術なので、ここで整理しておきます。
ピクセルストリーミングとは、サーバー側でアプリケーションを実行し、その GPU によるレンダリング結果を映像や音声として WebRTC でブラウザへ配信する仕組みです。ゲームパッドなどの入力はブラウザを介してサーバー側へ送られ、サーバーはその入力信号をもとにゲームの状態を更新し、結果を再び映像にしてブラウザへ返します。この一連のループがリアルタイムに繰り返されています。

ピクセルストリーミングを利用するメリットは、クライアントのデバイスを問わない点にあります。クライアントがゲーミング PC であってもスマートフォンであっても、描画はサーバー側で行われるため同じ結果が得られます。そのため、スマートフォンや Chromebook、古い PC のような非力なデバイスであっても問題なく動作します。ただ、映像配信であるため、ネットワーク帯域に影響を受けます。また、仕組上、入力から画面描画までに数フレームのタイムラグが発生します。
ここで少し紛らわしいのが、Pixel Streaming という言葉が2つの意味で使われている点です。ひとつはいま説明した技術方式そのものを指す一般的な呼び方であり、もうひとつは Epic Games が Unreal Engine に用意している機能の正式名称です。本記事では、方式そのものを指すときはカタカナで「ピクセルストリーミング」と書き、Epic の機能を指すときは「Unreal Engine の Pixel Streaming」と書き分けていきます。
なお、本記事で扱う Pixel Streaming と GameLift Streams はよく似た名前ですが、どちらもピクセルストリーミングという技術を利用している点は変わりません。違うのは、そのピクセルストリーミングをどのように構成しているかです。まずはこの2つが何を指しているのか、その違いを意識しておきましょう。
Unreal Engine の Pixel Streaming とは
次に、Unreal Engine の Pixel Streaming について解説します。
Pixel Streaming は Unreal Engine で提供されている技術です。そのため、対応しているゲームエンジンは Unreal Engine のみとなります。
この Pixel Streaming を AWS で動かす場合は、GPU 付きの EC2 インスタンスで実行できる環境を自分たちで用意する必要があります。Unreal Engine のアプリを Pixel Streaming 向けにビルドしたものを配置し、実行させます。さらに、負荷に応じてオートスケールさせたい場合は、Auto Scaling グループなどを設定して構築しなければなりません。
つまり Pixel Streaming を利用する場合は、実行環境やインフラ環境をすべて自分たちで構築することになります。これは、細かい部分まで自分たちでカスタマイズできるというメリットがある一方で、すべてを自分たちで構築しなければならないという手間がデメリットといえます。
Amazon GameLift Streams とは
続いて、Amazon GameLift Streams について解説します。詳細な説明は、ゲームストリーミングサービスであるAmazon GameLift Streamsがリリースされました | DevelopersIOにも解説しています。ここで、サービス概要について記載します。
GameLift Streams も、ピクセルストリーミングという基本的な技術を用いる点は先ほどの Pixel Streaming と同じです。Pixel Streamingと違う点は2つあります。1つはゲームエンジンに依存しない点、もう1つは、サーバー管理などをAWSに任せられる点です。これらについて順に解説します。
先にも解説したとおり、GameLift Streams で動作するアプリケーションはゲームエンジンに依存しません。Unreal Engine で作ったバイナリでも、Unity で作ったバイナリでも、それ以外でも動かせます。ただ、Windows上で動作するゲームアプリである必要はあります。
次に、Amazon GameLift Streamsはマネージドサービスなので、EC2 インスタンスを自分たちで構築、用意するといった作業も不要です。サーバーの環境構築やデプロイはAWSに任せることができますので、先ほどの Pixel Streaming と比べて非常に手軽に構築できます。そのため30分もあれば、Amazon GameLift Streamsでの動作する環境が構築できます。
このように手軽に構築できるというメリットがある反面、Pixel Streaming ほどサーバー側を細かく設定できないという点はデメリットといえるかもしれません。
比較表
ここまで言葉で解説してきましたが、どのような違いがあるのか、わかりやすく表にしてみました。
| 観点 | Pixel Streaming | GameLift Streams |
|---|---|---|
| 提供元 / 位置づけ | Epic Games / Unreal Engine の機能 | AWS / マネージドサービス |
| 対応エンジン | Unreal Engine のみ | エンジン非依存(ビルドしたバイナリを配置) |
| 構築・運用 | 自前でインフラを構築する | フルマネージドで任せられる |
| スケーリング | 自前で Auto Scaling を構築する | マネージドでオートスケールできる |
| カスタマイズ性 | 高く、細かく設定できる | サービスの枠内に収まる |
| 運用負荷 | 高い | 低い |
| 課金 | EC2の料金 + データ転送量 | 割り当てたストリーミンググループ(転送料金はない) |
使い分けの指針
では、これら2つをどのように使い分ければよいのかを解説します。
GameLift Streams が向いている場面
GameLift Streams は、手軽にピクセルストリーミングのサービスを構築・提供したいときに向いています。複雑なサーバー設定を行うことなく、ストリーミングのサービスを構築できます。フルマネージドなサービスなので手軽に始められる一方で、自分たちでカスタマイズできる幅はあまりありません。Unreal Engine 以外のゲームエンジンで開発したアプリを扱う場合、手早くピクセルストリーミング環境を構築したい場合は適しています。
Pixel Streaming が向いている場面
一方で Pixel Streaming が向くのは、Unreal Engine を利用している前提があり、なおかつ AWS 以外のサーバー環境でもサービスを提供したい場合です。
Pixel Streaming は、動かす環境については Azure や GCP、AWS などクラウドサービスを問わず構築できます。そのほか、ストリーミングのパイプラインを細かく作り込みたい場合や、既存の自前インフラに統合したい場合にも Pixel Streaming が選択肢になります。その反面、オートスケールなどの設定を自分たちで行う必要があるため、構築の手間は GameLift Streams よりもかかります。
まとめ
本記事では、よく質問に上がる GameLift Streams と Unreal Engine の Pixel Streaming の違いについて解説しました。両者は基本的に同じピクセルストリーミングという技術を使っていますが、利用できる環境や前提としている構成には違いがあります。利用目的や構築にかかる手間などを考慮すれば、どちらのサービスを使うのがよいかを判断できることでしょう。







