> 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.
>
Sounds good - i did/am in the process of doing something similar,
only i just have a simple zone.room divison. I figure that the highest #
of individual rooms in a zone would be around 1000, and based on the
average speed of development is about 1 good, proofed, integrated,
attached zone per builder per 2-3 month period (unless pushed), i doubt
the zone count will ever go over 1000. Not that you couldn't have zone
50228328382 with a room 2392939292, but that it just isn't required for
the most part. I'm not limited to 255 obviously.
The one thing I did change that was important though was how
rooms/zones/objs/mobs/etc were saved. Now everything is saved immediately
after editing, on a one by one basis. That is, if you do happen to have a
large number of objects (say 30K) in one zone, and you edit #22033, you're
only going to incur the penalty for one object save, as opposed to the
entire obj file for a zone.
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.
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.
Of course, I'm still not done yet.
PjD
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT