* Esc: `File->Quit'.
* F1: The `hotkey' list.
* F2: Save the current level under the last used file name.
* F3: `Edit->Make room'.
* F4: `Edit->Split cube'.
* F5: Descent-Map on/off.
* Tab: Change move mode.
* Shift+Tab: Cube-lines on/off.
* Ctrl+Shift+Spacebar: Reinitialize Graphics. Useful in texture modes if Devil only displays a black Screen.
* d: Switch between double and single views.
* Shift+1, Shift+2, Shift+3, Shift+4: The four rendering modes in the sequence `Off', `On for current cube', `On', `On with collision'.
* 5: `Move->Beam to current object'
* 7: `Move->Go to Wall'
* 9: `Move->Change to sidecube'
* Ctrl+Spacebar: `Tag->special'
* Shift+Spacebar: Tag/untag all objects of the current mode (right mouse-button on `Tag')
* Spacebar: Tag/untag the current object (left mouse-button on `Tag')
* Shift+Del: `Edit->Delete tagged'
* Del: `Edit->Delete'
* Backspace: `Edit->Delete special'
* Shift+Enter: `Edit->fast Insert'
* Ins: `Edit->Insert'
* +: `Edit->enlarge object'
* -: `Edit->shrink object'
* m: `Groups->Make group'
* M: `Edit->Set connection side/exit'
* g: Grid on/off
* Ctrl+c: Cube mode
* Ctrl+s: Side mode
* Ctrl+e: Edge mode
* Ctrl+p: Point mode
* Ctrl+d: Thing mode
* Ctrl+w: Wall mode
* L/l: previous/next Level
* W/w: previous/next Cube
* S/s: previous/next Side
* E/e: previous/next Edge
* P/p: previous/next Point
* D/d: previous/next Thing
* Z/z: previous/following Wall
* 0: Select Side 0, Edge 0
* Ctrl-x: Align to positive x-Axis
* Ctrl-X: Align to negative x-Axis
* Ctrl-y: Align to positive y-Axis
* Ctrl-Y: Align to negative y-Axis
* Ctrl-z: Align to positive z-Axis
* Ctrl-Y: Align to negative z-Axis
* Alt+*: Increase rotation angle
* Alt+/: Reduce rotation angle
* *: Increase move-factor
* /: Decrease move-factor
* A: Increase depth of vision, referred to as `visibility' in Devil.
* Y/Z: Decrease depth of vision
* Ctrl+F1..F10: Save position 1 - 10
* Shift+F1..F10: Go to position 1 - 10
* Ctrl+F11: Go to position which shows entire level
* Shift+F11: Back to position you were before you pressed Ctrl+F11.
* Ctrl+F12: Go to position which shows entire corridor.
* Shift+F12: Back to position you were before you Ctrl+F12.
In the following section, `n' refers to a key on the numeric-keypad when NumLock is off and `N' refers to a key on the numeric keypad when NumLock is on.
* n2 / Shift + N2: Slide up
* n8 / Shift + N8: Slide down
* N2 / Shift + n2: Turn yourself / look down
* N8 / Shift + n8: Turn yourself / look up.
* n4 / Shift + N4: Slide left
* n6 / Shift + N6: Slide right
* N4 / Shift + n4: Turn yourself / look left
* N6 / Shift + n6: Turn yourself / look right.
* n1 / Shift + N1: Slide backward (Also `y' and `z')
* n3 / Shift + N3: Slide forward (Also `a')
* N1 / Shift + n1: Rotate yourself left
* N3 / Shift + n3: Rotate yourself right.
Translators note: This may be an appropriate place to note that some of these terms were ones used by the original Descent programmers - not something arbitrarily made up by Achim.
I. A complete level consists of a Mine and the various things you can find in it such as Robots, Powerups and Weapons, Keys, Hostages and the Reactor.
II. The Mine consists of adjacent segments or Cubes. Each cube has eight corners (called `Points' in Devil) defining six Sides with four corners each. (called `Edges' in Devil).
III. A `Side' in Devil is the side of a cube, it doesn't matter whether this side is joined with another cube or not.
IV. A `Connection' in Devil refers to the side of a cube which is joined to another cube.
V. A `wall' in Devil means the side of a cube which is visible in Descent, i.e., a non-joined side or a side with a door for example.
VI. A `Wall' in Devil refers to the connection, in which, for example, a door may be inserted. Under Walls you'll find doors of all types, Walls (whether you can fly through it or not) and also Switches, which are used to activate something when the player passes through them, but are not necessarily visible. Confusingly, in Descent 2 there are also Switches which are attached to non-joined sides. These also count as Walls.
VII. An Outline in this manual refers to the frame-definition values and co-ordinates required by Descent to correctly map the specified texture(s) onto a side.
VIII. A tagged object is (normally) drawn in blue simply to indicate that it has been selected in order to perform a particular action on it. The term "marker" is used to refer to the graphical indicator placed on an object.
IX. The term "Edge" rather than corner has been used in most places for historical reasons, but still refers to the area where two or three sides meet.
X. In most cases the term "button" has been used to refer to the click-able icons on the menus and windows, but the term `field' has been used to indicate an area where text can be entered and the terms toggle-switch or toggle have also been used where deemed appropriate.
Geometrically expressed, it is a necessary (and mostly sufficient) condition for the convexity of a cube, that the angle between two sides must be >=180 degrees (measured from the inside of the cube). Twisted sides are also a further peculiarity: If you take a real cube, i.e. one with right angles, hold one side firm and turn the opposite in the same plane as which they lie, you can twist the other four sides without creating an angle >=180 degrees between any two sides. To prevent cubes of this shape, Devil additionally checks on twisted sides, i.e. whether two opposite boundary lines of a side of the `cube' are twisted more than a particular value (which is determined in the file `devil.ini').
Translators Note:
The term "co-planar" refers to points all lying in a common plane or 2 dimensional flat surface. Any three points are always co-planar, but when you add a fourth point to define a side, it can stick out and warp the side. Possible nasty "beating" effects and even ship-trapping can occur because the Descent graphics engine splits a non co-planar side into two triangles joined at a common line. As you fly over it, the division can switch from one pair of opposite vertices to the other pair, causing the beating effect. Most spirals and even some standard levels exhibit this effect. Devil doesn't (yet) have a feature to force the points of a side to be co-planar, but you can simulate this (partially) by setting the grid-size to (say) 5, turning it on and then adjusting the side in Point mode.
When Descent has to map out a large number of cubes in order to display a big room, you may find that game-play becomes jerky as the frame-rate drops below 12 fps. Here are a few suggestions:-
1. Use less cubes.
Although this may seem obvious, you may be able to create
a similar room by sacrificing a little detail or unnecessary effects. Consider
cubes with different shapes.
2. Remove grates and other see-through areas.
Descent will often map out a
complete room even if only portion of it can be seen from the current player
position.
1. Use large cubes and thin cubes.
Use a few large cubes for the room
instead of lots of smaller ones and define the entrances using thin, stretched
cubes if you can handle the effect. (Most of the standard levels from Parallax
have entrances like these). A note of caution however: Really thin cubes can
cause problems with Descent's ability to discern which sides are furthest away
and you may find that far away sides get drawn in front of closer
ones.
2. Reduce the distance you can see.
By "hiding" further detail around a bend
in a tunnel, you can reduce the number of cubes which Descent maps.
3. Try different cube geometry.
Presuming that Descent (like most 3-D
engines) will completely map every side that can be seen from a particular view
point even though it may be partially obscured by closer sides which are drawn
later, it may be possible to re-design the room geometry so as to avoid this to
some degree. You should also avoid a large number (>5) of sides which are
transparent and 'in a row' and through which you can see another solid side.
This causes a lot of additional calculation.
4. If you're really desperate, reduce the number of textures used, especially Texture-2 textures and try to avoid unnecessary distortion of the textures.
Note: These "over-draw" and depth-sort difficulties often result in the so-called Vanishing-Wall effect, where cubes with sides are seen to "peel away" at certain angles, revealing the cubes behind them. Assuming that Descent mainly uses integer mathematics, if you have small acute angles or ones very near to 180 degrees, it may not be giving you enough precision to reliably handle these cases. With these kinds of problems it's best to try changing the angles more into the mid-range (around 45 degrees).
Let us call the points of the side in the 3d co-ordinate system of the level
.
(
)
and the points of the Outline with
(
).
In order to calculate the
out of the
,
we must do the following: First,
is set (the whole Outline can still be moved later). Then the length of the
line
is determined and
is set (the Outline can also still be turned later).
In the following formula to determine
, Scalar-product is indicated by `
'and
the sequence of the equations is important :
So far so good. Now it gets a little harder. The fourth point need not be in
the plane which is determined by
and
.
We must, therefore, turn it in the plane and then determine
.
For that we first determine the axis to turn around (the line joining Points 1
and 3) and then turn the point around it:
And finally. The q-value must still be divided by 20, since the size of a standard side in a level is 20*20. Apart from this there is another peculiarity to take note of - the correct co-ordinates are 32-bit Fixed-Floating-Point, with the least significant 16-bits being digits after the decimal point (or expressed differently: 4-byte integers). The corresponding co-ordinates of the Outlines are only 16-bit with the least significant 11-bit as digits after the decimal point, i.e. the q-values which are calculated above, must still be shifted right 5 times, i.e., divided by 32.
In total, therefore, the q-value must be divided by 640.
* 800/900 Cubes
* 2800/3600 Points
* 175/254 Walls, whereby each side of a Wall is counted once.
* 350/350 Things
* 20/20 Cubes which produce robots.
* 50/?? Cubes whose type is not `Normal'.
* 100/100 Switches ... ---/500 on/off switching lights
* ---/10000 Edges, which can be changed by on/off switching lights
The standard length of a side is 20x20 but Descent can handle sides up to a size of 1000. Use cubes with a side length over 100 with caution ... when flying next to the wall the display sometimes "sticks" and very often laser shots and missiles will not impact on the surface.
head: DMB_BLOCK_FILE
In the following lines the segments are specified:
head of segment: segment <segnr>
segnr must start with 0 and always be increased by one
The sides of this segment follow next.
There are always six sides with the numbers 0..5
head of side: side <sidenr>
side: tmap_num <t1> tmap_num2 <t2>
t1 and t2 are the texture numbers (as in normal levels which are not the same numbers as the numbers in the pig/pog-files) for texture 1 and texture 2.
The 3 most significant bits of t2 specify the direction of texture 2 relatively to texture 1
(t2&0xc000==0x0000->same dir.,
0x4000->t2 is rotated around 90 degrees counter-clockwise,
0x8000->180 degrees, 0xc000 270 degrees)
t2==0 --> no texture 2 at all
If you don't know what texture to choose, use t1=0 and t2=0
side: uvls <u> <v> <l>
side: uvls <u> <v> <l>
side: uvls <u> <v> <l>
side: uvls <u> <v> <l>
Four lines with the uvl-coords for this side. The uv-coords specify in which way the texture is layed in this side. If you don't know what to do with this,
just use (0,0), (0,2047), (-2047,2047), (-2047,0) for each side and after you loaded the file in Devil tag all cubes and let Devil recalculate the textures
(Lights and Textures->recalculate textures).
The third value in each line is the light value.
This should be a value between 0 (0%) and 32767 (100%)
end of side.
Remember that there must be six sides for each segment even if the segment has a child on this side.
cont. segment: children <c0> <c1> <c2> <c3> <c4> <c5>
(c0..c5 are the numbers of the cubes connected to this cube on side 0..5. -1 if no cube is connected.)
segment: vms_vector <no> <x> <y> <z>
segment: vms_vector <no> <x> <y> <z>
segment: vms_vector <no> <x> <y> <z>
segment: vms_vector <no> <x> <y> <z>
segment: vms_vector <no> <x> <y> <z>
segment: vms_vector <no> <x> <y> <z>
segment: vms_vector <no> <x> <y> <z>
segment: vms_vector <no> <x> <y> <z>
The eight points for this segment. The number must run from 0..7. x,y,z are 4-byte-integers specifying the coordinates of the points multiplied with 65536.
(e.g. a normal cube which, in Devil, has the size 20*20*20 has these coordinates :-
1310720*1310720*1310720 [20*65536=1310720] ).
Points with a certain number belong to sides with a certain number:
Side 0 Pnts 7 6 2 3 (left side)
Side 1 Pnts 0 4 7 3 (ceiling)
Side 2 Pnts 0 1 5 4 (right side)
Side 3 Pnts 2 6 5 1 (floor)
Side 4 Pnts 4 5 6 7 (front)
Side 5 Pnts 3 2 1 0 (back)
The comments in brackets are just to give you some sort of orientation. They refer to cube 0 in the first level of Descent 1 if your position is on the startplace of this level)
segment: static_light <light>
The light which will be used for the objects in this cube, e.g. robots
end of segment.
* "Too many doors to be opened at the end of the level (max.: 10). Ignore
others?"
At the end of a level (i.e. after blowing up the reactor), up to 10
doors can be opened. This error message appears if more than 10 doors are
flagged `Open at end'. If `OK' is pressed, the 10 doors with the lowest numbers
will be opened at the end. At the next load of the level, only these 10 doors
will still be flagged `Open at end'.
* "WARNING: More XXX than Descent can handle. Okay ?"
The message says
simply that there are more objects present in the level than Descent can handle
(for XXX you can have Cubes, Points, Things and Walls). If "OK" is pressed, the
level is saved as is. This has the result that Descent abends with
unpredictable errors if the level is played.
* WARNING: Thing X outside the mine. Okay ?"
The thing with the number X is
not in a cube, i.e. its co-ordinates are outside the mine. This has no effect
on Descent (I believe) except that the thing does not appear in Descent. With
exceptionally twisted cubes, the error message can also appear. To eliminate
the warning in such cases, I recommend simply moving the thing a little bit
(towards the cube center).
* "WARNING: Incorrect number X for Player-start Y. Okay ?"
The Thing with
the number Y is a Player-start and has an incorrect value in the `Nr.' field,
i.e., a Coop-Player-start has a number other than 8-11 or an Deatchmatch
(Anarchy) Player-start a number other than 0-7.
* "WARNING: To many Coop-Starts (X is the fifth). Okay ?"
Only four
Player-starts are permitted for `Cooperative', but at least five are present in
the level (The Thing with the Number X is the fifth Coop-Player-start in
numeric order).
* "WARNING: Two Player-starts with the Nr. X: Thing Y and Z. Okay ?"
The
Player-starts Y and Z have the same value in the `Nr.' field.
* "WARNING: Two keys with the same color: Thing X and Y."
Should be obvious.
This is, naturally, permitted (in Descent), but seems somewhat senseless, or
what ?
* "WARNING: Double Reactor/Flag: Thing %d and %d"
Should also be obvious. I
believe it is also permitted, but likewise senseless.
* "WARNING: No Player-start. Okay ?"
Without a player-start you cannot play
the game.
* "WARNING: No Player-start after return from secret level."
This is a
message which only appears in Descent 2 mode. In Descent 2 the player, after
passing through a secret exit in a secret level having played through it,
proceeds to a particular position in the level from which he left for the
secret level. This position is determined by the `Secret Start'. If this start
is missing and, despite this, an exit is available in the secret level, the
error message appears.
* "WARNING: No exit to secret level, but a player-start for return (Thing
X)."
The same as above, only the other way around.
* "WARNING: Level illumination must probably be re-calculated if the Shootable
lights are to function correctly. Should this be done now ?"
In order for
the turning on or shooting out of light-sources to work correctly in Descent,
the Editor must a do some "pre-work" which happens during level-illumination
(see Section 7.2.3). This message means that level illumination has not been
recalculated since the last modification of something which is relevant to the
lighting. If the question is answered in the affirmative, the level
illumination is re-calculated, if in the negative, the level is saved without
the corresponding data; which means that the shooting or the turning off of
lights is not possible. Take note: If Devil is allowed to proceed with level
illumination at this point, all cubes in the level will have their
lighting values re-calculated.]
* "WARNING: More lightsources to turn/shoot off (XXX) than Descent can handle.
(Max. 500) Ignore?"
This is a warning that there is too much data for light
sources that must be saved in the .RL2-file. In version <= v2.2k only
lightsources that are turned/shoot off were saved.
Since V2.2l all lighting
data is saved, so I expect this warning to appear more frequently.