💦

[UE5]Amazon GameLiftを試そうとしたら沼った件

2023/05/25に公開

はじめに

UE5でオンラインマルチプレイゲームを作り始めようと、Amazon GameLiftを使ってみるか~と環境を整えようとしたら土遁・黄泉沼に頭からずっぽりハマったお話です。

二度と犠牲者が出ないように記事にしておきます。

環境

  • Windows11
  • UE5.1.0
  • Visual Studio 2022
  • GameLift-Cpp-ServerSDK-5.0.2

参考文献

https://tech.isid.co.jp/entry/unreal-engine-gamelift-1
https://www.yhikishima.com/entry/2023/04/10/173018

何が起きたか?

幸いにも先駆者がいたため、参考にさせてもらいました。
ソースコードビルドは完了してるし、Serverビルドファイルも作成した。
次はGameLiftSDKをビルドか~
参考記事はVS2019でやってるけど、2022でもいけるやろ。うん。
コマンドを打って・・・

mkdir out
cd out
cmake -G "Visual Studio 17 2022" -A x64 -DBUILD_FOR_UNREAL=1 ..
msbuild ALL_BUILD.vcxproj /p:Configuration=Release

後はビルドが通れば完成だ~
ん?

な、なにいいい!!!!

手順通りやったのになぜだ?
やはりVS2022ではできないのか・・・?

どうやらOpenSSLが見つからないとのことだ。
パスを通し忘れたか~どれどれ。
ぬ・・・?

パスは通っているのにOpenSSLが見つからない・・・だと・・・
あ、焦るな。
まずはSDKフォルダにあるREADME.mdを読んでみよう(最初に読め)

※Google翻訳してます

## 最小要件:
※以下のいずれかです。
   ※Microsoft Visual Studio 2012以降
   * GNU Compiler Collection (GCC) 4.9 以降
※CMakeバージョン3.1以降
* PATH で利用可能な Git クライアント。
* OpenSSLのインストール

おいいいいいそれだけかいいいいいい!!!!
OpenSSLはインストールしてパスもしっかり通してあるんだヨ!!!!
せめてバージョンとか書いてくれよおぉぉぉぉぉぉぉぉぉぉぉぉ・・・・・・・


参考記事の先輩ニキたちは、GameLiftSDKのREADME.mdにある最小要件くらい当然済ませてあるんだろう?的なノリで華麗にスルーし、何事もなかったかのようにビルドを通しています。(皮肉ではありません準備していない私が全て悪いのです)
当然私は事前準備などせず記事の手順通り脳死で作業していたところ、先述した状態に陥り解決に至るまで精神をすり減らしたわけです。

README.mdをしっかり読むと、GameLiftSDKをビルドするためには

  • CMakeのインストール
  • OpenSSLのインストール
  • MsBuildのパスを通す or Developer Command Prompt for VS 2022からビルドする

少なくともこの準備が必要です。

CMakeのインストールはこちらから↓
https://cmake.org/download/

Windows版OpenSSLのインストールはこちらから↓
https://slproweb.com/products/Win32OpenSSL.html

解決策

各ダウンロードサイトの最新版を取れば問題ないですが、OpenSSLはここで落とし穴が・・・
Windows版OpenSSLのダウンロードサイトは下の画像のようになっています。(2023/5/25時点)

が、なんと私は、64ビット版の最新バージョンを取っておけばいいだろうくらいで一番上のEXEをダウンロードしてインストールしてしまったのです。
そう、つまりLight版を・・・!!!

OpenSSLが見つからないエラーが出る原因はこれでした。
お察しの通り、Light版ではビルドが通らないのです。

なので、その下のLight版ではないOpenSSLをインストールしてみましょう。

たったこれだけのことに何時間費やしたことか・・・

補足

参考記事の先輩ニキたちがやっているローカルでGameLiftに接続するやつですが、最新のGameLiftSDKにはGameLiftLocalというフォルダはありません。
前のバージョンのGameLiftLocal1.0.5はGameLiftSDK5.0.2に対応してないそうです。
なのでSDKファイルだけでLocalテストすることはできないのですが、代わりにAmazon GameLift Anywhereというサービスでできるらしいです。
どうやるかはわかりません。
https://aws.amazon.com/jp/blogs/news/introducing-amazon-gamelift-anywhere-run-your-game-servers-on-your-own-infrastructure/

まとめ

今回の一件で、READMEを読むことの大切さを改めて感じました。(README見ても解決しなかったけど)
参考記事と開発環境まるまる一緒!とかなら少し安心なんですがね。
そんなわけないですもんね~

Discussion