Files
llamamod/docs/manual/15-build-play.md
T

122 lines
7.2 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.
# Building, problems and play-testing
Before the game can load your level, the editor **builds** it: brushes and meshes become tiles,
textures are packed, objects and waypoints are written, and everything is checked. Building is
fast (a few seconds) and happens in the background, so you can keep working.
## Check for problems
**Level → Check for problems** runs all checks without building. The results appear in the
**Problems** panel:
![The Problems panel after a check](img/obj_problems.jpg)
* **Errors** (red) would break the level. They block **Build** and **Play** until you fix them.
* **Warnings** (yellow) are things that probably do not work as you expect.
* **Info** (blue) are hints.
Double-click a message to select the item it is about (and frame it with **F**). The button in
the panel's toolbar validates again without building.
### What is checked
| Area | Examples | Details |
|---|---|---|
| Level | no player start (error), several player starts, no exit in a new level, no geometry | [Objects](09-objects.md#object-checks) |
| Geometry | tiles outside the grid, tile models over 8000 vertices, overlapping identical tiles, no floor under the player start, no exit floor (16) in the door's cell, small gaps between floors | [Building geometry](06-geometry.md#geometry-checks) |
| Objects | wrong parameter counts, values out of range, missing waypoints, impossible exit targets | [Objects](09-objects.md#object-checks) |
| Waypoints | chains not stored in one piece (with an automatic repair) | [Waypoints](10-waypoints.md#waypoint-checks) |
| Environment | fog too short or too long, missing start zone, teleport targets outside the grid, black or ignored lights | [Environment](12-environment.md#environment-checks) |
| Visibility | the player start in a region that does not draw itself, regions that are never drawn | [Visibility regions](13-visibility.md#visibility-checks) |
| Textures | more than 127 texture pages, textures on missing pages | [Textures](08-textures.md#limits) |
## Build
**Level → Build** (**Ctrl+B**, toolbar **Build**) checks and builds the level. When it is done the
Problems panel shows **Build OK** with the numbers of tiles (and how many came from brushes),
objects and waypoints, the size of the level file and the time it took – plus any warnings. The
status bar keeps the result of the last build; click it to open the Problems panel.
![A successful build](img/geo_build_ok.jpg)
**File → Export level WAD…** builds the level and saves the game file (`.wad`) wherever you like
– for your own experiments; to play or share a level you do not need it.
## Play-testing
**Level → Play** (**F5**, toolbar **Play**) does everything in one go:
1. builds the level,
2. installs a **temporary copy** of it as a level mod (next to the mods you have switched on),
3. prepares the play-test save slot (unlocked up to your level),
4. starts the game **directly in the level** – no logos, no menus, no map.
![The game started straight in the level](img/play_boot.jpg)
While the game runs, the editor says so: the status bar shows a green **Game running: …**
badge and the toolbar's **Play** button turns into **Stop game** (click it to quit the game). Both
go back to normal a moment after the game has ended.
In the game, press **Escape** to quit straight back to the editor. When the game has ended,
LlamaMod switches your normal mod selection back on and deletes the temporary copy – play-tests
do not fill LlamaMod's mod list. While the game runs, the copy shows up in LlamaMod as
"*name* (play-test)" with a blue **temporary play-test** badge.
If the editor is closed before the game, the clean-up happens the next time the editor starts.
To keep a level in LlamaMod, use **Level → Add to LlamaMod…** (see
[Playing without the editor](#playing-without-the-editor)) or switch on **Keep play-tested level
in LlamaMod**.
### Play from the camera position
**Level → Play from camera position** (**Shift+F5**) starts the llama on the ground in the middle
of the view, facing the way the camera looks. Point the view at the spot you want to test – a
difficult jump, the end of a parkour – and press **Shift+F5**.
While you hold **Shift** (or point at **Play from camera position** in the toolbar or the Level
menu), a small **crosshair** marks the middle of the view: **green** means the llama can start
there, **red** means it cannot – the status bar says why.
![The llama starting where the editor camera looked](img/play_from_here.jpg)
The editor checks that there is walkable **collision** at that point: many things that look solid
(tree crowns, roofs, decoration) have none. If there is no floor nearby, it tells you instead of
dropping the llama into the void. The original level's opening fly-by is skipped in this mode.
### Play-test options
| Option (Level menu) | Default | Meaning |
|---|---|---|
| **Play boots straight into the level** | on | Off: the game starts at the main menu with the map cursor on your level (choose *Spiel starten* → slot → Enter on the map); groove.exe is not changed. |
| **Escape quits the play-test** | on | In a play-test the pause key ends the game at once. Off: Escape opens the normal pause menu. |
| **Keep play-tested level in LlamaMod** | off | On: Play installs the level as a normal level mod in the `levels` folder (as **Add to LlamaMod** does) and it stays switched on after the game. |
| Play-test save slot (**Edit → Preferences**) | 3 | The slot the game plays with; it is backed up before it is changed. |
> **Note:** Booting into the level uses the **Boot to level** mod, which adds code to LlamaMod's
> private copy of groove.exe. Some antivirus programs warn about such files – see
> [Troubleshooting](20-troubleshooting.md).
### When something goes wrong
| Message or symptom | What to do |
|---|---|
| "The game is still running" | The level files cannot be replaced while the game runs. Click **Quit game and play** to close it and start the play-test, or quit it yourself. |
| The llama falls through the floor | Look at the collision (**C**); give the floor collision (the brush's collision faces, or a collision material other than 30). |
| The level door does nothing | The door needs **exit floor (16)** in its own cell – use the **Exit** setup of the Objects panel. |
| The game crashes while loading | Run **Check for problems** and fix all errors; keep everything inside the grid; only one player start. |
| Objects are missing in the game | Some objects only appear after an event or a cut-scene; also check the visibility regions. |
More in [Troubleshooting and FAQ](20-troubleshooting.md).
## Playing without the editor
**Level → Add to LlamaMod…** copies the current state of the level into LlamaMod's `levels`
folder as a normal level mod – on the TestLevel chapter chosen in the
[Level settings](14-level-settings.md), or replacing its original chapter. Adding the same
project again updates that mod. To play it the normal way, tick it in LlamaMod's **Levels**
category, click **Apply** and **Play**. New levels are on the world-9 (TestLevel) map – unlock
it in **Save games → Unlock TestLevel (world 9)**; edited original levels replace their chapter.
A level you no longer want in LlamaMod is removed with **Remove…** on its card
(see [Mods](18-mods.md#level-mods)).