# I7 : realistic max number of rooms?

Just tried 512 rooms with doors between them - just how many rooms can inform be expected to handle?

(I was gonna post example code, but would you imagine - no more than 60000 characters are allowed!)

Possibly a more relevant question is, How many rooms can your players be expected to handle?

You’ll have to start turning up memory use settings, but that’s easy.

I think the compiler starts getting slow at a few thousand rooms. (The compile process, not the game.) Or maybe it was a few tens of thousands. Someone posed this as a challenge a few years ago and I didn’t find a hard upper limit.

The performance problems on LOOK that I mentioned in the other thread are about total number of things, not rooms. (But doors are things, of course.)

Okay! I’m just playing around with some ‘open world’ where the player digs passages in a mine.

So with seven rooms in each xyz cordinate:
7x7x7 = 343 rooms
The player starts off in the center. Then he will be able to dig out 3 rooms in either direction, before reaching the edge.

By the way - any way to see if a door is east of the location? (that is, if it is placed on the east wall)
EDIT: Figure it out: direction of the-door from the location

You could implement these 343 rooms with one Inform room using a dynamic table of room connections that have been dug. It will be more difficult if you allow the player to drop items in the mine, but not terribly hard.

I interpreted this as “is any door east of the location” rather than “is a particular door east of the location”. Since I already wrote it before I saw your edit:

``````The wooden door is a door. It is east of Room1 and west of Room2.
The iron door is a door. It is above Room2 and below Room3.
Room4 is east of Room2.

To decide whether there's a door to the (D - direction):
if the door D of the location is a door, decide yes;
otherwise decide no.

Door detecting is an action out of world applying to nothing.
Understand "doors" as door detecting.

Carry out door detecting:
let doors found be false;
repeat with D running through directions:
if there's a door to the D:
now doors found is true;
say "There's a door [if D is up]above [us][else if D is down]below [us][else]to the [D][end if].";
if doors found is false:
say "There are no doors here."

Test me with "doors / e / doors / e / doors / w / u / doors".``````

Thanks! this is really handy - and just at the edge of what I’m cabable of understanding at my current level!