What are you guys using to partition areas into sync areas based on players? i need to partition my players.. so that basically i prepare sync data for these areas and just pust the updates to people in one areas, now what are the most popular approaches?
Thanks.
sync area partitioning
Started by Delfi, Sep 30 2012 10:01 AM
5 replies to this topic
Sponsor:
#2 Moderators - Reputation: 3371
Posted 30 September 2012 - 12:17 PM
What you call "sync areas," most games call "zones."
Another popular approach (for MMOs) is to send updates for players that are further away, but still visible, less often.
If you have a large outdoors area, you may want to slice it into blocks, and send update data for all neighboring blocks plus the block the player is in.
Another popular approach (for MMOs) is to send updates for players that are further away, but still visible, less often.
If you have a large outdoors area, you may want to slice it into blocks, and send update data for all neighboring blocks plus the block the player is in.
enum Bool { True, False, FileNotFound };
#3 Members - Reputation: 106
Posted 03 October 2012 - 02:18 PM
I asked for a suggestion on which algorythm to use to partition the world into these zones based on where players are, i understand the concept but not what algorythm is generally used to calculate these zones.
Projects: Top Down City: http://mathpudding.com/
#4 Moderators - Reputation: 3371
Posted 03 October 2012 - 06:03 PM
For continuous worlds: Grids, hash grids, or quad trees.
Or, if you have separate zones, just say: "One server process == one level geometry == one area." Worked for EverQuest, and for City of Heroes, and a lot of other games.
Or, if you have separate zones, just say: "One server process == one level geometry == one area." Worked for EverQuest, and for City of Heroes, and a lot of other games.
enum Bool { True, False, FileNotFound };
#5 Members - Reputation: 106
Posted 07 October 2012 - 03:38 PM
Has anyone considered a implementation of this? the graphics look promising:
http://www.sciencedirect.com/science/article/pii/S0305054801000338
http://www.sciencedirect.com/science/article/pii/S0305054801000338
Projects: Top Down City: http://mathpudding.com/
#6 Moderators - Reputation: 3371
Posted 07 October 2012 - 10:04 PM
Yes, I did a lot of work on Voroni based partitioning. It's a mechanism that works OK for statically partitioned maps, but any attempt to build reactive systems (that "move capacity") based on that mechanism is unlikely to be very successful. The reason is that the Voroni cells change shape in not entirely local ways as you introduce or move nodes around (as each cell depends on all the other cells around it.)
Also, finding the cell for a particular point is O(sqrt(num-nodes)) in Voronoi maps, but O(log(num-nodes)) in quad trees, and O(1) for grids and hash grids.
Also, finding the cell for a particular point is O(sqrt(num-nodes)) in Voronoi maps, but O(log(num-nodes)) in quad trees, and O(1) for grids and hash grids.
enum Bool { True, False, FileNotFound };






