5.2 KiB
Visibility regions
The game was written for PCs of the year 2000. To keep the frame rate up it does not draw the whole level all the time: the level grid is divided into up to 32 visibility regions, and for each region a mask says which regions can be seen from there. In the Village, for example, the inside of a house is not drawn while you stand outside.
New levels start with one region where everything is visible – fine for small levels. For big levels, or when you change an original level so that new parts become visible, you edit the regions here.
How the engine decides what to draw
- The game takes the grid cell the camera is in and looks up that cell's region.
- The region's mask has one bit per region. Tiles and objects in cells whose region bit is set are drawn; all others are skipped.
- A mask of 0 means "draw everything". When the camera is outside the grid, everything is drawn as well.
So a row in the mask table answers "standing here, what do I see?". A region must always see itself – otherwise the ground under the llama and the llama itself would vanish.
Note: it is the camera's cell that counts, not the llama's. The camera hangs a few cells behind the player, so give neighbouring regions some overlap.
Visibility panel
Level → Visibility regions opens the Visibility panel (right dock).
Mask matrix
A 32 × 32 grid of check cells: the row is the region the camera is in, the column is the region that is drawn (header cam↓ draw→). Click a cell to toggle it, drag to paint several. Regions that no cell uses are dimmed. Clicking a row label picks that region (for the preview and the region brush). A row without any bit means "everything" – the engine rule above.
Hovering a row shows how many cells the region has, its own triangles and how many triangles the game draws with the camera there.
Masks
| Control | What it does |
|---|---|
| Symmetric | While on, toggling A sees B also sets B sees A. |
| All visible | Every region sees every region. |
| Self only | Every region sees only itself (a starting point for hand-made masks). |
| Make symmetric | If A sees B, B now also sees A. |
| Auto-generate… | Computes regions and masks from the level layout (see below). |
| Paint regions | Starts the region brush in the viewport. |
Preview
Show hides in the viewport what the game would not draw:
| Setting | Shows |
|---|---|
| Off (draw everything) | The normal editor view. |
| Follow the camera | What the game draws for the region the editor camera is in – fly around and watch parts appear and disappear. |
| From region n | What the game draws for a camera in region n. |
The preview hides tiles and objects through the editor's hidden flags and restores exactly the items it hid; things you hid yourself stay hidden. While it is active they show as hidden in the Outliner.
Statistics
The bottom of the panel shows how many regions are in use and the triangles drawn per camera region (maximum and mean). A warning appears when one region draws a lot – the original levels stay well below 30 000 triangles.
Auto-generate
Auto-generate… opens Auto-generate visibility regions:
| Option | Meaning |
|---|---|
| Layout | One region, everything visible; Rectangular blocks, visible within a distance; Connected areas (islands / rooms), visible within a distance (default – flood-fills connected floors, at most 32 areas). |
| Visible within (cells) | Regions closer than this see each other. The fog end distance of the level is a good value (default 12). |
It replaces the region of every cell and all masks in one undo step. The result line names the highest number of triangles drawn from one region; if it is heavy for the original engine it suggests a smaller distance or more, smaller areas.
Tip: more regions means less to draw, but areas can pop in when the camera crosses a border. Always check the result with Follow the camera and in a play-test.
Paint regions tool
The Paint regions tool sets the region of grid cells with a square brush. It switches the Visibility regions layer on, which colours every cell by its region.
| Option | Meaning |
|---|---|
| Region | The region to paint (colour swatches, Region 0–31). |
| Brush | 1 × 1, 3 × 3, 5 × 5, 9 × 9 or 17 × 17 cells. |
| Ctrl+click | Picks the region of a cell. |
The masks are edited in the Visibility panel. Cells added by growing the grid get region 0.
Visibility checks
Building and Level → Check for problems report:
- error – the player start is in a region whose mask does not include the region itself (the ground and the llama would be invisible);
- warning – a region whose geometry is never visible from any region;
- info – a region that draws more than 30 000 triangles (heavy for the original engine; the fog distance limits it further).
The Village (96 × 96 cells) uses 22 of the 32 regions.

