The client (player) creates a Lobby through EOS and joins Lobby. When all players are ready, how can I notify my cloud server to start a Dedicated Server and return the IP address and port so that the client can join the Dedicated Server through the “open address”.
Through NAT P2P in EOS? How to communicate between the client and server of EOS?
Or do I need to write a Socket communication program myself?
I never did this before, but i think it work like this:
1-Create a dedicated server
2-The server create sessions (or lobbies using EOS)
3-Then the clients can connect to server (Using URL, IP:Port, or something)
4-Then Clients can join to the session
I think yo don’t need do this…
The Engine does it.
Thank you for your reply.
But there are still several issues that have not been resolved:
How does my cloud server know when to create a dedicated server? Generally speaking, after all players on the client are ready, notify the cloud server to launch the dedicated server.
Generally speaking, the IP of a cloud server is fixed, but how do clients know which port to connect to? Because a cloud server may have multiple dedicated servers.
What i see in videos the server run several instances of the game. You will create two different executables. One is the server, the other is the client.
I think this is implemented in the client executable.
You didn’t understand what I meant. My dedicated servers are located on a cloud server, such as AWS. Therefore, the approach in the video should not apply to me.
You can choice how much instances of the game are executed at the same time on the server… the server software does it. You pay for CPU, you pay for RAM. The rest is done by de server sofware. You know de IP and the port becuse the company (Amazon → AWS) give you… then you write it in the cliente executable… So easy…
Thank you very much, but you probably didn’t really understand what I meant. Let’s reorganize our thinking:
A game (Room) is composed of multiple clients (Players) and a dedicated server. The dedicated server is located on a cloud server. What we need to do is organize a group of clients to connect to a dedicated server to start the game. Lobby Interface of EOS can organize a group of clients. After these clients are ready, we need to notify the cloud server in some way, and then the cloud server starts a dedicated server. The cloud server then returns the port to clients in some way (with a fixed IP), and then these clients can connect to the dedicated server. The reason we do this is because there are many rooms, which means many games, so a cloud server needs to create many dedicated servers, and the ports are not unique.
Ok, yes, you are right.
I didn’t see the background of the matter. You will probably want to do Matchmaking before starting the game so that the players are balanced.
I apologize.
If I find information on how to do that I will let you know.
Rephrasing what you said,
Let’s say we are using EOS for matchmaking and have deployed our dedicated server on any online platform (AWS, Azure etc ). We still need to communicate that our clients are ready, start a server instance and send back the IP:Port of that instance in order for us to connect the clients.
Have you found some sort of solution in this regard or do we have to set up a socket communication of our own as you mentioned earlier ?
I was kinda hoping Epic Online Services has some sort of solution for this.