Login or Register
Mesetts Logo

Expansion Manager - Online Manual


It is advisable to bookmark this page and the Dreamlord Game manual for a quick reference of the game world.

Overview

The Expansion Manager is the tool that you will use to create and destroy objects in the dream world.

It uses the same mechanics built into the game which makes it very easy to create levels.
Creating a level feels just like playing it!

Before anything else, key ENTER toggles the mouse cursor on and off. While the mouse is active, the camera will remain locked.

One more thing to mention is that you can move all GUI elements using the Plus sign next to their name. Click and hold the Left Mouse Button over the (+)Plus sign and move the mouse around.

Here you will find information about

  • The movement
  • Creation and manipulation of objects
  • Creation and manipulation of levels
  • Creation and management of Expansion packs
  • Use of events
  • custom subtitles/sounds and models

The movement

You can move in the Expansion manager the same way you move into the game while playing.

Apart from that there are a few more buttons to help you navigate the levels quickly:

  • Pressing SHIFT or CTRL while jumping will make you jump higher.
  • With Q key you can teleport to an object.
  • (you will learn more on selecting an object - in "Manipulation of objects" section)
    If you havent selected an object and you are not aiming at an object you will teleport to your last position before a jump.
    If you have selected an object and you are not aiming at another object you will teleport to the selected object.
    If you are aiming at an object, pressing Q will teleport you to that object.

World coordinates

This is the first thing you have to learn. And its simple. The unit of measurement is called a quant. It is like a centimeter or an inch.
For example, the regular column in the game is 64 quants in diameter. The smaller column is 32 quants in diameter.
There are three dimensions in the game world called X,Y and Z. These represent three directions, for example Forward/Backward, Left/Right and Up/Down.

It doesnt really matter how they are called, but it could make it easier to understand the concept, if you are new to game coordinates.

Dont worry if you cant understand the world coordinates yet, it will become a lot easier once you start moving objects in the game world.

Using those coordinates, you can fine-tune the object positions and locations in the game.
The default start location is X=0, Y=0 and Z=0, and you are facing Pan=0 (wich is along the Y=0 line if you can imagine it)

Creation of objects

Using the number keys you can create different objects, as indicated in the list of objects with numbers attached on the left side of the screen.

You can access more objects by pressing CTRL or SHIFT. This will change the list of objects with other objects (like a different page of objects).
Then, press a number to create the corresponding object.

All objects will be created about 3 meters in front of you. It is a safe distance to jump on any difficulty.

If you have selected an object, pressing DEL will remove it from the game world.

You have to be careful when creating teleports. If there are any objects around the teleport when you create it, they will be teleported to X=0,Y=0,Z=0 coordinates in the level (center of level, also default starting position).
The same principle applies when creating an object near a teleport, it will be teleported where your teleport coordinates are.

Manipulation of objects

This is where the magic happens!

Creation of objects alone cant create the desired challenging environment, so you will have to change the properties of some objects.

