3 ms·
All those questions are answered on github in what probably is the smallest (as a feature, not a flaw) MMO system codebase in existence. Short answer is I made
by bullen 7y ago
All those questions are answered on github in what probably is the smallest (as a feature, not a flaw) MMO system codebase in existence. Short answer is I made my own HTTP server from scratch with distributed database over HTTP and everything runs on top of that. Sharding on separate machines is not interesting because the whole point is to play together, no matter how; you always want to be connected somehow. Larger teams separate the services and it becomes really complex. I want to be able to develop and maintain a massive MMO on my own so I had to improvise.
That said, I made a subreddit for the topic: https://www.reddit.com/r/mmodev/ https://www.reddit.com/r/mmodev/ it's kinda empty now but hopefully people will contribute eventually.
- throwaway894345 7y agoLink to github?
- bullen 7y agohttps://github.com/tinspin/fuse https://github.com/tinspin/fuse
- iamcreasy 7y agoI am under the impression that you write on the database using HTTP get/post methods. Am I correct? Is it feasible for real-time games?
- bullen 7y agoPersistence often uses much slower methods, one nice feature of my database is that it is distributed async. so I send all database queries to all regions which means I get backup and players can play anywhere without transferring data first. I also use HTTP for real-time movement, you can do that if you strip all non-mandatory headers and use "Transfer-Encoding: Chunked" for the "Pull" socket. I use two sockets per client: "Push" (Client <-> Server) and "Pull" (Client <- Server). HTTP uses TCP and that will inevitably lead you to the old TCP vs. UDP threads. My take on it is that TCP works fine for real-time action games today if you use event based protocols instead of tick based!