Files
llamamod/docs/guide/design-rules.md
T

49 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Design rules
The numbers and rules that matter when you design a level for this engine. Background and sources:
[Engine facts and limits](../reference/engine-limits.md).
## Sizes to design with
| | |
|---|---|
| one grid cell | 1 unit |
| llama | 0.6 tall, walks 1.1 units/s |
| jump up | ≤ 0.35 (0.5 fails) |
| jump across, with a run-up | ~1.3 (from standing much less) |
| easy parkour | gaps 0.3 with +0.2 height, platforms ≥ 1.5 long |
| steps without jumping | none – use slopes or walls without collision |
| draw distance | the fog end of the zone: 8–16 cells in the originals |
| objects visible | within ~12.5 units of the llama |
![The Test World's gallery: every figure of the game on a pedestal](../img/testworld-gallery.jpg)
## Rules that keep the level working
1. **One player start**, with nothing solid right behind the llama (start camera).
2. **Exit = LevelDoor + floor with collision material 16 in the same cell.** Target (1, 9,
chapter) in TestLevel – never (7, 7, 7).
3. **A death floor or death plane** under every place the llama can fall to.
4. **A checkpoint** before every hard part.
5. **TestLevel chapter 1 or 32–49** for new levels.
6. **Guards and box walkers need their waypoint boxes** (and guards an event bit someone sets),
or the game removes them.
7. **Every area must be visible from where the camera is**: with visibility regions, check the
masks (*Check for problems* reports regions nothing can see).
8. **Stay within the budget**: 16 MB level memory, 127 texture pages, 128 sounds – the import
preview and *Check for problems* show where you are.
The editor and both level builders enforce the data-level rules (tiles inside the grid, vertex
colours, type fields, collision cells) automatically. *Check for problems* reports the rest.
## Good habits
* **Play-test often** (F5). The engine is unforgiving and a small change can stop the exit or
hide an area.
* **Look at the originals.** Open an original level in the editor and see how it builds doors,
cameras and enemy paths; the [debug view mod](../tools.md#debug-view) shows collision and
invisible objects in the running game.
* **Keep levels compact.** Short sight lines hide the draw distance and keep the frame rate up.
* **Copy numbers** (speeds, parameters, waypoint fields) from original objects that already do
what you want.