Aiming at an object and pressing the Right Mouse Button will SELECT an object.(It will change the object's color to green on almost all objects)

Aiming at a selected object and pressing Right Mouse Button will select the object behind it.

Once you select an object you can manipulate its properties in the Object Properties panel (default at upper left corner of the screen). You can also move it using the Cursor keys (Up/Down/Left/Right) and Page Up/Down to move it up and down in the dream world.

Using the ALT key you can rotate an object with the Cursor keys (Left/Right).

In the object information panel (default lower right corner of the screen) you can find information about the X/Y/Z position of the object and its Pan angle.

And another thing you can do to quickly position an object is to click the left mouse button while aiming at an object. The object you have currently selected will be positioned at the X/Y position of the object you are aiming at. The Z position will remain unchanged.

For example, you have selected a Mind Fragment. It is currently at position Z=16. Clicking at a column located at Z=0 will place it 16 quants above the column at the exact same spot (X/Y).

You can change various properties of the objects in the Object properties panel and they are all self-explanatory. Feel free to experiment.

Time and level management

The Levelslist file has a control panel in the Expansion Manager accessible through a button called Levellist.

In this panel you can set the time goal for this level, move it up and down in the order of levels for the expansion and delete a level.

If you make a mistake, click Cancel.

If you are happy with the current configuration, click Save.

Helper sphere

There is also a helper sphere in the editor, ment to show an aproximation of the safe jump distance around objects.

You can show/hide it with key E.

You can toggle between 4 modes with key C:

  • Disabled
  • Turns the sphere off.
  • At player
  • The sphere will always be around you.
  • At player or selected
  • The sphere will be around you until you select an object. If you select an object, the sphere will move at the object location.
  • At selected
  • The sphere will only be at the selected object. If no object is selected, the sphere will disappear.

You can toggle between 3 visibility modes with key V:

  • Inner
  • This type of sphere can be seen only from the inside. This means that if you are standing in a distance outside of the sphere, you will only see this part of the inside of the sphere that is facing you.
  • Outter
  • This type of sphere can be seen only from the outside. This means that if you are standing in a distance outside of the sphere, you will only see the outer side that is facing you. If you are inside the sphere you wont see anything.
  • Both
  • This is a combination of both inner and outter visibility mode. Standing in the distance, you will see both the part inside the sphere that is facing you and the outter part that is facing you.

And you can toggle between 4 types of sphere color with key B:

  • Green squares separated by transparent lines.
  • Green lines forming transparent squares.
  • Grey squares separated by transparent lines.
  • Grey lines forming transparent squares.

Map properties

In the Map Properties panel you can set the Start position, Goal position, see the current Mind Fragments count and clear all Mind fragments from the level.

You can also add the level to the expansion pack in case you removed it earlier or if you want to have it one more time.

And finaly, you can reset all GUI element positions.

Group ID

Did you notice this one? Group ID is a number for a group of objects you can assign to any object. Default is 0, meaning an object doesnt belong to any group.

If you select a Group ID for a number of object, for example 10 columns, only one of them will make it into the level at random. The other 9 will be removed when the level is loading, each time a random column belonging to Group ID=1 will remain.

Although not used in the Main scenario, this is there to provide some variety when building/playing levels.

Expansion Pack

After you create an Expansion pack, create levels and fill them with objects, you can find it in the "Exp" folder in the game folder. You can then compress it in an archive if you want and share it with your friends or other players.

Expansion folder

An expansion pack consists of levels with ".ndl" extension and a levellist.txt file. In the levellist.txt file you will find all of your levels separated by numbers under each level, which represent the goal time for each level.

The levellist.txt file ends with "END" and a number following it. The number was ment to represent the goal time for the entire expansion pack and is now obsolete. You can ignore it, but always add it!

You can also add ".ndm" files, which are messages for the player, displayed on the screen at level start.

Another option is to add Subtitle (".nsf") files (the extension doesnt really matter) which will be loaded from an events file (".nde") and displayed when the player enters a certain region in the level, defined in this events file (".nde").

Subtitle files

These usualy begin with ".nsf" exxtension, but it doesnt matter what extension you use, as long as you define it in the events file.

A subtitle file must have a single line of text, maximum of 40 characters. Longer lines may disappear on lower resolution, and other lines will be ignored.

Message files

These files are text files which can hold a number of lines of text and will be displayed at the start of a level.

A message file doesnt have to be defined anywhere, but it has to have the same name as the level file, with an extension ".ndm".

Events files

These files are a little more complicated than messages or subtitles.

In an events file you can define various events that the game will trigger for the player.

One line defines one event.

The events file has to end with "END" statement.

Definition of an event in the file:

Sound event

Type of event - "1" 6 numbers representing Min-X Max-X Min-Y Max-Y Min-Z Max-Z Always 1 Immobilisation Not used yet Name of Sound file
Immobilisation:
"0" - movement and camera are free.
"1" - movement is immobilised.
"2" - movement and camera are immobilised.

Example

1 -36 36 212 256 -16 64 1 1 0 voiceover.wav
In this example, if the player enters a region with Min-X = -36, Max-X = 36, Min-Y = 212, Max-Y = 256, Min-Z = -16, Max-Z = 64, the game will play "voiceover.wav" sound and the player will be immobilised. The camera will be free to pan/tilt with the mouse.
 
 

Camera event

Type of event - "2" 6 numbers representing Min-X Max-X Min-Y Max-Y Min-Z Max-Z Always 1 3 numbers representing Target X Target Y Target Z

Example

2 48 80 -36 36 -16 64 1 512 0 32
In this example, if the player enters a region with Min-X = 48, Max-X = 80, Min-Y = -36, Max-Y = 36, Min-Z = -16, Max-Z = 64, the game will point the camera towards a location with coordinates X = 512, Y = 0, Z = 32.
 
 

Subtitles event

Type of event - "3" 6 numbers representing Min-X Max-X Min-Y Max-Y Min-Z Max-Z Duration of subtitles Not used yet Not used yet Name of subtitle file

Example

2 48 80 -36 36 -16 64 2.5 0 0 welcome.nsf
In this example, if the player enters a region with Min-X = 48, Max-X = 80, Min-Y = -36, Max-Y = 36, Min-Z = -16, Max-Z = 64, the game will show the first line of text in "welcome.nsf" file for "2.5" seconds.

Level files

This information is here to help you understand the object definitions in a level file to be manipulated/corrected by hand.

As with most files, a level file has to end with "END" statement.

The first three numbers represent the starting coordinates X/Y/Z.

The second three numbers represent the goal coordinates X/Y/Z.

Everything in between the "END" statement and the start/goal coordinates is objects.

An object consists of a filename and 10 numbers following it.

It doesnt matter if everything is in one line, but the editor will arrange every object on its own line, to be easily identified by human eyes.

Example object

COLUMN3.mdl 5 -192.731 0.345 0.142 360.587 0 0 0 0 0
Lets break it down:
COLUMN3.mdl is the model file.
1-st number = 5 means a static regular column.
2-nd, 3-rd, 4-th number = It is located at coordinates X = -192.731, Y = 0.345 and Z = 0.142
5-th number = Its pan angle is 360.587
6-th number = Its not a checkpoint ("0")
7,8,9-th number = Not used, ignored.
10-th number = Its Group ID is 0 - meaning it doesnt belong to a group.
 
 

Example level file (First level from Main scenario)

0 0 32
1023.450 -1.226 30.301
COLUMN3.mdl 5 -192.731 0.345 0.142 360.587 0 0 0 0 0
PLATFORM.mdl 5 -192.731 0.345 0 270 0 0 0 0 0
COLUMN3.mdl 5 -64.377 0.048 0 90 0 0 0 0 0
COLUMN3.mdl 5 -64.434 64.360 0 90 0 0 0 0 0
COLUMN3.mdl 5 -64.238 -64.030 0 180 0 0 0 0 0
COLUMN3.mdl 5 -0.269 64.288 0 270 0 0 0 0 0
COLUMN3.mdl 5 -0.076 -63.828 0.223 180 0 0 0 0 0
TORCH.mdl 10 1023.640 64.444 31.750 0 0 0 0 0 0
TORCH.mdl 10 1025.823 -64.087 31.750 0 0 0 0 0 0
COLUMN3.mdl 5 1025.700 0.024 0.051 90 0 0 0 0 0
PLATFORM.mdl 5 897.063 0.047 -0.547 0 0 0 0 0 0
PLATFORM.mdl 5 704.781 0.223 -0.359 180 0 0 0 0 0
PLATFORM.mdl 5 512.506 0.334 -0.199 90 0 0 0 0 0
PLATFORM.mdl 5 320.356 0.490 0 180 0 0 0 0 0
PLATFORM.mdl 5 128.055 0.055 0 270 0 0 0 0 0
COLUMN3.mdl 5 128.055 0.054 -1.427 270.263 0 0 0 0 0
COLUMN3.mdl 5 320.355 0.489 -1.960 270.510 0 0 0 0 0
COLUMN3.mdl 5 512.505 0.333 -1.256 449.883 0 0 0 0 0
COLUMN3.mdl 5 704.780 0.222 -1.522 270.219 0 0 0 0 0
COLUMN3.mdl 5 897.061 0.047 -1.522 270.287 0 0 0 0 0
END

If you want to change the objects, you can change the file names in the level file, directly by hand, and save the file with notepad.

Object types

Type

Description

1 Jump pad - Stepping on it makes you jump higher.
In object definition:
5-th number is pan
6-th number is jump strength (1 being normal)
7,8,9 are ignored (put a "0" there)
10-th number is Group ID
2 Sinking platform - Stepping on it will make it start sinking.
In object definition:
5-th number is pan
6-th number is sinking speed
7-th number is sinking direction (0 = down, 1 = up)
8,9 are ignored (put a "0" there)
10-th number is Group ID
3 Elevator - Stepping on it will make it start sinking.
In object definition:
5-th number is pan
6-th number is sinking speed
7-th number is sinking direction (0 = down, 1 = up)
8,9 are ignored (put a "0" there)
10-th number is Group ID
4 Teleporter - Moving close to it will teleport you to the target coordinates.
In object definition:
5-th number is pan, but it is irrelevant, it uses random pan in-game
6,7,8-th number are Teleport Target X/Y/Z coordinates
9-th is ignored (put a "0" there)
10-th number is Group ID
5 This is both a static platform and a disappearing platform (indicated by the 7-th number).
In object definition:
5-th number is pan
6-th defines a checkpoint - "0" means "not a checkpoint", "1" means "it is a checkpoint"
7-th defines a static or disappearing platform, "0" or other is static, "-4" is disappearing platform
8,9-th numbers are ignored (put a "0" there)
10-th number is Group ID
6 This is a transparent platform.
In object definition:
5-th number is pan
6,7,8,9-th numbers are ignored (put a "0" there)
10-th number is Group ID
7 This is a button activated platform. If you save the level in the editor with this platform being visible, it will start visible in the single player campaign. If you save it invisible, it will be invisible once loaded into the game.
In object definition:
5-th number is pan
6-th number is visibility state at level start, "0" - invisible, "1" - visible
7,8,9-th numbers are the location in X/Y/Z coordinates of the button that triggers the platform
10-th number is Group ID
8 This is the antigravity device. Stepping under it will reverse your gravity and pull you upward.
In object definition:
5-th number is pan
6,7,8,9-th are ignored (put a "0" there)
10-th number is Group ID
9 These are the spikes which you can hide inside platforms.
In object definition:
5-th number is pan
6-th number defines a cycling spikes (up and down) at fixed intervals, or spikes that wait until the player steps above them. Then, they activate and wait for the defined duration before they jump out.
7-th number is the time the spikes will wait between each cycle
8,9-th are ignored (put a "0" there)
10-th number is Group ID
10 This is the torch. It is decorative.
In object definition:
5-th number is pan
6,7,8,9-th are ignored (put a "0" there)
10-th number is Group ID
11 This is the moving platform. It moves between its min_x and max_x and waits a certain amount of time at each location.
In object definition:
5-th number is pan
6-th number is max_x (maximum distance forward)
7-th number is min_x (maximum distance backward)
8-th number is idle time at each end
9-th is ignored (put a "0" there)
10-th number is Group ID
12 This is the mind fragment. The player has to collect all before finishing a level. If it is a power fragment, it is ignored in unlocking the end portal.
In object definition:
5-th number is pan
6-th number defines a regular Mind Fragment - "0" or one of the powers the player can take, "1" - "Double Jump", "2" - "Second chance", "3" - "Move Obstacles".
7,8,9-th are ignored (put a "0" there)
10-th number is Group ID
13 This is the fireball trap. It shoots fireballs at regular intervals defined by the 6-th number.
In object definition:
5-th number is pan
6-th number is the idle time between each fireball.
7,8,9-th are ignored (put a "0" there)
10-th number is Group ID
14 This is a glass platform. Once the player jumps off it will break, if you reload the level it will reset.
In object definition:
5-th number is pan
6,7,8,9-th are ignored (put a "0" there)
10-th number is Group ID
15 This is a teleport trap. It works just like the fireball, but instead of killing you, the particles teleport you back to the start of the level, but do not reset it.
In object definition:
5-th number is pan
6-th number is idle time between each shot.
6,7,8,9-th are ignored (put a "0" there)
10-th number is Group ID
16 This is the swinging ball trap. It will push you back if it touches you.
In object definition:
5-th number is pan
6-th number is the swinging speed, default is at "4". If you leave it at "0", it will reset to default "4".
7,8,9-th are ignored (put a "0" there)
10-th number is Group ID
17 These are spikes hanging in the air, waiting for the player to step under them. Then they start falling at a constant rate. Once the player moves away, they go back to their original position.
In object definition:
5-th number is pan
6-th number is the falling speed. Default is "1", leaving it at "0" will reset it to default.
7,8,9-th are ignored (put a "0" there)
10-th number is Group ID

LOD System File naming

Some objects require more models to be used by the LOD system. Those files end with certain characters to help the LOD system identify and load them.

Those LOD step files are REQUIRED by the game and must exist, otherwise the game will give an error that a file is missing and will/may crash.

When a model is defined in the level file (".ndl") it has to be defined without the special endings that the LOD system requires, even if the file does not exist with its definition name.

For example, if you define a model named "Brick.mdl" and the LOD system uses LOD steps for this type of platform, the file "Brick.mdl" doesnt have to exist as "Brick.mdl" in the game.

The LOD system cuts out the extension ".mdl" and adds the special characters for the currently required LOD step in the game, and then loads the file.

The special characters:

File name
ending

Description

_UD_1024.mdl This means Ultra detail (model mesh) at 1024x1024 pixels texture size.
_UD_512.mdl This means Ultra detail (model mesh) at 512x512 pixels texture size.
_UD_256.mdl This means Ultra detail (model mesh) at 256x256 pixels texture size.
_UD_128.mdl This means Ultra detail (model mesh) at 128x128 pixels texture size.
 
_HD_1024.mdl This means High detail (model mesh) at 1024x1024 pixels texture size.
_HD_512.mdl This means High detail (model mesh) at 512x512 pixels texture size.
_HD_256.mdl This means High detail (model mesh) at 256x256 pixels texture size.
_HD_128.mdl This means High detail (model mesh) at 128x128 pixels texture size.
 
_MD_1024.mdl This means Medium detail (model mesh) at 1024x1024 pixels texture size.
_MD_512.mdl This means Medium detail (model mesh) at 512x512 pixels texture size.
_MD_256.mdl This means Medium detail (model mesh) at 256x256 pixels texture size.
_MD_128.mdl This means Medium detail (model mesh) at 128x128 pixels texture size.
 
_LD_1024.mdl This means Low detail (model mesh) at 1024x1024 pixels texture size.
_LD_512.mdl This means Low detail (model mesh) at 512x512 pixels texture size.
_LD_256.mdl This means Low detail (model mesh) at 256x256 pixels texture size.
_LD_128.mdl This means Low detail (model mesh) at 128x128 pixels texture size.

When the game starts, it loads a model depending on the current quality/textures settings. It is UD 256 to 1024, HD 256 to 1024 or MD 256 to 1024.

After that, depending on the distance from the platform to the player, the engine switches from LOD steps LD to UD ranging from 128 to 1024 texture size.

Distance

Quality settings

Texture settings

Distance less than 300 quants High quality adds "_UD", Medium quality adds "_HD", Low quality adds "_MD" High texture adds "_1024", Medium texture adds "_512", Low texture adds "_256"
Distance more than 300
less than 600 quants
High quality adds "_HD", Medium quality adds "_MD", Low quality adds "_LD" High texture adds "_512", Medium texture adds "_256", Low texture adds "_128"
Distance more than 600
less than 900 quants
High quality adds "_MD", Medium quality adds "_LD", Low quality adds "_LD" High texture adds "_256", Medium texture adds "_128", Low texture adds "_128"
Distance more than 900
less than 1200 quants
All qualities add "_LD" All textures add "_128"
After all this, the engine adds ".mdl" to the end of the file name

If you are confused by now, I dont blame you!

In short, the engine will first create a file by the definition you give it, for example "Column1.mdl", it cuts out ".mdl" and adds for example "_UD_1024.mdl".

After the object is created, the engine checks the distance to the player, cuts out the LOD step definition, for this example "_UD_1024.mdl" and adds a new definition based on the quality/texture settings, for example "_MD_256.mdl" and loads the file. Its not complicated, you just have to grasp the working process of the LOD system.

I know it is a lot of work to create different models for each LOD step and assign them different textures, but this optimisation is needed in order to have many platforms looking at their best on weaker machines.
Not everyone has i7 processor and a powerful video card...

LOD Objects

The objects that use the LOD system are:

Type

Name

2 Sinking platform
3 Elevator
5 Static platform
5 Disappearing platform
6 Transparent platform
irrelevant Button for button activated platform
7 Button activated platform
8 Antigravity platform
10 Torch
11 Moving platform
13 Fireball trap
15 Teleport trap
16 Swinging ball
17 Hanging spikes

Model creation

First, you need to create the models for the different LOD steps in modelling software, like 3D Studio Max or other similar.

Make sure you can export to ".3ds" file format.

After that, download 3D Game Studio trial version, and use its Model editor to import the models for the game.

Go to File > Import > From 3DS. Browse through the dialog and find the 3DS models and load one.

Click OK and if the engine asks for a texture, browse and choose one, which wont actualy be used for now. You will assign each texture separately in the next step.

After importing a model, add 3 skins.

Click on "New skin". In the new dialog uncheck "Material Setup" if it is checked, and check "Texture". Expand the "Texture file" tab and click on "Extern" if you want external texture. Then click on the dotted button to the right of the Input box and browse to the texture you want. The first skin is always a Diffuse texture. Its good to use TGA files with Alpha channels or PCX files.

Do the same procedure as above for a second skin for "Normal map" and a third for "Specularity map".

If more than one model share the same texture, you can click "External" when assigning a texture to a model skin in the Model Editor.

And your model is done. Save it with the appropriate name, for example "CustomPlatform_UD_512.mdl" and continue to the next model.

Dont forget that a model name in the level file definitions has to exclude the LOD step endings, but has to include them in the actual file naming.

External textures are shared between models and save video memory and rendering speed.

If there are a lot of models without shared textures, the game will render them each one separately with its own texture and will require A LOT more rendering power and video memory.

After you create all the models, they should go to the "Env" folder, where all platform models are. Be sure to include them with your expansion in a separate "Env" folder, so that other players can play your new expansion with custom models!

Final thought

And thats it. I am sorry if I've missed something, I'll add it later. For now, this is the whole process of creating a custom expansion with custom models and events, different voice-overs and subtitles.

I wish you to enjoy creating expansions like I did while making the game. It was a lot of work, but it is worth it!