Zones, size and handling

Started by
3 comments, last by JensB 20 years ago
Multiplayer worlds like EQ and DAoC etc typically have the concept of ''Zones''. How and why it works like it does in EQ, with realtively small zones, that typically don''t hold many players - it is easy how to see how it is designed. But worlds that simulate ''seamlessness'' like DAoC does to some extend, and some newers does even better - how is that accomplished? How does the main server process share out work to child process for managing stuff like player connections, npc interraction and other world events - and how does it keep track on of what to send to each client? Any ideas or theories?
// Jens
Advertisement
Go all the way back to Ultima 4. You load 9 mini-zones, one all around the player in every direction, and the one the player is in.

Then when the player moves zones, just load up new ones in that direction. There''s always a 1-zone buffer around the player, so they never know that they''re actually moving from zone to zone.

The seams are easy, just match up the verticies and you''re set.
I think he was talking about networking, not graphics.

Google for "asheron''s call server software" or "asheron''s call network protocol" and you''ll get some hits. Their mechanism is somewhat similar to the Ultima graphics solution, except you also need to concern yourself with ghost copies of objects during server migration, and other such wonderful things.
enum Bool { True, False, FileNotFound };
aye, I mean (mostly) from a networking perspective.

I did not find anything good on the search you specified, got any links?

I guess the floating window of mini zones kinda make sense, but there is still the problem of determining when to load a new zone, and of course, you do NOT want to transfer the state of 4 or some extra zones to all players, just in case.
// Jens
Why wouldn''t you? It''s likely that players can see into those zones. Thus, players should know what''s in them.

Asheron''s Call uses, I believe, "zones" that are square, and 192 meters across. You can probably see several zones at the same time. In fact, rather than just always loading 4 zones, you should load "all zones within visibility of the player". If you get a good function for determining visibility range, then your game will run better than if you don''t ;-)
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement