Yeah, dedicated servers are one option, but there’s others.
WebSocket
WebSocket is really just a technology that lets regular HTTP servers do bi-directional communication with clients, instead of just sending the page and closing the connection. ( I’m simplifying an absurd amount here )
Anyway, you would still need a dedicated server, maybe it could be a bit cheaper if you use some really common stack supported by the provider. For example, there used to be cheap or even free PHP hosting services.
The downside is that you’d need to write the game logic twice, once in Godot, once for the server.
Peer2Peer
Peer-to-peer is a different network topology. Instead of having a central server that everybody connects to, every player connects to every other player. This is supported by Godot. Data is then broadcast to all the players necessary.
Even though this way you don’t technically need a server, you still need some way for players to connect to eachother. Even if players just e.g. DM their IP addresses to eachother on Discord, their routers will probably still decline the connection.
I’ve skipped PlayFab as I have no experience there
Overall, you definitely can get by without a dedicated server, but it might not work for all your players, and you are putting more work on the players by making them figure out their network settings for themselves, if something doesn’t end up working.
However, running the full game on your own dedicated server is not the only option. You can also use a dedicated server to orchestrate connection between players. Think of master servers e.g. in old arena shooters like Quake III. The master server doesn’t run any game logic, it just serves a list of game servers. Then game servers can be hosted by players.
I’ve implemented something similar myself with noray, and its Godot integration, netfox.noray ( does not rely on the rest of netfox ). It basically controls the handshake between two players to make sure their routers doesn’t decline the connection. If it fails, noray can also simply relay messages between players. So, in theory, connection should be bulletproof.
You can also check out Nakama, that has a similar feature.
The win here is that you need significantly less processing power to simply relay messages instead of running a whole game, so you can get by with cheaper hosting.
I personally use Linode’s smallest plan, which is around ~5 USD/mo. Of course sometimes you don’t have the extra money to throw around, in these cases you can still fall back to player hosting and creating guides for players on how to set up their network, but be aware that this limits your audience.