I like many others are trying to work on Steam and are happy with the implementation of the Blueprint version of Sessions for Host, Find, Join. However, we would like more control and with little documentation regarding Host, Find, Join Sessions using C++ I’d like to get everyone’s input for all of us trying to do this task.
I appreciate there is an awesome ShooterGame Sample all in C++ and I would encourage other to spend time and look around, but having spent a number of days dissecting it, I personally am getting confused in some areas.
I am trying to use Steam for the Online Sub System and have successfully integrated this using the following tutorial from Rama (Thanks)
There is also an Epic version here (Thanks)
I would like to get enough information together that a Tutorial for creating a simple Host,Find,Join demo for everyone using say the 3rd Person Template.
When we get this completed we should release the demo for free on the Marketplace.
I’m willing to put the time into creating the demo for everyone.
ShooterGame is way too heavy to learn the Session thing.
You should better strip off a lot of the ShooterGame Code if you want to learn it that way.
Otherwise, you can try to just recreate the Nodes that you are using in BPs.
Steam or any other Subsystem is not important. It will only allow you to join Internet Games from a Master Server list.
Lan Matches on the other hand are working with and without steam. You don’t need to change the code for this. UE4 uses wrapper function for this. If Steam is enabled, it will call the Steam version of these functions. You don’t have to worry about steam as long as you manage to get the sessions working at all.
I guess the main rundown is:
Player who wants to host a game creates a session and opens the map he wants to play
Player who wants to Join searches for sessions (without subsystem it is only LAN) and joins the retrieved once
Leaving a game or shutting down the listen server will need to destroy the running session
Then there are function for ServerTravel and ClientTravel and i guess you can have a look at the ShooterGame for these.
It isn’t that hard to understand (no offense!), you just need to understand the steps to achieve hosting, joining and leaving. Everything else is only adding a bit code (like the ServerTravel).
And the ShooterGame added ALOT of those extras. It got extra SessionResults (instead of the standard once). It uses Slate (which i would not try to learn, since we have UMG by now) and other things that will confuse you.