MultiPlayershootoutのOnlinePlay方法について

公式ラーニングについてどなたかご存知の方が居ましたらご教授ください。

MultiPlayershootoutで自分のPCのみの場合は実行することはできるのですがOnlineで行う場合検索をかけても他のユーザーを見つけることができません。

実際にいくつか調べてみたのですが、公式で詳細な実行方法が載っていないため部分的に不明瞭な点がいくつかあります。

以下手順を書いていきますので抜けている、間違っている等ありましたらご指摘ください。

1.オンラインプレイを行う場合エディタから実行でなくクックしてパッケージ化が必要であるか?

2.プロジェクトの「MultiplayerShootout\Config\DefaultEngine.ini」に以下書き込み

[OnlineSubsystem]

DefaultPlatformService=Steam

[OnlineSubsystemSteam]

bEnabled=true

SteamDevAppId=480

3.Steamworks SDK のインストール

再ビルドは行わないため指定のフォルダに最新版のDLLを配置する、Ver.134では下記の二つのファイルしか見当たりませんでした。

steam_api64.dll

steam_api.dll

4.INI コンフィギュレーション

テスト用にSteamappID:480を使用しているが、テスターが同じappIDでも実行可能なのか不明です。

5.モジュール設定

>ユーザーのプロジェクトの一部として、Unreal Engine Steamモジュールを必ず含んでください

上記のように公式ドキュメントでは記述されていますが、どのようにUnreal Engine Steamモジュールを追加するのか?
また、配置場所等も不明瞭です。
ここについても追加しなければならないターゲットファイルはC#の拡張子なのでC++環境でビルドをしていなければならないのか?

6.ポート開放が必要?

また、どの番号を使うかどこで指定しているのか不明瞭
SteamのOnlinesubsystemを使う場合は不要なのでしょうか?

7.ゲームを実行してホストになる

8.別ユーザーが検索を行い、ゲームに参加する。

調べた結果は以上となります。不明瞭な点が多いため実際には繋がらない状態です。

公式ラーニングなのだからでもっと詳しく手順を公開して欲しいところです。

参考:公式サイトのドキュメント

追記ですが、AnswerHubでも同様の質問が多かったためこれを解決できれば他の方の助けにもなりそうです。もしくは公式ドキュメントの改修をしていただけると一番助かります。

LANでやってみましたか?

[OnlineSubsystem]

DefaultPlatformService=Null

だけで。

そうしてプレイするときに、LANえらばなきゃ。

回答ありがとうございます。
同一LAN内でプレイするということでしょうか?
Onlinesubsystemを使わない場合はネットワークを使って外部のユーザーとプレイができないと認識しておりますが認識違いなのでしょうか?

OnlineSubsystemNullとHamachi使うと、LANの外部のユーザーとプレイできる。

もしかしたら、4.7バーションではOnlineSubsystemSteamの問題があったから、480IDはつかえない。

バージョンは4.8であればappID480を使うことができるということでしょうか?
HamachiをどのようにOnlinePlayershootOutに設定してあげれば良いのでしょうか?
またこれは、FindSessionでサーバー検索を行うことが可能なのでしょうか?

Packaged Gameスタートするときに、右下Steamのアイコン出てきますか。それ出てこないなら、なにか設定的の間違いがあります。ここにDefaultEngine.iniについてもっと情報あります。

Hamachiでは、あなたのLANの外の人はCreateSession参加できる。

回答ありがとうございます。

ということは

1.CreateSessionを行うユーザーはHamachiの設定を行いVPN構築

2.DefaultEngine.ini

[OnlineSubsystem]

DefaultPlatformService=Null

この手順でLAN外のユーザーがFindSessionで検索できjoinSessionでゲームに参加できるということですね。

Steamの方についても試してみます。
二つの方法を実施して確認してみます。

もしも、Hamachiを使わない場合はどのような方法が考えられるのでしょうか?

LAN外のユーザーがFIndSessionでサーバーリストを取得し任意のサーバーに参加できるようにしたいです。

Nullと他にHamachi見たいなネットソルーション使えないと、LAN外のユーザー参加できないです。

もう一回確かめたいですけど、SteamSubsytemで作ったPackaged Gameはスタートのときに右下Steamのアイコン出てきますか。

Packaged Gameでは右下にアイコンは出てきません。

エディタからスタンドアローン起動する場合はSteamオーバーレイが表示されます。

一回同じこと4.83とか4.9でやってみてください。アイコン出てこないと、たぶんSteamでセッションつくれません。

別バージョンでも試してみます。

それから、SteamworksSDKの過去のバージョンのものをどのようにすれば入手できるのでしょうか?

v1.34が問題という可能性もあるのでそちらも試してみたいです。

開発でパッケージ化すればSteamアイコンが出るようになりました。

しかし、サーバー検索にかかることはありませんでした。

SteamappID480を使っているからでしょうか?

また出荷でパッケージ化した場合Steamアイコンは出てきませんでした。

開発パッケージでSteamアイコン出るようにできておめでとうw。

あなたのプレジェクトのDefaultEngine.iniの一番上に「URL」書いてありますか。

[URL]
GameName=あなたのプレジェクトの名前

現在は出荷パッケージについて考えなくてよいと思います。

URLは指定されていましたが、プロジェクト名と一致していませんでした。

こちらも一致させておく必要があるのでしょうか?

まずは、セッション作成とそのセッションを検索して参加できるようになれば良いので。

Hey there, i am sorry if you don’t understand english, because this is all japanese. Still i translated your text and see that you have problems with the sessions, steam and online playing. Maybe someone can translate my answer if the questioner doesn’t understand it.

OnlineSubsystem NULL limits you to LAN Games or Online games where you can only join over the IP. This is due to a missing Master Server. Without a Master Server, the Search Sessions Node (or C++ code) has nothing to ask for a Server List. This is where Steam and other Subsystems come in handy. Due to the AppID and Steams Master Server, you will be able to search and find online games. Although it could be that using the Test AppID 480 will not work.

Also Steam and other subsystems don’t work in the Editor. If you just press Play, you will always play with the NULL Subsystem.

You can start the game directly with “-game” in the command line of VS. You can also try to start it by going to the project directory and right clicking the .uproject file, selecting “Launch Game” or something like that.

If Steam is running and you set it up correctly, you will see the Steam Overlay popping up on the lower right side. If not, you may want to check the LOG Files and see what is going wrong.

「Url」GameNameのプレジェクト名前はSession見つけるのために必要と思います。それでもSteamで作ったSession見つけないと、Log見てみてください。頑張ってw。

@eXi
Yes thats basically what I wrote too :) The SteamOverlay now pops up in his 4.8 Packaged Project, but he can’t find the session over steam. So last thing I told him is to include URL Name, which I think is necessary.

URLを指定して見ましたがSearchSessionでサーバーを見つけることができませんでした。

自サイトにログファイルを貼り付けておきました。

http://pocketstudio.isa-geek.org/archives/303/ログ.html

考えられる原因は何があるのでしょうか?

これはもしかしたらこっちのユーザと同じ問題です。

MultiplayerShootoutの場合には、ServerListウィジェットのRefreshListMacoの中のFindSession20から100に変化してみて。。。