I’ve spent days reading the documentation and various forum threads and wikis about this issue, but it’s still unclear how it all works. Basically, I just want to know how the client-server framework works in Unreal Engine 4, and how I can host or join games. I’ll try to break this down into multiple questions I have:
##How do I join a server once the game is started?
The only way I’ve been able to reliably join a server that’s already running is with command line arguments in the shortcut. I believe this is also possible with console commands and APlayerController::ClientTravel, but I can’t find enough information about this to decide what to use.
##What is a session?
The documentation is a bit lacking on its explanation of what a session even is. Do I even need to use sessions? Can I just join a server without joining a session? Since there can only be one session per server, what is the point? And why do I need to search for sessions if there can only be one session per server? Basically, I need an explanation of what a session is, and how I need to go about managing one.
##How do OnlineSubsystems work, and do I need to make one?
From what I’ve read, it seems that OnlineSubsystems are used just for thinks like steam or Google Play integration. If I’m not using any of these services, do I need to use an OnlineSubsystem, or can I just leave it at Null?
##What should I do to create a multiplayer game lobby that players can join and leave?
This really ties in all the previous questions together. As simply as possible, what is the general workflow for creating a lobby where players can join and interact with each other before some type of match based game starts? For example: If I wanted to make an FPS where people could vote on a map and chat before a match starts, what would I need to do? At what point would a session need to be created? Is it per match? If so, how do I manage players before the match begins?
I know this a lot, but I’ve seen variations on many of these questions all over the forums and the Answer Hub, and I do not believe they have been answered well enough yet. If anyone takes the time to answer some or all of this question, I want to thank you in advance.