-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Server Architecture #486
Comments
as I'm researching and trying stuff out i'll try to update this so we won't be needing a patch server of course, as the game is online. the proxy servers are the web socket servers, I've been experimenting and working on using node clustering to generate several of those. then I'm thinking we should use RabbitMQ to hook up all the "back end" servers together. I think there should be a separate chat server, and then I'm thinking of splitting out the world octree into separate processes as well, with a "master" world server that handles said octree management. also the sync server can prolly commit to the db once a minute? maybe longer... oh and the website has to get split out for sure, been thinking we might be better off using https://nodebb.org/ |
Very nice article! I do have some questions though:
Woo, I'm quite excited! This is truly scalable! |
I imagine that we'd check the client version when they connect. If they are going to hack the exe (which I guess if we are making the client open source, should be easy) then there is probably nothing we can do about it. I think that we should create just a single world, no realms or shards. There could still be zones and instances however. I think that the world server would keep a list of all "units" in the entire world, but mostly act as a router to the various game servers. The game servers would only need to loop through a small number of units (prolly spatially organized?) and then communicate changes back to the world server. I think kind of how the old worldHandler worked, except splitting out the cells into processes instead. (this is theory that I'm still trying to wrap my head around for implementation myself :) ) I think the sync server would be pretty much reading everything from the db at the start, then keeping state in memory, and just writing to the db every few minutes. Instead of every change. Yeah I think that was the version of amqp (the default protocol for RabbitMQ) that I was looking at. I don't think we need separate repos for the server, even tho the items are separated, they'll still all be working together as a cohesive "server" unit (hopefully). |
update server architecture to be similar to this, by splitting into these processes hopefully we can get lag down and support a few hundred players
http://www.mmorpg.com/blogs/FaceOfMankind/052013/25185_A-Journey-Into-MMO-Server-Architecture
The text was updated successfully, but these errors were encountered: