+2 votes

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.

in Engine by (18 points)

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!

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:
https://docs.godotengine.org/en/stable/tutorials/networking/high_level_multiplayer.html
https://mrminimal.gitlab.io/2018/07/26/godot-dedicated-server-tutorial.html

dustin: https://docs.godotengine.org/en/latest/getting_started/workflow/export/exporting_for_dedicated_servers.html

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 :(

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?

Please log in or register to answer this question.

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.