
GameLift StreamsでのProtonを活用するメリット
こんにちは、ゲームソリューション部の出村です。
Amazon GameLift Streams(以降、GameLift Streamsと表記)を活用する中で、「ゲームクライアントをどのサーバーOS上で動かすか?」は今後の技術選定として重要なポイントとなります。
これまでは、特に、Windows向けに開発されたゲームを動作させる場合は、WindowsServerなどのWindows系OSを利用する選択肢がメインでしたが、最近ではLinux上で動作するWindows互換レイヤーである「Proton」を選択するという選択肢もあるためです。
本記事では、Protonの概要やメリット、GameLift Streamsでの利用について解説していきます。
GameLift Streamsで選択可能な実行環境
GameLift Streamsでは、その実行環境としてWindowServer 2022、Ubuntuの他にProtonという選択肢があります。では、このPhotonとは何なのか、詳しく解説していきます。
Protonとは何か?
Protonは、Steamを運営するValve社が開発したソフトウェア互換レイヤーで、Windows向けに開発されたゲームをLinux環境で動作させるために最適化されています。このProtonの基盤となっているのが「Wine(Wine Is Not an Emulator)」というオープンソースプロジェクトです。
Wineは、WindowsアプリケーションがLinuxやmacOSなどの非Windows環境上でも動作できるようにするための互換レイヤーで、WindowsのAPI(アプリケーションプログラミングインターフェース)をLinuxのシステムコールに変換する役割を担っています。これは仮想マシンやエミュレーターのようにWindows OSそのものを再現するのではなく、Windowsアプリケーションが必要とする機能だけをLinux上で直接実行できるようにする仕組みです。そのため、オーバーヘッドが少なく、高速に動作するのが特徴です。
ProtonはこのWineをベースに、ゲーム向けに特化した改良を加えたもので、Vulkanへの変換、ゲームパッド対応、フルスクリーン最適化など、WindowsゲームをLinux上でよりスムーズに動作させるための機能が追加されています。
このように、ProtonはWineの技術を活用しつつ、ゲームに特化した最適化を施すことで、WindowsアプリケーションのLinux対応をより実用的なものにしています。
このProtonをGameLift Streamsで採用した場合を前提に解説していきます。
主な特徴
Protonの特徴としては以下の通りです。
- Windows専用に開発されたゲームクライアントやアプリケーションをLinux上で動作させることが可能
- DirectX 12を含む多くのWindows APIにも対応
メリット・デメリット
メリット、デメリットとしては次のとおりです。
- メリット
- コスト削減:WindowsServerライセンスが不要になるため、サーバー運用コストが削減可能
- デメリット
- 互換性の保証がない:ProtonはMicrosoft純正の技術ではないため、すべてのアプリケーションが完全に動作するとは限りません
- クラッシュや動作不良の可能性:一部のゲームでは起動しない、または予期しない不具合が発生することもあります
サーバーコストを下げられるというメリットがある反面、Windowsアプリケーションの動作が完全に担保されている訳ではありません。このあたりはトレードオフの関係となります。
コスト比較
コスト比較してみます。以下の様にWindowServerで稼働させた場合と比較して、コストが35%前後の削減となります。
WindowsServer 2022 | Photon (Linux) | |
---|---|---|
gen5n | $2.13 | $1.45 |
gen4n | $1.51 | $0.93 |
GameLift StreamsとProtonの連携による動作検証
Protonを実際にGameLift Streamsで利用する場合、互換性や安定性の検証が重要になります。GameLift Streams向けに設定したがアプリケーションが起動しないことも当然ありえます。ただ、GameLift Streamsの環境で直接動作させて動作不良などがあっても、詳しい調査は難しいです。
そのような場合の対策として、EC2を利用してProtonの実行環境を構築し、そこで動作検証を行う方法があります。環境を構築する手順もドキュメントが公開されています。
この検証環境ではProtonで動作しない原因がログとして出力されるため、不具合調査なども素早くできます。
GameLift StreamsにてProtonを選択して一般公開する前に、Protonの検証環境を構築し、動作検証として一通り動作することを確認しておくのが安定運用には重要なことかと考えています。
まとめ
これまで「Windowsで開発したゲームはWindowsサーバーで動かすしかない」と考えられてきましたが、Protonの登場により、Linuxサーバーを使ってGameLift Streamsを運用するという選択肢が現実的になってきました。
GameLift StreamsとProtonを組み合わせることで、コストを抑えつつ、柔軟なゲームサーバー運用が可能になります。ただし、互換性や安定性には事前の検証が不可欠です。先の検証環境を活用しながら、安全かつ効率的な運用をしていきましょう。