I’m working on a game that requires multiple unreal dedicated server instances. To be specific, i will have a number of lobby servers (lobbies are maps where players interact with each other, queue for dungeons, start quests at quest-giver NPC’s, and change character equipment/gear), and instance servers (WoW-like instance maps where a group of players plays through a “dungeon” scenario). Before the player connects to a lobby server, it first passes through a non-unreal server which handles player authentication, then if the authentication is successful, the player is connected to a lobby server.
So, my questions are:
- When I’m connecting to the lobby server, what is the proper way to connect and authenticate with it securely for the player that is attempting a login? Currently, I’m just using the OpenLevel function, where I pass the one time token that I previously generated on the non-unreal authentication server.
- Is there a way for me to transfer the player’s state (character equipment, ability, stat data, quest progress etc) to the instance server (above described server which is independent from the lobby server, and hosts the instance level we’re connecting to)
- What is the proper way to handle logouts and network errors/disconnects? On network errors, the Logout method from the GameModeBase is not called.
- What are the benefits of writing a custom online subsystem (we’re currently using the basic one integrated in Unreal), and would you have some guides/tips on how to go with writing one for use with Unreal engine.
- What are the network sessions used for? Currently, I can create connections to the server without ever creating a session, so I’d like to know how I’m able to do that, and why would I need to create a session