We are currently working on other tasks. But a month ago, I accomplished a first try with lobbies. Let’s suppose that we have those umap files:
- Entry.umap (Where a main menu is displayed).
- Lobby.umap (Where the lobby menu is displayed).
- FFA.umap (A map to play).
So, from my Entry.umap a player can creates an online game session that will travel to Lobby.umap. Once you are inside a Lobby.umap (this loading process should be so fast becuase the Lobby.umap will be created from an empty template map and it will only render the UI).
The other players can search for this session and they will join into you Lobby.umap. At this point you have been able to detect all the players that have joined inside you Game Session using the Login method of the game mode.
For example, If your game mode is: ALobbyMode, you can reimplement the login method in order to get the name of a player connected to the session, and display it in the lobby menu.
Now, the last step. You are in a session over the Lobby.umap with other 3 clients, but now you want to travel with your 3 clients to the FFA map. How Can I achieve this objective?
The tip is, “bUseSeamlessTravel”. This is a member of the AGameMode class. In the constructor of the ALobbyMode, you should set this to true. If you look into the comment in code, you will find this:
" * perform map travels using SeamlessTravel() which loads in the background and doesn’t disconnect clients
- @see World::SeamlessTravel()"
Take into account that this boolean will change the way the players appears into the FFA.map, the Login method of the AFFAMode will not execute, because the players has already been log in this session in the lobby. You should read documentation about the seamless travel in order to complete the flow “Menu->Lobby->Game”. Here are some interesting threads to read:
[SeamlessTravel and TransitionMap][1]
I will post here once I have fully accomplished the task. That’s a way to implement a Lobby feature, maybe is another one, but I don’w know yet.
I you have any questions, post them here.
Thanks