I'm not entirely sure if this would work, but it's an idea:
First, fork off a child that is able to change each players object. This process could check (e.g. periodically, once per second or so) that every player-object has the rooms around it loaded and deletes not used rooms again.
Now the main programm should be able to go in whatever direction is allowed (by the room the player is currently in) and just "go" there without having to load anything. Now you could send a signal to the child (or have it check after some time, or both) and the child loads the nine new rooms and forgets the old nine. Then all you'd need is a 9x9x9 array for each player. And if you use only six directions (up, down, right, left, forward, backward) you can use an even smaller array.
That's the idea.. Hope it was of any help ;)
-octo-
--
GED/CC d-- s:- a--- C++(+++) UL+++ P++++$ L++>++++ E--- W+++@ N o? K? w-- O- M-(+) V? !PS !PE !Y PGP+(++) t-- 5 X+ R+(+++) tv+(++) b++@ DI+() D+ G++ e->+++ h!++ r+(++) y+
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.