Matchmaking To An Edgegap Hosted Server Instance
-
From what I've been able to find online it seems if I want to be able to communicate with the brainCloud backend from my server instance I need to set up a server app. However, I am unclear about the requirements if I wanted to use brainCloud lobbies and matchmaking. From the docs it seems I have to code a custom C++ server room host it with brainCloud and then orchestrate with Edgegap from there. That is a cost (monetary and dev) I'm wanting to avoid.
My main question is, Is it possible to launch an edgegap server instance from brainCloud matchmaking service without the need for a custom server room?
If not is it possible to get a clear guide/bootcamp on matchmaking from within the brainCloud backend and then using that match to spin up an Edgegap server instance.
Thanks!
-
According to the AI bot you don't have to host a custom room to integrate with lobbies and matchmaking which if true this is great news!
-
HI @greggoryaddison - maybe I can clarify some terms here:
brainCloud refers to hosted multiplayer servers as [Custom] Room Servers and Relay Servers.
Room Servers are custom software that you write that will implement the authoritative multiplayer session. It is generally implemented as a docker image - using any number of multiplayer technologies. After matchmaking, clients will directly connect to your Room Server to participate in the multiplayer experience.
Relay Servers use brainCloud own Relay Server tech (and Relay Protocol libraries) to implement peer-to-peer multiplayer. The off-the-shelf brainCloud Relay Server tech automatically "relays" the messages to the peer-to-peer host...
Relay Servers are generally hosted natively by brainCloud itself.
For Room Servers there are a number of options:
- Room Servers - native hosting on brainCloud's servers. This is the simplest to set up. Enter the name of the dockerhub-based image for brainCloud to pull and launch.
- EdgeGap integration - very similar - except the docker images are launched on EdgeGap's servers
- GameLift integration - brainCloud will trigger the launching of GameLift-based servers. You need to build Gamelift images, not docker images.
- i3d integration - integration with i3D's orchestrator for true AAA hosting of multiplayer services
Once a Room Server is launched (on any of these services) is communicates back with brainCloud via the S2S API.
We would very much suggest that the easiest path is to get your multiplayer working on brainCloud natively, and then migrate to one of the hosting integrations (if desired) once the basics are working.
Does that help?
-
Hey, thanks for reaching out. To answer your main question directly: yes, brainCloud's lobby and matchmaking system can trigger an Edgegap server deployment automatically. You do not need to build a custom C++ room server to make this work.
https://github.com/getbraincloud/examples-cpp/tree/develop/relaytestapp
The relaytestapp example on the develop branch of examples-cpp is a working client example that does exactly what you are describing. It uses brainCloud lobbies and matchmaking to find a match, and once the lobby is ready to launch, brainCloud handles spinning up the Edgegap server and passes the connection details back to all players through RTT.
The server configuration you see in the screenshot is what ties everything together on the brainCloud side. That entry defines which Edgegap application to deploy, which regions to consider based on the selected beacons, and the credentials needed to make the deployment call. Once that server is linked to a lobby type, the entire launch sequence is handled for you.
The relaytestapp is a solid starting point to see this end to end.
