I’m trying to create a feature for creating lobbies and joining games. Currently my goal is to get it working on LAN. I have read and implemented this guide A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums and it works fine, meaning I can create, find, and join sessions. I have also read this page https://docs.unrealengine.com/en-us/Programming/Online/Interfaces/Session.
My confusion lies in the difference between using the editor’s standalone PIE and using a packaged version of the game. If I play in the standalone version of the game, the model works as I understand: one player is designated the listen server and the other (assuming only 2) is designated the client. The two are then paired up automatically and the game plays as normal.
In the packaged version, if I doubleclick MyGame.exe it loads up what appears to be a listen server version of the game. Using command-line arguments, I can start up one game as a listen server, and start up the second games as a client and attach it to localhost. Then the games function just like the standalone PIE. What happens if I don’t use the command line arguments? Are both players listen servers? If so, lets say one player creates a session, and a second player joins that session, does the second player get downgraded to a client? When I do that in my game, the server (whichever created the session and did not join one) still doesn’t see the client.
Looking through the code for ShooterGame hasn’t really helped me yet, but I’m still looking at it. My first guess is I need to append something to the travel URL of the session to indicate the incoming player is a client, but I honestly have no clue.