Comment on How to set up a decentralized game/chat server
LodeMike@lemmy.today 2 days ago
Chat server is easy: Matrix (actually multiple servers but same effect)
Game server is very hard. The game has to be made for it or you have to be very good at network application engineering to hack it in.
mnemonicmonkeys@sh.itjust.works 1 day ago
Just for clarity, do you mean the game has to be made for self-hosted servers, or do you mean it has to be made to handle self-hosted servers across a cluster?
The former is already a thing with Minecraft, 7 Days to Die, etc. The latter… Yeah I’d have to do digging on that
LodeMike@lemmy.today 1 day ago
Actually I can provide a little more detail. Check out how Matrix handles event graph resolution/desync. It’s why messages sometimes come in out of order. This is a fundamental problem with decentralization: authority breakdown. The homesever in Matrix is considered the authority for the clients, but within the Federation itself there is no true authoritative party or event history. If a server goes off federation for a while, a room will split, and once it re-federates it and other servers will have different event graphs, assuming something happened in those rooms in the meantime for both the defederated server and federated server(s).
Basically: videogames assume that within a certain amount of latency the server’s state is permanent and authoritative. Federation breakdowns even for 500ms can destroy a games running state.
mnemonicmonkeys@sh.itjust.works 1 day ago
Thank you for the detailed explanation
It sounds like my friends and I are better off just having 1 primary server running everything, and pushing backups to 1 or 2 other servers that can be spun up if/when things go wrong with the primary server.
LodeMike@lemmy.today 19 hours ago
Yeah probably.
Even big Minecraft servers are just many servers with load ballancers. The game has server redirects built in for this reason.
LodeMike@lemmy.today 1 day ago
The game has to be made for distributed servers. The game software expects that everything the server says is authorative, including for rollback. Multiple servers introduces an extra source of latency and it’s just so hard to deal with.
I don’t know too much about this.