[MUD-Dev] Architecture (Cell Rebalancing)

Peter Peter
Thu Jul 3 00:03:06 CEST 2003


<Daniel.Harman at barclayscapital.com> wrote:

> I know it will sound like I'm plugging this book as I mentioned it
> in another thread, but it does discuss architecture issues like
> this so you may be interested ['Massively Multi-player Game
> Programming',

we shall see, i ordered it right now. books from Amazon UK are
around 30% cheaper than in local store here in Sweden.  But i have
high hopes for the "Practical Grid Computing for Massively
Multiplayer Games" which shall start selling in september...

> Anyway, I'm not sure from your componentisation what will be the
> controlling process? Where is the main loop that controls game
> time?  Presumably it would be the Spatial Manager as that's the
> only part that has sufficient knowledge of what is within
> interactive range of other objects? Except that your world manager
> handles object interaction...

no, the Spatial Manager is just a spatial database, with some heavy
caching, organised in array to share the load.  The central unit
will be the World Manager, (i called it Cell Manager before, but now
i have no cells).  There will probably be (beside many others) some
extra module - Event Manager. I am not yet sure about this, but the
event manager would manage the event queue, the timing of that and
the running of events. (remote object invocation, perhaps).  The
Spatial Manager itself has the knowledge, but must be queried for it
first.

> That distinction between world manager and spatial manager strikes
> me as likely to cause problems. Your game is likely to be making
> an awful lot of spatial queries, so you don't really want it being
> in a different process to the world manager.

yes, but with this design i dropped completely the need of cell
rebalancing and the need of dedicating of some instances of
WorldManager to some part of the process (geographicaly).  That part
will be definitively mostly loaded and will need great care at
design.

> Furthermore it looks like you are discarding with the idea of
> zones here?  Not sure that is a direction I'd choose to pursue as
> it makes your spatial queries potentially much more expensive?

i can, and probably will keep the zones - but in another form. the
spatial managers will be probably serving different zones.

> objects in neighbouring zones.  That's where the problems start to
> occur. One solution proposed in the aforementioned book is to have
> a border area that exists in both zones - pretty ugly and hard to
> syncronise etc. An option I've considered is to have very small
> zones, smaller than the visual/weapons range of the players, and
> to

probably zones will be axis aligned rectangles, so it will be easy
to tell that for some query it has to be jointly run on more spatial
managers. the results are then joined and you will get only one
result.

> The other nice affect of this approach is that it solves another
> problem with transitional border areas. What happens if an object
> is larger than the zone border? i.e. a wopping great dragon, which
> zone is it officially in if it could be said to be in either. With
> the

good question, that will still be problem in my design.  maybe i
will drop the idea of zones alltogether :) and have just pool of
spatial managers serving each the whole universe. by that design,
all servers (when spatial managers will get mapped to HW) will get
loaded evenly, and will share resources evenly.

> Anyway hope I've made some sense ;)

you did :)

but i am still not that far. i am currently only on the very highest
level.  Then will i work around the central issues - the World
Manager, silently supposing that the Database/Spatial Manager will
get designed later on the assumptions i made now. and that is: don't
differentiate the data too much on game logic but on the server load
(so that i won't end having one server serving zone with some city
and which is 100% loaded all the time, and some other serer serving
some wilderness, never seeing more than 30% load. until some local
wizard will organise a big party there and then the wilderness
server will get 100% load and the city 30%...  If any of the servers
will show more that the "Planning Load" (70%, for instance) in the
"Busy Hour", a server should be added.
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list