How can I best host & implement a fleet of dedicated Godot Enet game servers?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Frolicks

I’ve got a working dedicated server running Godot’s High Level Multiplayer that hosts consecutive matches in my online multiplayer game. (like a custom TF2 server)

My next steps are to:

  • host several simultaneous versions of this dedicated server (is this what’s called a fleet?)

  • implement a server browser to allow players to choose which room they’d like to join

I’m having some trouble finding tutorials on this subject. The Godot Docs mentions Docker, which I have no experience in, but is what I’ll probably investigate eventually. I’m also looking at Google Game Servers or Amazon Gamelift, but I wonder if that’s overkill for my game. It’s a real-time, 2d, pvp, free but ad-plagued game, if that matters.

Any guidance, tips, resources would be appreciated.

may i ask how did you make your dedicated server? im trying to implement it to my game so i can play with friends but i have no experience with servers (but i do have working local multiplayer with enet using port forwarding). sorry for the question within a question!

dustin | 2020-07-15 17:08

I’m a bit confused, if you’ve port forwarded, others should be able to connect to your server online via your public ip and the port you forwarded. If you’re playing local multiplayer (I’m assuming LAN) then that isn’t necessary.

Anywa, I looked at some tutorials such as:
High-level multiplayer — Godot Engine (stable) documentation in English
Godot dedicated server tutorial | Tom Langwaldt's Blog

Frolicks | 2020-07-16 00:04

dustin: Exporting for dedicated servers — Godot Engine (latest) documentation in English

Server scaling is a very broad topic. The simplest variation is to have a fixed number of server instances started using a shell script. However, you may run out of empty servers (if people want to create new games) and this also means servers will keep running even if they’re all empty. This is why automatic scaling solutions such as Kubernetes or Docker Swarm were created.

Unfortunately, automatic server scaling solutions will probably feel overkill if you’re not specialized in DevOps stuff. Such is life :frowning:

Calinou | 2020-07-16 10:16

Thanks for the response Calinou. I’ll look into Google Game Servers (apparently based on Agones, which is based on Kubernetes) first, just arbitrarily I guess.

Any resources on that would be greatly appreciated. Especially on implementing a server browser. (How can the client know what the server’s capacity is before connecting to it?) Would there be a third server, maybe with HTTP request, that shows the individual server’s status?

Frolicks | 2020-07-17 02:05