マルチプレイヤーのOnlineSubsystemSteamについての疑問

オンラインマルチプレイヤーを作るにあたって、サーバーのセッションにクライアントが参加するっていうのをUE4のエディタでできないとそもそも何もできないと思いまして、それの方法を模索しているところです。

 これを実現するにあたって、OnlineSubSystemなるものを使うと簡単にネットセッションをすることができるようなので、それを試してみているのですが、そのセットアップ段階でかなり手間取っています。

 公式サイトを含むいろいろなサイトを見て、そのサイトの通りの手順(分からないことはいくつかあったのですが)を踏んでやっているのですが、最終的に「スタンドアロンで起動するぞ」ってなったときにSteamのマークみたいのが右下に表示されないです。



 いくつか方法は試したのですが、とりあえずは公式サイトに載ってる方法でやってうまくいかなかった例を挙げます。(A new, community-hosted Unreal Engine Wiki - Announcements - Unreal Engine Forums)

SteamWorksSDK…4.18のフォルダにはデフォルトではv139を使用するようなので、それをダウンロードしました。解答し、Source/ThirdParty/SteamworksにSDKをコピペして、既存のそれをダウンロードしたそれに置き換えました。

sdkフォルダに入っていたsteam_apiとか、Steamのアプリケーションのフォルダに入っていたその他のsteamclientとかtier0、vstdlibを、64のものも含めてコピーして、Binaryフォルダの方にあるThirdPersonの指定のフォルダにペーストしました。

Build.cs、Target.cs、Engine.iniも言われている通りに書き換えました。(結構いろんなサイトで[URL]GameName=hogehogeって書いた方がいいって書いてあったのでそれも付け加えています。)



ここからが問題なんですけど、ここまでやった時点でWinPlatform.Automation.csにstring SteamVersion = "Steamv131"ってのが出現しているよってなっているはずなんですけど、まず、公式サイトに載っているパスにこのC#ファイルが無くて、別の場所にあるんです。で、それを見つけて開いてみてもこのSteamのバージョンについての文がどこにも出現していないんです。ビルド?をしてないから悪いのかなと言われてもこれをビルドするには何をどうすればいいのかいまいちわからないです。プロジェクトをVSで開いてUE4をクリーン→リビルドってやっては見ましたけど、これで合っているのかわからないですし、これで問題は解決しませんでした。

まあ、それは置いといてとりあえずここまでやっていざプロジェクトを立ち上げて、なんかSteamClientとかいうのにログインしていないといけないようなので、とりあえずSteamを起動した状態で、適当にMinimalDefaultのマップをスタンドアロンで起動してみても、画面右下にSteamのマークは出てきませんし、Shift+Tabを押しても何も起こりません。



なるべく自分で調べて頑張っているのですが、そもそもC++を1ミリも知らないっていうのもあって、ちょっとこれは手に負えないです。何が悪くてうまくいかないのかご教授願いたいですし、もしよかったら「とりあえず最初からこの通りにやれ」みたいな手順を詳しく教えてくださったら非常に助かります。そのようなサイトがあったら紹介していただいたらそれもありがたいです。よろしくお願いします。

まずLAN内マルチプレイヤーであればともかく、オンラインマルチプレイヤーはかなりハードルが高いです。C++がわからないとのことであれば素直にプラグインに頼ってみた方がいいのではないかと思います。

私は使ったことがありませんが、Steamに対応するプラグインはマーケットプレイスに多数あります。

https://www.unrealengine.com/marketplace/uworks

どのプラグインがいいのかは判断がつきませんが、ご自分が使用されているUE4バージョンに対応されているかだけは確認した方がいいでしょう。