Now that you understand sectors, it's time to learn about sprites. Sprites make a level much more interactive. A sprite is just an object. Weapons, ammo, enemies, babes, and even Duke himself are all sprites. There are also many 'special sprites', some of which are invisible in the game. These special sprites can do certain things depending on how you tag them. You'll learn about tags in the next section.
Placing
Start a new map and make a sector. It doesn't really matter what
size, just as long as you have enough space to move about. In 2D mode,
point the mouse cursor somewhere inside your sector and press S
.
A pink object will appear which is a circle with a tail. This object is
a sprite. The tail signifies which direction the sprite is facing. If
you look at the sprite in 3D mode, it will be textured as the default
brown brick texture.
Pressing S
in 3D mode
also places a sprite. If the mouse cursor is pointed at the floor or
ceiling, the sprite will appear directly on the floor/ceiling. If the
mouse cursor is pointed at the wall, the sprite will be placed flat
against the wall (this is referred to as 'wall-alignment'). You can
change the texture of a sprite just like everything else. Press V
on it once, and you'll see a list of all the sprite textures currently
being used in the map. Since there are no other sprites in the map,
only the brown brick texture will appear in the list. Press V
again to get a complete texture list. You can pick anything you want: enemies, guns, lights, bottles, garbage cans... anything.
Customizing
Many of the keypresses that apply to sectors also apply to sprites. Highlight the sprite and press R
.
The sprite will become wall-aligned. You've just altered its relative
alignment. There are three modes of relative alignment, all of which
are cycled through using the R
key: 3D (always faces the player), wall-alignment, and floor-alignment.
Floor-alignment will cause some sprites to look meshed. As a general
rule, only textures with squared size values will look proper in
floor-alignment mode. For example, some compatible texture sizes would
be 32x32, 64x128, 32x256, etc. Some incompatible texture sizes would be
13x17, 57x9, 21x55, etc. You can change a sprite's angle in either 2D
or 3D mode using <
and >
.
You can move a sprite up and down using PGUP
and PGDN
. You can place a sprite directly onto the ceiling or floor using Ctrl + PGUP
or Ctrl + PGDN
.
Note that if a sprite is directly on the floor or ceiling, it will
stick to it while it moves. You can shade a sprite with either Keypad +
/ -
or Apostrophe (') + S
. You can assign palette values to sprites as well. Use Alt + P
and then enter any value from 0-25. Not all palette values cause a
colour change. Check the Palette Reference section for details
pertaining to the values.
If you walk into the sprite in 3D mode, you will automatically
step up onto it. This is because its blocking flag is on. You can tell
because it is pink in 2D mode. Most sprites are automatically blocked
and hittable in the game. If you want to block or unblock a sprite,
press B
on it. It will turn blue in 2D mode when the blocking flag is off. Setting the hitscan flag is done with H
in 3D mode, and Ctrl + H
in 2D mode. Hitscanned sprites appear thick in 2D mode.
Many sprites are oversized by default. You can stretch or shrink a sprite manually using Keypad 2/4/6/8
.
All 'active' sprites (weapons, enemies, etc.) will automatically adjust
themselves when the game starts (or when you reload the map), but I
usually resize everything anyway.
Here are just a few more sprite attributes you can modify in 3D mode. If you press C
on a sprite, it will center itself in the floor (as if it were floating amidst water). Use T
to cycle through three modes of transparency. Pressing 1
on a sprite will make it one-sided (this is only relevant to
wall-aligned or floor-aligned sprites). To change a sprite back to
being two-sided, just press 1
again. You can also flip sprites. Use F
to cycle through the different flip variations. Make sure you play
around with all of these keys to get a basic idea of what they actually
do.
Finishing Up
When selecting textures, you may notice that many display a name. These are usually special textures which have a function in the game. For example, to select an enemy you would have to select an enemy texture that displays a name. If you wanted to place a pigcop in your level, you would have to texture a sprite with the PIGCOP texture (#2000). If you use an unnamed texture for an enemy, it won't function in the game. Basically, as long as the texture you're using has a name, it will work like it should in the game. There are also other enemy textures such as PIGCOPSTAYPUT. These special textures will determine the enemy's initial position and behaviour.
Note: If you raise an 'active' sprite above the ground (weapons,
health, enemies, etc.), it will automatically drop back to the floor in
the game as soon as a player sees it. These sprites are coded to do so
in the CON
files.
Well, that covers the basics of sprites, so you can move on to the Tags section whenever you've had enough fun playing around.