MMPOG Networking concept - thoughts?
I have some ideas for the networking for an MMPOG. I just wanted to explain the basics and see if you think they''re viable or just plain un-realistic.
The world will be split into zones, each sone will be managed by a Zone Manager (ZM). Each ZM will have a number of associated Zone Slaves (ZS), and will also have a number of clients that are in that zone.
Zone Slaves are connected to ZMs, and clients connect to the Zone Slaves. Each client is controlled by one ZS, determined by the ZM depending on each Zone Slave''s load and connection quality.
Essentially processing of object updates in zones is off-loaded to the slaves. So if a client creates say an arrow, the ZS that controls the client creates the arrow object (C++ object here) and instructs the clients and Zone Slaves to create a copy of this object.
Then the ZS updates the arrow object each time it performs a timeUpdate and sends out the updated object (not the whole object) to the clients.
In the meantime, the clients and other Zone Slaves update the arrow according to a prediction of what they know about the arrow. When they receive the updated arrow object, they update their local copy and interpolate a new position from a combination of their known object data and the updated object data received from the ZS.
When the client reaches the edge of a zone, the Zone Manager for the neighbouring zone instructs one of its Zone Slaves to take control of the client. At which point the new Zone Slave sends copies of the objects in that zone to the client.
Now, say that arrow is now in this new neighbouring zone, a Zone Slave is assigned to take control of it. The Zone Slave sends copies of the arrow object to the clients and Zone Slaves in the zone, and sends subsequent updates out.
I should mention that because Zone Slaves are all in the same zone, they all send each other updates of the dynamic objects and clients that they control. This is where I think my concept fails; this would amount to a huge amount of data being transferred across the network at high frequency, and would probably not work.
So any comments or suggestions, or am I completely way off base with my ideas?!
Thanks!
---------------------http://www.stodge.net
I take it your Zone Slaves will be event based?
Just a bit worried about your ''zones''. If there is no physical barrier between your zones that means I can see and even interact with players in another zone. That infers that Zone A needs a list of what is going on near its borders with adjoining zones.
Just a bit worried about your ''zones''. If there is no physical barrier between your zones that means I can see and even interact with players in another zone. That infers that Zone A needs a list of what is going on near its borders with adjoining zones.
D.V.Carpe Diem
quote:
Original post by DeltaVee
I take it your Zone Slaves will be event based?
Just a bit worried about your ''zones''. If there is no physical barrier between your zones that means I can see and even interact with players in another zone. That infers that Zone A needs a list of what is going on near its borders with adjoining zones.
I''m not sure what you mean by zone slaves.
Yes, you''re right. Zone A does need a list of what''s happening near its borders. I posted a question on this elsewhere (in the Game Dev forum I believe).
This is another way in which the idea falls apart. I would need a decent method of sharing data between zones (Zone Slaves and Clients).
---------------------http://www.stodge.net
quote:
Original post by stodge
I'm not sure what you mean by zone slaves.
Would Zone Slaves be used as a form of proxy whenever a player does something that can or may affect the environment, i.e. shoot an arrow or swing a blade?
[edited by - DeltaVee on October 30, 2002 1:47:05 PM]
D.V.Carpe Diem
If I understand you correctly, yes Zone Slaves can create objects, such as arrows, and also calculate their movement and interaction with the environment.
---------------------http://www.stodge.net
October 30, 2002 12:44 PM
I''ve had nearly the same exact idea about splitting up the load like you have. The same problems that your thinking have been plagueing my design as well though. In addition to your concerns about having alot of server to server transfer there is also the fact that by copying every player object in all the zone slaves to all the other''s in that zone your basically doing as much processing as necessary if you were to only have 1 zone slave instead of multiple since all the information from every player in that zone needs to be on each zone slave.(wow that was a long sentence lol)
Just something to think about...
I''m curious to hear anybody''s thoughts on getting around these design flaws.
Synth0id
Just something to think about...
I''m curious to hear anybody''s thoughts on getting around these design flaws.
Synth0id
October 30, 2002 12:46 PM
Interesting. Why the zone slaves, though. Looks to me like you''re just replicating CPU effort (object movement predictions) across multiple machines, and increasing internal network traffic besides.
What''s the benefit, here?
What''s the benefit, here?
quote:
Original post by Anonymous Poster
Interesting. Why the zone slaves, though. Looks to me like you''re just replicating CPU effort (object movement predictions) across multiple machines, and increasing internal network traffic besides.
What''s the benefit, here?
I was trying to find a way to make the system scale better, for the times when players congregate into a single zone.
---------------------http://www.stodge.net
quote:
Original post by Anonymous Poster
I''ve had nearly the same exact idea about splitting up the load like you have. The same problems that your thinking have been plagueing my design as well though. In addition to your concerns about having alot of server to server transfer there is also the fact that by copying every player object in all the zone slaves to all the other''s in that zone your basically doing as much processing as necessary if you were to only have 1 zone slave instead of multiple since all the information from every player in that zone needs to be on each zone slave.(wow that was a long sentence lol)
Just something to think about...
I''m curious to hear anybody''s thoughts on getting around these design flaws.
Synth0id
If you only want to have one Zone Slave, then there''s no need for Zone Slaves at all; rather, just use Zone Managers. I''ve considered that as well.
---------------------http://www.stodge.net
October 30, 2002 01:27 PM
Yeah...but then you run into the problem of not being able to load balance the server if there is only one zone server so then that pretty much negates doing it that way too ![](sad.gif)
How do the professional MMOG net engines do it? There''s gotta be a way we aren''t thinking of.
Synth0id
![](sad.gif)
How do the professional MMOG net engines do it? There''s gotta be a way we aren''t thinking of.
Synth0id
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement