105 lines
6.6 KiB
Markdown
105 lines
6.6 KiB
Markdown
# Introduction and concepts
|
||
|
||
The **LlamaMod level editor** is a 3D editor for the levels of *The Emperor's New Groove* (PC,
|
||
2000, Argonaut's Croc 2 engine; German: *Ein Königreich für ein Lama*). It belongs to
|
||
**LlamaMod**, a mod manager for the same game: every level you make is installed and played as a
|
||
LlamaMod mod, and LlamaMod also brings ready-made mods such as a free camera, a randomizer or a
|
||
mirror mode (see [LlamaMod mods](18-mods.md)).
|
||
|
||
With the editor you can
|
||
|
||
* build **new levels** from blocks, ramps, stairs, water, imported 3D models and the game's own
|
||
tile models, place coins, enemies, checkpoints and the exit, and play them in the game;
|
||
* **change the original levels** – move, add or remove anything, repaint textures, change fog,
|
||
music and light;
|
||
* **share** your work as a small `.llamalevel` file that contains no game data, so anyone with
|
||
the game can play it.
|
||
|
||
> **Note:** The editor never changes your installed game or your CD. LlamaMod works on a private
|
||
> copy of the game data and builds every level from *your own copy* of the game.
|
||
|
||
## What a level is made of
|
||
|
||
The game stores each level in one `.wad` file. The editor shows its parts as a tree in the
|
||
**Outliner** and as properties in the **Inspector**:
|
||
|
||
| Part | What it is |
|
||
|---|---|
|
||
| **Grid and cells** | A level is a rectangular grid of square **cells**. One cell is one grid square in the viewport (4096 game units); the llama is about 0.6 cells tall. Collision is looked up per cell. |
|
||
| **Tiles** | The building blocks of the original levels: a *tile model* placed in one cell, turned in steps about the vertical axis. A model can be used by many tiles. |
|
||
| **Tile models** | The 3D models of the level's tile set with their faces, textures and collision polygons. |
|
||
| **Brushes** | Editor shapes – floors, blocks, platforms, ramps, stairs, walls, round platforms, fences, trees, water, death planes and imported meshes. They have any size and rotation; when the level is built they are cut into 1×1-cell tiles automatically. See [Building geometry](06-geometry.md). |
|
||
| **Objects** | Everything with behaviour: the llama (player start), coins, food, checkpoints, the exit door, enemies, villagers, moving platforms, cameras and triggers. The game calls them *strats* (small scripts). See [Objects](09-objects.md). |
|
||
| **Waypoints** | Chains of points that belong to objects: patrol paths of enemies, camera paths, respawn points, the two corners of trigger boxes. See [Waypoints and paths](10-waypoints.md). |
|
||
| **Zones** | Environment and teleport entries: fog, sky colour, ambient light and music of an area, and the doors that move the player to another place. See [Environment](12-environment.md). |
|
||
| **Lights** | Directional and point lights that light the object models. Tiles get their light from baked vertex colours. |
|
||
| **Visibility regions** | Which parts of the level are drawn from where – the engine's way to stay fast. See [Visibility regions](13-visibility.md). |
|
||
| **Textures** | 256×256 texture pages and the texture rectangles on them, with optional animations. See [Textures](08-textures.md). |
|
||
| **Level settings** | Name, author, grid size, death plane height, feature flags and the TestLevel chapter. See [Level settings](14-level-settings.md). |
|
||
|
||
## Collision materials
|
||
|
||
Every collision polygon has a **material** number that tells the game what happens when the llama
|
||
touches it. The important ones:
|
||
|
||
| Material | Meaning |
|
||
|---|---|
|
||
| **0** | normal ground and walls |
|
||
| **16** | **exit floor** – the level door (LevelDoor object) ends the level when the llama stands on it in the door's cell |
|
||
| **30** | **no floor / death** – the llama falls, loses a life and respawns at the last checkpoint |
|
||
| 17, 18 | selective collision (used by a level feature flag) |
|
||
| others | special surfaces whose meaning is not known yet |
|
||
|
||
Press **C** in the editor to see collision coloured by material. The **Collision** tool paints
|
||
materials (see [Building geometry](06-geometry.md)).
|
||
|
||
## Coordinates
|
||
|
||
Positions are given in **cells**: **x** grows to the east, **y** is the height, **z** is the grid
|
||
row (it grows to the south). The status bar shows the position under the mouse pointer and the
|
||
grid cell. Angles are in degrees; an object with yaw 0° faces +z.
|
||
|
||
> **Engine limit:** Tiles and objects can only turn about the vertical axis. Brushes can turn
|
||
> freely – the build converts them into tiles.
|
||
|
||
## Base levels
|
||
|
||
Object types, their models and scripts, sounds, the sky and the default textures are not
|
||
something the editor can create from nothing. Every project therefore has a **base level**: one of
|
||
the original levels that provides these things. A new level built on *Village chapter 1* can use
|
||
every object that exists in that chapter – coins, checkpoints, villagers, the exit door and so on.
|
||
Choose a base whose objects and look you want. The base level is fixed when the project is
|
||
created. Object types of other levels can be added later with **Assets → All worlds**
|
||
([Importing objects from other worlds](09-objects.md#importing-objects-from-other-worlds)).
|
||
|
||
## Worlds, chapters and the TestLevel
|
||
|
||
The game has eight worlds – **Village, Jungle at Night, River, Jungle by Day, Mountain, City,
|
||
Catacombs, Lab** – each with several chapters. A ninth, hidden world called **TestLevel** has 49
|
||
empty chapter slots; 19 of them (1 and 32–49) are safe to use. New levels go into one of these TestLevel chapters, so they never replace an
|
||
original level: each project gets its own chapter (shown in the New level dialog and in
|
||
[Level settings](14-level-settings.md)). In the game they appear on the world-9 map as
|
||
"TestLevel – chapter *n*".
|
||
|
||
Edited original levels are different: they replace that original chapter while their mod is
|
||
switched on in LlamaMod.
|
||
|
||
## Projects
|
||
|
||
The editor saves **projects** as `.llamalevel` files. A project stores only *your changes* to the
|
||
base level plus your own imported meshes and textures – never the game's files. That keeps
|
||
projects small (often a few kilobytes) and shareable. When a level is built, the editor reads the
|
||
base level from your game copy and applies the changes; building the same project with the same
|
||
game always gives the same result.
|
||
|
||
LlamaMod lists every project in its **levels** folder as a mod in the **Levels** category. Tick it
|
||
and press **Play** to play the level – or press **F5** in the editor. See
|
||
[Sharing levels](17-sharing.md).
|
||
|
||
## What you need
|
||
|
||
* The PC game (CD or ISO image): the German or the English version (see [FAQ](20-troubleshooting.md#faq)).
|
||
* LlamaMod – see [Installing LlamaMod](02-installing.md).
|
||
* A graphics card with **OpenGL 3.3** for the editor's 3D view.
|
||
* On Linux, Wine to run the game (LlamaMod sets it up).
|