MultiPlayershootoutのOnlinePlay方法について

追記ですが、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に変化してみて。。。

FindSession 20>100に変更したらログに変化がありました。

http://pocketstudio.isa-geek.org/archives/305/log2.html

しかし、Sessionは見つかりませんでした。
引き続き1000件にして再度試しています。

http://pocketstudio.isa-geek.org/archives/307/log3.html

1000件の場合またログが変わりました。Stringで文字化けを起こしているようです。

また、ログを見るにLobbyの取得ができているのに検索結果が0なのはなぜなのかわかりません。

LogOnline: STEAM: Found 4 lobbies, finalizing the search

LogOnline: STEAM: Search result 0: LobbyId=Lobby [0x18600004F74D19E], LobbyId.IsValid()=true, CSteamID(LobbyId).IsLobby()=true

それから、CreateSessionは正常に動作しているようです。

LogOnline:Verbose: dumping Session:

LogOnline:Verbose: OwningPlayerName: [Name]

LogOnline:Verbose: OwningPlayerId: [Name]

LogOnline:Verbose: NumOpenPrivateConnections: 0

LogOnline:Verbose: NumOpenPublicConnections: 1

LogOnline:Verbose: SessionInfo: HostIP: INVALID SteamP2P:[AppId]:7777 Type: Lobby session SessionId: Lobby [0x18600004F7BC336]

ということは、検索を行うにはユニークなIDが必要で複数ユニークなappidを用意してからテストを行わないと検索結果を得られないということでしょうか?
現在は私と他ユーザーはappid480でパッケージ化したexeを使ってテストを行っています。