Next: , Previous: , Up: Level editor   [Contents][Index]


6.3 Room: E>R

The layout of rooms disposition and adjacency in a level is given by room linking. For any given room there are four directions of linking: left, right, above and below.

Room linking: room A is linked to room B from direction D, if (and only if) exiting room A from direction D enters room B from the opposite direction.

Notice that the only constraint put on links is that they must be well defined, that is to say that every link points to one (and only one) existing room. Such wide definition allows for a number of counter-intuitive room linking arrangements. Some noteworthy examples are:

MININIM officially supports all these room linking arrangement features in the sense of providing robust physics and rendering behavior in such circumstances.44 In a sense this is an intrinsic property of the engine, since by convention room 0, which is usually linked to itself in all direction and filled with walls, is used to delimit rooms that would otherwise link recursively to other rooms ad infinitum in order to replicate the common euclidean room linking layout.45

In order to cope with some of the aforementioned link irregularities a few linking policies may be enforced. Keep in mind that they are not applied when linking to room 0.

Reciprocal link: a link from room A to room B from direction D is reciprocal, if (and only if) there is a link from room B to room A from the opposite direction.

Locally unique link: a link from room A to room B from direction D is locally unique, if (and only if) there is no other link from room A to room B from a different direction.

Globally unique link: a link from room A to room B from direction D is globally unique, if (and only if) there is no other room linking to room B from the same direction.

This non-terminal command has sub-commands for handling room linking, room constructions as a whole and navigating through rooms.

R>JLSXARDHCP

Room 0 links are never modified implicitly (not even by linking policies), and can only be changed by explicitly using the room linking command (see Room linking: E>RL).

There are complementary commands that can be used to navigate through rooms by linkage and query the linking of the current room and its surroundings. See Level navigation. As they are available as direct alphabetic key bindings, the user should disable the level editor temporarily before being able to invoke them. That shouldn’t be a problem, though, as the menu system persistence allows for fast alternation between these modes. Alternatively, the user can navigate through linked rooms while the mouse selection is active by using the mouse wheels. See Mouse selection.


Footnotes

(44)

The original game levels don’t use such features which are indiscriminately referred to as broken links. Although many custom legacy levels make use of them, it’s safe to say that they are not completely supported by the original engine, as some arrangements like a room linked to itself from below could crash the game.

(45)

In the original game there is no actual room 0, so links pointing to it were in fact pointing to nowhere. MININIM has an actual room 0, because of the requirement of all links being defined. That room is usually built in such a way that linking to it has virtually the same effect of linking to nowhere in the original game. However that’s not a strict requirement, and room 0 can be treated as a common room by native levels.


Next: Kid: E>K, Previous: Event: E>E, Up: Level editor   [Contents][Index]