Re: [Newbie] Room/Zone limitations from on Tue, Jun 20, 2000 at 07:07:26AM -0500

From: Christian Loth (
Date: 06/23/00


On Tue, Jun 20, 2000 at 07:07:26AM -0500, Patrick Dughi wrote:
> >   A good solution to this is to replace the vnum system with an
> > ip-like system. Just use an unsigned 32-bit integer, and adress
> > the four bit-octets seperately giving you a nice seperation
> > like:
> >   <continent>.<area>.<zone>.<room>
> > This would allow you 255 continents with 255 areas, with
> > 255 zones each having up to 255 rooms, blasting away any
> > limitations.
> >
>         Based on some advice and demonstration from a friend, I've also
> changed the structure of my zones to be based on a binary tree system.
> This allows me to load parts of zones at a time, and keep the rest in
> reserve.  So, if there's a zone which has had no people in it for the last
> 3 weeks of uptime, but has 4 distinct objects which _are_ in use, i can
> just load up those 4 objects, and dismiss the rooms, zone cmmands, mobs,
> shops, and other objects.
>         Rather nice on the memory.

This is a good idea! However...

>         The only downside is that the load _is_ notably slower.  Loading
> up 10K rooms used to take around 2-4 seconds, now takes around 12-15.  The
> process for loading the rooms (and indeed all other parts) is sub-optimal
> though, I should invest some time fixing this.

I think what is most memory consuming about a zone, and takes the
greatest time to load are the descriptions. I think it is wise
to seperate descriptions from the data of a room, and load
them only on demand, keeping them in a description cache, and
kick them out again, when they haven't been looked at for like
5 minutes.

This is especially true, if you go the way I did: I recently implemented
an XML parsing engine, which affects any kind of output (sorry people,
my MUD is not Circle, so there is no patch...). Room descriptions can
have dynamic content, depending on the tags they use. However, the
absolute description of a room can be significantly greater than
the relative one a player actually sees (there can be invisibility
in the roomdescriptions, skill checks, stats checks, randomness, etc.).
Therefore roomdescs are actually way bigger than they seem.

>         Of course, I'm still not done yet.

Anyone ever is? :)

- Chris

Christian Loth
Coder of 'Project Gidayu'
Computer Science Student, University of Dortmund -

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  |

This archive was generated by hypermail 2b30 : 04/10/01 PDT