ÍÍÍÍËÍÍÍÍÍÍÍ ÉÍÍÍÍÍ»
º ³ º º ³ ³
º ³ º º O ³ ³
º ³ ÌÍÍÍÍÍÊÍ» ³ ³
º ÃÄÄÄÄ¿ ÚÄÄÄÄ¿ º º ³ ³ ³ ³ ÚÄÄÄÄL
º ³ ³ ³ ³ º º ³ ³ ³ ³ ³ ³
º ³ ³ ÃÄÄÄÄÙ º º ³ ³ ³ ³ ³ ³
º ³ ³ ³ º º ³ ³ ³ ³ ³ ³
º ³ ³ ÀÄÄÄÄ ÈÍÍÍÍÍÍͼ ÀÄÄÄÄÙ ³ À ÀÄÄÄÄÁ
TTTTTTTTTTTTTTTTTTTTTTTTTTT
TTTTTTTTTTTTTTTTTTTTTTTTTTT
TTTTTTTTTTTTTTTTT
TTTTTTTTTTTTTTTT RRRRRRRR III CCCCC KKK KKK SSSSSS
TTTTTTTTTTTTTTT RRRRRRRRRR III CCCC CCCC KKK KKK SSS SSS
TTTTTTTTTTTTTT RRR RRR III CCCC KKK KKK SSS SS
TTTTTTTTTTTTT RRR RRR III CCC KKKKKK SSSS
TTTTTTTTTTTT RRR RRRR III CCC KKKKKK SSSS
TTTTTTTTTTT RRRRRRRRRRR III CCC KKK KKKK SSS
TTTTTTTTTT RRR RRR III CCC KKK KKK SSS
TTTTTTTTT RRR RRR III CCC CCC KKK KKK SSS SSS
TTTTTTTT RRR RRR III CCCCCCC KKK KKK SSSSSSS
T U T O R I A L
by Patola
*** version 0.1 ***
DISCLAIMER and COPYRIGHT:
Permission is granted to anyone to make or distribute verbatim
copies of this document, in any medium, provided that the
copyright notice and permission notice are preserved, and that the
distributor grants the recipient permission for further
redistribution as permitted by this notice.
**** INFORMATION SHALL BE FREE ****
WHERE TO GET THE LATEST VERSION OF THIS TUTORIAL
I'll try to keep it posted at 3D Realms Web BBS
(http://www.3drealms.com), but the official site is my Home Page
site (http://www.dcc.unicamp.br/~patola/WELC2.HTML). But if you
just want to get the file, point at
http://www.dcc.unicamp.br/~patola/bldtrk01.zip
^^
These are the version
numbers. Current version
is 0.1 and this number
will change as it grows.
To see WHICH version is the latest, point at
http://www.dcc.unicamp.br/~patola/JOGOS.HTML
I don't know any FTP sites where I can keep it posted yet.
If you want to contact me, my address is patola@dcc.unicamp.br.
Or you can leave messages to me in the 3D Realms Web BBS duke
editing forum, my nick there is thepatola.
------------------------- // -------------------------
ÉÍÍÍÍÍÍÍÍÍÍÍÍ»
ºIntroductionº
ÈÍÍÍÍÍÍÍÍÍÍÍͼ
I was a bit skeptic when I first got my shareware copy of Duke
Nukem 3D. "So", I said, "this game wants to take Doom's place".
Not a chance, I thought.
I was wrong. Playing the game, I figured out not only it was able
to take Doom's place, but also to secure its very own place in
computer games history. We had finally a 3D perspective game that
allowed us to do neat things and effects - swing open doors, say
bad words, interact with the game elements (trees, fire hydrants
etc.), dive underwater, blow buildings up... (Hey, THIS is how to
be realistic, iD Quakers! :-) )
Short after the commercial release date I bought the registered
game on CD-ROM. Some few days later, after playing and playing
the game, I decided to take a look at its level editor, BUILD. So
I did, and I haven't took too much out of it.
Fortunately, we are in the InterNet age, and within some time I
achieved to get Brett Gmoser's and Daedalus BUILD FAQs. I eagerly
read the whole FAQs and tried many and many different things.
At this time I was still very impressed about the building
explosion in the middle of level 2 from the first episode. Say, I
haven't noticed that was just a falling floor effect, just like
DOOM had, but with added explosions to make it realistic.
After a few days, I have started tinkering with this theme: if a
simple falling floor effect could impress me so much, what could I
do with the built-in effects of BUILD to make some nicer-looking,
more impressive "macro" effects?
In fact, I have collected ideas and began to build a database not
only of macro effects, but also build engine glitches and sprite
tricks to simulate/produce things probably not thought of even by
the makers of the game.
If you are reading this now, you should have concluded I decided
to make this database public in the net. So I have. But not only
this, from now on, I am at your service to make this FAQ grow
bigger and bigger, with ideas from other people, so that we could
just consult this FAQ if we are going to build a complex effect in
our own map.
I have made some example maps. If you don't understand my
description of the effect itself, try to see it in the map -
sometimes things are hard to be described without drawings and
gestures, because the written language has its own limitations.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ºA few last notes:º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
* This tutorial is NOT about CON editing. It is about map tricks.
The tricks are supposed to work with the original Duke Nukem 3D
.CONs. Some of them may not work if you use modified CONs. CON
editing is pretty straightforward, so I don't think there are many
CON tricks to explore.
* This tutorial assumes you have got an advanced knowledge of
BUILD. If you don't, you probably can't understand most of the
tricks.
* Furthermore it is not supposed to substitute BUILD FAQs. If you
want to learn how to make things in BUILD, you better read one of
these FAQs. You can get Brett Gmoser/Jonah Bishop's MAP FAQ,
Daedalus' Unofficial BUILD FAQ and The Official BUILD FAQ by
Steffen Itterhein at 3D Realms Web BBS, http://www.3drealms.com.
* If BUILD was a programming language, you could say this FAQ is
the equivalent to a Data Structure and Programming techniques
book. Or at least it intends to be.
* Some of these tricks, particularly the ones which are associated
with BUILD bugs, are not purposefully supported by the BUILD
engine. Indeed, they are very dangerous to your map and they
could lead to make your map unusable. Use them at your own risk.
* Many of these trick ideas are taken from some maps I've got from
the web. If you think like I've stolen ideas from you and
you desperately want to be credited, email me.
* This FAQ is NOTHING without your contribution. The ideas of
just one person (me) aren't enough to make a complete tutorial of
this kind. So, if you think you have an interesting idea or
concept in BUILD, email me at patola@dcc.unicamp.br. If possible,
please send an attached map showing your effect.
* PLEASE forgive me for the typos and bad use of english! I am
not a natural english speaker, so I make mistakes! I am
particularly bad at using prepositions. If you can, please send
me corrections via email.
As you can see, this is a very raw version of the FAQ. It is
because I have just began it and have not got feedback yet. So
it's up to you to make this FAQ grow bigger.
ABOUT THE AUTHOR: I am a male brazilian citizen studying Computer
Engineering at the State University of Campinas, in Brazil. My
name is Claudio Luis Marques Sampaio and my nickname is Patola
(pronounced paa-'toh-laa). My main fields of interest are
artificial intelligence (I am currently member of a project in
computational psycholinguistics) and gaming, of course. I would
like to work for a game company in the near future... I have a
vast knowledge about computer algorythms (in fact, my course is
more oriented to software) and the PC. I am also good at drawing,
experienced in SB programming and I know a bit about graphic
computing. If you want to know more about me, visit my wicked
homepage at http://www.dcc.unicamp.br/~patola/WELC2.HTML (this URL
is case-sensitive).
ÉÍÍÍÍÍÍÍÍÍ»
º º
º º
ÍÍÍÍÍÍ͹ INDEX ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
º º
º º
ÈÍÍÍÍÍÍÍÍͼ
ÚÄ¿
³1³- ADVANCED BUILD CONCERNINGS
ÀÄÙ
ÚÄÄÄ¿
³1.1³- Sprite alignment and clipping
ÃÄÄÄ´
³1.2³- Overlapping sectors
ÃÄÄÄ´
³1.3³- Masterswitches and activators
ÀÄÄÄÙ
ÚÄ¿
³2³- BUILD BUGS AND GLITCHES
ÀÄÙ
ÚÄÄÄ¿
³2.1³- Useful ones
ÃÄÄÄ´
³2.2³- Apparently not useful ones
ÀÄÄÄÙ
ÚÄ¿
³3³- SPRITES
ÀÄÙ
ÚÄÄÄ¿
³3.1³- How to build floor over floor using sprites
ÃÄÄÄ´
³3.2³- Small facts about sprites & textures
ÃÄÄÄ´
³3.3³- Neat effects to try
ÀÄÄÄÙ
ÚÄ¿
³4³- HELP SECTORS
ÀÄÙ
ÚÄÄÄ¿
³4.1³- The first type of help sector: bridging sector
ÃÄÄÄ´
³4.2³- The second type of help sector: the noising sector
ÀÄÄÄÅÄÄÄÄÄ¿
³4.2.1³- First example: fixing a sound bug
ÃÄÄÄÄÄ´
³4.2.2³- Second example: making a delayed sound
ÃÄÄÄÄÄ´
³4.2.3³- Third example: making repeating sounds
ÀÄÄÄÂÄÁÄÄÄÄÄ¿
³4.2.3.1³- "Random" sounds
ÚÄÄÄ¿ ÀÄÄÄÄÄÄÄÙ
³4.3³- A third but less necessary type of help sector:
ÀÄÄÄÙ lighting sector
ÚÄ¿
³5³- GENERAL TRICKS AND HINTS WITH SECTORS
ÀÄÙ
ÚÄÄÄ¿
³5.1³- Effects used with a purpose other than the one they were
ÀÄÄÄÙ intended for
ÚÄÄÄ¿
³5.2³- Deforming sectors
ÃÄÄÄ´
³5.3³- Moving sectors
ÀÄÄÄÅÄÄÄÄÄ¿
³5.3.1³- A few notes about the sliding door
ÚÄÄÄÅÄÄÄÄÄÙ
³5.4³- Overlapping sectors
ÀÄÄÄÅÄÄÄÄÄ¿
³5.4.1³- 720-degree circles
ÚÄÄÄÅÄÄÄÄÄÙ
³5.5³- Simulating environments
ÀÄÄÄÅÄÄÄÄÄ¿
³5.5.1³- Rain
ÃÄÄÄÄÄ´
³5.5.2³- Space
ÃÄÄÄÄÄ´
³5.5.3³- Another light casting effect
ÃÄÄÄÄÄ´
³5.5.4³- Making big areas look small or small areas look
ÀÄÄÄÄÄÙ big
ÚÄÄÄ¿
³5.6³- Making things work using brute force
ÀÄÄÄÅÄÄÄÄÄ¿
³5.6.1³- Crossable mirrors / two-way mirrors / "True Lies"
ÀÄÄÄÄÄÙ mirrors
ÚÄÄÄÄÄ¿
³5.6.2³- Making the subway run in another trajectory before
ÀÄÄÄÄÄÙ entering a circular trajectory
ÚÄÄÄ¿
³5.7³- SE's in the boundary lines of a sector.
ÃÄÄÄ´
³5.8³- Alignment issues
ÃÄÄÄ´
³5.9³- Teleporting issues
ÃÄÄÄÁ¿
³5.10³- Cupboards
ÀÄÄÄÄÙ
ÚÄ¿
³6³- SOME EFFECTORS BEHAVIOUR AND PECULIARITIES
ÀÄÙ
ÚÄÄÄ¿
³6.1³- Subway cars
ÀÄÄÄÅÄÄÄÄÄ¿
³6.1.1³- The locators positioning bug
ÃÄÄÄÄÄ´
³6.1.2³- Teleporting & random teleports
ÃÄÄÄÄÄ´
³6.1.3³- Acting as a propelling device
ÃÄÄÄÄÄ´
³6.1.4³- Deforming
ÀÄÄÄÄÄÙ
ÚÄÄÄ¿
³6.2³- Water sectors
ÀÄÄÄÅÄÄÄÄÄ¿
³6.2.1³- "teleporting" water sectors (2WATER.MAP)
ÃÄÄÄÄÄ´
³6.2.2³- Water sector SE's in the boundary lines
ÃÄÄÄÄÄ´
³6.2.3³- The water nonchanging palette bug
ÀÄÄÄÄÄÙ
ÚÄÄÄ¿
³6.3³- Earthquake
ÀÄÄÄÅÄÄÄÄÄ¿
³6.2.1³- Shaking sprites (MADQUAKE.MAP)
ÃÄÄÄÄÄ´
³6.2.2³- Deforming
ÀÄÄÄÄÄÙ
ÚÄÄÄ¿
³6.4³- Sliding doors
ÀÄÄÄÅÄÄÄÄÄ¿
³6.4.1³- Using sliding doors as 2-way trains
ÃÄÄÄÄÄ´
³6.4.2³- Fixing the autoclose bug with a bridging help
ÀÄÄÄÄÄÙ sector
ÚÄÄÄÄÄ¿
³6.4.3³- Using the autoclose bug
ÃÄÄÄÄÄ´
³6.4.4³- Deforming
ÀÄÄÄÄÄÙ
ÚÄÄÄ¿
³6.5³- Door autoclose
ÀÄÄÄÅÄÄÄÄÄ¿
³6.5.1³- Using autoclose to make doors open and close
ÀÄÄÄÄÄÙ forever
ÚÄÄÄÄÄÄÄ¿
³6.5.1.1³- Types of doors that do it naturally
ÃÄÄÄÄÄÄÄ´
³6.5.1.2³- Types of doors that don't do it naturally
ÃÄÄÄÄÄÄÄ´
³6.5.1.3³- Other effects used with autoclose
ÃÄÄÄÄÄÄÄ´
³6.5.1.4³- *THE 2-WAy TRAIN WITH AUTOCLOSE*
ÚÄÄÄÁÄÂÄÄÄÄÄÙ
³6.5.2³- "Random" autocloses
ÀÄÄÄÄÄÙ
ÚÄÄÄ¿
³6.6³- 2-way trains
ÀÄÄÄÅÄÄÄÄÄ¿
³6.6.1³- Using 2-way trains as doors
ÃÄÄÄÄÄ´
³6.6.2³- How to make 2-way trains go forth and back
ÃÄÄÄÄÄ´
³6.6.3³- Making the 2-way train go away
ÃÄÄÄÄÄ´
³6.6.4³- Deforming
ÀÄÄÄÄÄÙ
ÚÄÄÄ¿
³6.7³- Elevator sectors
ÀÄÄÄÅÄÄÄÄÄ¿
³6.7.1³- Shaking sprites
ÃÄÄÄÄÄ´
³6.7.2³- Teleporting
ÃÄÄÄÄÄ´
³6.7.3³- How to make an elevator work just once
ÃÄÄÄÄÄ´
³6.7.4³- Three or four-story elevator
ÀÄÄÄÄÄÙ
ÚÄÄÄ¿
³6.8³- Teleport sectors (non-water)
ÀÄÄÄÅÄÄÄÄÄ¿
³6.8.1³- One-way teleports
ÃÄÄÄÄÄ´
³6.8.2³- Neverending pit/cyclic neverending pit
ÃÄÄÄÄÄ´
³6.8.3³- Making a looping RPG
ÀÄÄÄÄÄÙ
ÚÄÄÄ¿
³6.9³- Star Trek Doors/four-way doors
ÀÄÄÄÅÄÄÄÄÄ¿
³6.9.1³- Fixing the sound playing twice bug using a noising
ÃÄÄÄÄÄ´ help sector
³6.9.2³- How to build malfunctioning doors
ÀÄÄÄÄÄÙ
ÚÄÄÄÄ¿
³6.10³- Light switch
ÀÄÄÄÂÁÄÄÄÄÄ¿
³6.10.1³- Making the light lit or unlit when the map begins
ÀÄÄÄÄÄÄÙ
ÚÄÄÄÄ¿
³6.11³- Rising/dropping floors/ceilings
ÀÄÄÄÂÁÄÄÄÄÄ¿
³6.11.1³- Credits
ÃÄÄÄÄÄÄ´
³6.11.2³- Masked door closing
ÃÄÄÄÄÄÄ´
³6.11.3³- Using as a door or as an elevator
ÀÄÄÄÄÄÄÙ
ÚÄÄÄÄ¿
³6.12³- Cameras and viewscreens
ÀÄÄÄÂÁÄÄÄÄÄ¿
³6.12.1³- The lethal viewscreen
ÃÄÄÄÄÄÄ´
³6.12.2³- How to make the camera keep rotating
ÀÄÄÄÄÄÄÙ
ÚÄ¿
³7³- GAME EFFECTS EXPLAINED
ÀÄÙ ÚÄÄÄ¿
³7.1³- Fast smashing sectors in E2L7
ÃÄÄÄ´
³7.2³- Delayed sound in E3L4
ÃÄÄÄ´
³7.3³- Doors in E1L5 and E1L3
ÃÄÄÄ´
³7.4³- 720-degree circle in E2L11
ÃÄÄÄ´
³7.5³- Exploding ceiling in E1L2
ÀÄÄÄÙ
ÚÄ¿
³8³- SUGGESTIONS
ÀÄÙ
ÚÄ¿
³9³- THINGS THAT MAY BE POSSIBLE TO DO BUT I DIDN'T FIGURE OUT YET
ÀÄÙ
ÚÄÄÄ¿
³9.1³- 2-way trains go forth and back forever since activated
ÃÄÄÄ´
³9.2³- Real-life elevator
ÀÄÄÄÙ
ÚÄÄ¿
³10³- APPENDICES
ÀÄÄÙÚÄÄÄÄ¿
³10.1³- Vocabulary
ÃÄÄÄÄ´
³10.2³- Listing of maps, what they do, and where they are
ÀÄÄÄÄÙ referenced within this tutorial
ÚÄÄÄÄ¿
³10.3³- Acknowledgements
ÀÄÄÄÄÙ
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
ÚÄ¿
³1³- Advanced BUILD behaviour
ÀÄÙ
Ok, you have finished reading all FAQs about building on Duke 3D and
already made your first level, huh? As you can see, that's not
enough. BUILD has many small details not listed in any FAQs. You
should practice making some effects just to see if you can get them to
work, because THIS is the hard part - if you have made a few maps, you
probably already have stumbled on an effect which doesn't work, or a
misterious non-expected behaviour of some structure.
This is the reason you should know more about BUILD structure and
effects limits. These are the most common limits:
ÚÄÄÄ¿
³1.1³- Sprite alignment: If you haven't noticed yet, there are two
ÀÄÄÄÙ main types of sprites: the ones which fall and the ones
which don't fall.
- falling sprites: these are some special objects, like the
goodies you pick up, the creatures and some animated sprites.
When you have not met them yet, they are just like the others,
they float in the air, they are not killed by crushing walls or
ceiling, and so on. You must know that, when they enter your
point of view or get on a certain distance, the BUILD engine
initializes some variables that will take care of their special
attributes, like falling speed, current health status if it is a
creature, ammo status if it an weapon... You got it. You may
notice that this classifying is not very accurate, because there
are sprites which have this feature and don't fall - all the
floating creatures. Yet, it is not accurate and has exceptions,
but it is more than adequate for the purpose it serves.
You can make some experiments to see this variable initialization
moment. If you put some monsters very high in a room, when you
enter it they will still be floating and will not attack you. But
if you use your jetpack and go up to see them, you will notice
they will begin to grunt - that's when they are "activated" (see
map SPRACTIV.MAP). You could do even more fun things: for
example, put many monster sprites in a subway path. They will not
be affected by the subway until you arrives - you are their ruin.
:-) Put some camera sprites to see them, when you see them in the
viewscreen they are not activated. If they are in a conveyor
belt, for example, they won't be taken along by it.
- nonfalling sprites: That's it. They just keep in the place
they are. But that becomes a more interesting matter if you ask
how it acts into a moving sector; for example, an elevator or a
subway.
Basically, they are always aligned to the floor - and there is no
way to change this referential. I mean you can't make them
aligned to the wall, or to the ceiling. It is not possible. But
if you want to make the sprite move with the ceiling or the wall,
you will see later in this tutorial there are workarounds for it.
When the moving sector moves under the sprite without carrying it,
it is aligned to the floor of this sector even when it "leaves" it
(actually the floor leaves the sprite). This can lead to some
bugs, though. There's an example map on it, SPRTALGN.MAP, which
shows an alien face initially aligned with the floor. When you
push the switch, it begins rising with the floor, and continues to
do it even when it is over the floor of another sector - the
moving sector passing below it (don't worry with this sector yet,
I'll explain it later). You could change the initial location of
this alien face and put it in the moving sector. If you do this,
you will notice it won't move, even when it is in the rising floor
sector, but this time it will "blink". It is a glitch. Actually
the programming is made such that the sprite _continues_ in the
sector even after it leaves its physical space, but this time with
negative coordinates (If the sector has a colored palette, for
example, the sprite will remain with it). In the objects drawing
priority, this affects the viewing of the sprite and causes this
blinking. It occurs with Duke too. If you climb on the moving
sector, press F7 and watch when it leaves you, you will notice you
are "floating" in the air. Actually you are still in this sector.
Walk a bit and you will fall normally (after you walk build checks
for coordinates).
For the very special sprites, let's say, Sector effectors,
masterswitches and so on, they are still nonfalling sprites. They
behave exactly like the others. But you have to know details
about the individual behaviour of every sector effector. For
example, the subway sector effector, if used with the teleport
sector effector, can teleport you to a still location. But if you
teleport from this still location to the subway, you will be
teleported not to where the subway is, but to its initial position
at the pre-map.
Also, sprites are moved up and down with PgUp and PgDown keys, but
these units of movement are just too big if you want to fine-align
sprites vertically. So, there's one trick: try to create it just
in the height you want when you are facing a wall. It will be
created one-sided and plan, but you can always revert this and
reposition the sprite in 2D mode (it will remain at the same
height).
Now let's talk about clipping. This is the way the drawings of
the sprites are "cut" by things that are in front of it. BUILD
uses an algoritm of approximation, what means that it does not
always work. But a technical explanation does not fit here,
because if you know about graphics computing you should understand
the basic behaviour of the sprites drawing and their precedence.
But there are some facts of interest:
- BUILD computes clipping from the midpoint of the sprite.
- If you resize the sprite, bigger it is, bigger are the chances
of it clip wrong. So use a lot of small sprites instead of big
ones to make the structures you want.
- If you are going to build a tridimensional structure with
sprites, say a box, try to make the sprites one-sided so that the
visible side is in the outside. This prevents graphic
incoerences. I have seen many solid-looking bridges in certain
levels that looked ok from most angles, but in others the back
sprites clipped the front sprites and made the bridge look really
weird.
- So the basic rules are: try to use small one-sided sprites
whenever it's possible.
If you want to know more about building tridimensional structures
with sprites, read section 3.1 - How to build floor over floor
using sprites.
ÚÄÄÄ¿
³1.2³- Overlapping sectors: Have you read the warning in BUILDHLP
ÀÄÄÄÙ that warns you about overlapping sectors? If not, I will
quote it here for you:
"1) You can never see 2 overlapping floors/ceilings in 3d mode.
The sectors can be cut to get around this
2) Overlapping sectors can never share a double-sided (red) wall"
These rules apply. Never disobbey them. But it's not only that,
you have to know more about how BUILD plots sectors to take full
advantage of overlapping sectors. First of all, why can't you see
2 overlapping floors/ceilings? That's because BUILD plots whole
sectors at once. If some part of the view is filled by a sector,
then all of the space of this sector is taken as plotted, and
anything else within it which is not a child sector is discarded.
That's why you can't see another sector which shares the same
space with the sector you are in. Then, if you make two sectors
which share the same space at once, only one of them will be
drawn. The other will not be drawn, leading to the well-known
"Hall of Mirrors" effect (the drawings that were once in the
screen position where this second sector was to be plotted will
remain there, leaving a "trail").
One example of this can be seen in the map files 2STORYA.MAP and
2STORYB.MAP. 2STORYB.MAP is the same as 2STORYA.MAP, but with two
overlapping sectors added. These maps should help you to
understand the priority and limits of overlapping sectors. There
are five overlapping sectors, one getting from the white line (the
upper sector), the larger sector connected to this corridor, the
one getting from the red line (the lower side), the one connected
to this corridor, and the sector made by the red line from the
sector you begin it. This is a real 2-story map, but it doesn't
work because of the limitations of build with overlapping sectors.
It would be really boring to describe the priority and status of
drawn/not drawn for each sector in each position you get, but it
is kind of easy to get that if you get a notion of graphic
computing... Play with the map a little. Use the jetpack to see
from above. Pay attention to these five sectors; watch when one
is designed and other is not. Try 2STORYA.MAP first because it is
simpler. Then try 2STORYB.MAP and compare with the first. If you
don't understand why there is that grey wall above the lower
sector entrance, it is just because it draws this entrance...
Build draws the upper wall, the middle wall if it is masked - it
is not, then it doesn't draw anything, showing that wonderful HOM
- and the lower wall, which you don't see because it is below the
floor level...
This is all for the first warning from BUILDHLP, but for the
second warning the explanation is simpler... It would make the
map inconsistent and still have the same problems than the first
warning. Try imagining 2STORYB.MAP with the two rooms getting
from the same red line... A greater mess than it was.
ÚÄÄÄ¿
³1.3³- MASTERSWITCHES and ACTIVATORS: BUILDHLP is wrong. It says
ÀÄÄÄÙ masterswitches won't work with switch sprites and activators
won't work with touchplate sprites. Actually they work. But does
it mean activators and masterswitches are interchangeable? If
not, what are the differences between them?
Well, there ARE differences. They are really not that subtle, and
important for advanced structures.
An activator can:
- Lock up the sector lotag and SEs in it (except for SEs and
lotags that don't accept locks, like SE 10 - door autoclose -, SE
25 - engine piston - and sector lotag 1 - over water sector).
When it is activated, it will activate all SEs in it and the
sector lotag function.
- Have its action made a limited amount of times only if activated
by a touchplate with the hitag telling this amount (infinite if
0).
- Be activated by switches
- Be activated by door walls lotags.
- Be activated by touchplates.
An activator cannot:
- Activate certain effects, for example the earhquake effect (SE
2).
- Reverse an action that is interruptable (like a door opening or
closing) when it is activated by a switch.
A masterswitch can:
- Be activated after some time
- Have its action made more than once if activated by a touchplate
with hitag other than 1 (infinite if 0).
- Be activated by switches (just ONCE!)(*)
- Be activated by door walls lotags. (just ONCE!)(*)
- Reverse an action that is interruptable (like a door opening or
closing) when it is activated by a switch.
(*)-> That makes it real good for setting up effects that
shouldn't be reversed in your map. But remember, you should lock
the effect if it can be locally activated.
A masterswitch cannot:
- Lock up the sector lotag function and SEs in it. For example,
if the player press space on a door which is meant to be activated
by a masterswitch, it will just open normally. The masterswitch
was made for effects that aren't "normally" activated (you don't
just press space on its sector), like earthquakes and C-9
explosions.
Hint: you can get around this placing an activatorlocked in the
sector. This way the sector lotag function and SEs in the sector
could only be activated by the masterswitch.
Still, some people are confused with activatorlockeds also. The
rule is simple for them: they ONLY lock the "local" effects, like
doors and elevators. By "local" I mean these effects which you
have to press space in the location of the effect. Activators and
masterswitches bypass activatorlockeds if activated by switches
and touchplates but not if activated by door walls lotags.
Activatorlockeds do NOT lock up teleports.
Activatorlockeds also mess up with some sector lotag functions.
For example, if an activatorlocked is put in an over water sector
(lotag 1), the sector will not behave anymore as an water sector,
even if it is "unlocked".
I have included a map, ACTMASTL.MAP, that has 3 activators, one
activatorlocked and a masterswitch linked to a door by a door wall
lotag, 3 switches and one touchplate. If you don't understand,
you should play with that map. The light switch is just to show a
combined effect, which doesn't interfere at all. Notice that the
door wall lotag only works on DOOR textures, that is, the textures
that have DOOR in the name. If it hasn't "DOOR" in the name, it
won't work, even if it looks like a door.
Some hints for this map:
- The A, L and D in the switches mean, respectively, activator,
activatorlocked and masterswitch. The T in the floor means
touchplate.
- The door wall lotag will be locked by the activatorlocked, all
other things won't.
- The touchplate works just one time for its activator.
- I have included separate activators for each thing that
activates. If you make them a single activator, you will notice
the touchplate will still activate it just once. This shows the
counting of how much times the activator is activated is in the
touchplate, not in the activator.
ÚÄ¿
³2³- BUILD bugs and glitches
ÀÄÙ
Maybe you already know that BUILD has lots of bugs and glitches. But
have you noticed that most of these bugs are previsible ones? They
always occur the same way. This shows the very good side of it: they
can be used to produce new effects. After all, this is the main
reason of this tutorial.
ÚÄÄÄ¿
³2.1³- Useful ones
ÀÄÄÄÙ
If the glitch or bug can make a good effect, it is listed here.
As it is useful, the part of this tutorial that explains it is
indicated.
- Autoclose SE doesn't work properly on star trek doors, four-way
doors and sliding doors. Instead it makes the door keep opening
and closing. Section 4.1 (on how to fix this) and 6.5.1.
- Locators positioning in the subway track sector can lead the
subway to go crazy. Section 6.1.1.
ÚÄÄÄ¿
³2.2³- Apparently not useful ones
ÀÄÄÄÙ
The reason for the bug to be listed here is not that it is really
not useful, but rather that I haven't thought about how to use it
in a neat effect or I don't know how to predict it.
-> Some SE's, when in sector boundary lines, get their behaviour
altered.
-> If you make a sector within a sector, then move this inner
sector into another sector, it will behave strangely. Sometimes
it won't even appear in 3D view, and won't be selectable. This
rule is valid even if the inner sector is valid player space.
To fix it, just put the sector back into its parent sector
moving its points.
-> If a nonfalling sprite is in a vertically moving sector, it
will get slightly unaligned after some activations of this sector.
This is illustrated in 3FLRLIFT.MAP; if you activate the elevator
a few times, you will notice it. Sometimes it can start shaking,
too (MADQUAKE.MAP and SHAKLIFT.MAP), though this can be useful.
-> Clipping of sprites is somewhat buggy, making sprites appear
(or disappear!) incorrectly from certain angles. This is
explained in section 1.1.
-> 3D drawing priority is such that a moving sector which enter
solid space (a wall) will show a really strange effect. In most
cases, you would still see it and there will be a "stripe" over
its ceiling and beyond its floor to the limits of the screen. If
you are in a moving sector that leaves valid player space, you
could get killed.
-> Sprite #1026, HORSEONSIDE, is buggy. Apparently he was
supposed to be one of these three-dimensional sprites which you
see differently from each angle, because it has all the positions
for it. But if you actually put the first frame in a sprite and
play it, it disappears. Other frames work but keep static, not
changing when you change angles.
-> Not a bug at all... Texture #2420, ORGANTIC, is a bit curious:
it looks like a creature 3D Realms designers thought of and were
going to put in Duke3D registered, but quit due to the hurry to
get Duke3D finished. If you use this, you will notice it will act
just like a regular sprite, yet it has some frames and is in the
middle of the creature textures...
ÚÄ¿
³3³- Sprites
ÀÄÙ
Sprites are cool. They can be used to produce a lot of neat tricks,
and there are special sprites which can by itself be a source for many
other tricks.
You can see many of the tricks in the sample maps are with sprites.
In fact, even all the chapter about sprite alignment was just to
prepare you for this part. First you will show you how you can make a
workaround about Duke Nukem 3D being not really 3D but, as they say,
"2.9D".
Quake is out, and it showed it how wonderful can be the 3D structures.
But Duke Nukem 3D also has this capabilites if you use sprites; in
fact, the only thing you could not do with sprites is a slope.
For reading this section you should first read section 1.1. It
explains details about their behaviour, like clipping and alignment.
ÚÄÄÄ¿
³3.1³- How to build floor over floor using sprites
ÀÄÄÄÙ
It is not as easy as it can look at the first sight. I have
prepared a sample map, 2STORY2.MAP, for you to look at while you're
reading this. I have made it to look like 2STORYB.MAP, so take a
glance at it too.
We want to make one sector (the initial sector) which has a high
ceiling and from which you can see two rooms, one just over the other.
To make this more interesting, let's say these rooms have different
sizes, shapes and textures. One is totally red, the other is like a
checkerboard. These are the shapes of the two rooms (an advise: try
to plan these shapes concerning a large grid size as its
"resolution"):
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³ ³ ³
³ ³ ³ ³
³ ³ ³ ³
³ ³ ³ ³
³ ³ ³ ³
³ ³ ³ ³
³ ³ ÀÄÄÄÄÄÄÄÄÄ¿ ³
³ ³ ³ ³
³ ³ ³ ³
ÀÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÙ ³ ÚÄÄÄÄÄÄÄÄÄÙ
³ ³ ³ ³
ÀÄÄÄÄÙ ÀÄÄÄÄÙ
the lower, red room the upper, checkerboard room
First of all, let's see how these rooms are going to share the same
space:
ÚÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÒÄÄ¿
³ º º ³
³ º º ³
³ º º ³
³ º 4 º ³
³2 º º 3³
³ º º ³
ÀÄÄ×ÄÄÄÄÄÄ¿ º ³
º ³ º ³
º 1 ³ º ³
ÈÍÍÍÍÍ͵ ÚÄÄÄÄÄÄÐÄÄÙ
³ ³
ÀÄÄÄÄÙ
You can see that the whole section marked with 4 will be used by both
rooms, so this is the only problematic part. Part 1 is used only by
the lower room, part 2 and 3 are used only by the upper room. So
let's simplify things: First we will create one sector which is going
to comport the rooms - furthermore it has to have the ceiling at the
height of the upper room ceiling and the floor at the height of the
lower room floor - and subdivide it in these four parts. For the
sample map, the height of the ceiling is 55 ticks.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄ¿
³ ³ ³ ³ ³ ³
³ ³ ³ ³ ³ ³
³ ³ ³ ³ ³ ³
³ ³ ³ ³ 4 ³ ³
³ ³ ³2 ³ ³3 ³
³ ³ ³ ³ ³ ³
ÀÄÄ¿ ³ ---> ÀÄÄÅÄÄÄÄÄÄ¿ ³ ³
³ ³ ³ ³ ³ ³
³ ³ ³ 1 ³ ³ ³
ÀÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄ´ ÚÄÄÄÄÄÄÁÄÄÙ
³ ³ ³ ³
ÀÄÄÄÄÙ ÀÄÄÄÄÙ
Now let's see: part 1 is just the red room. So let's color its
walls, ceiling and floor red (change their textures). Now lower the
ceiling to the height you want for the red room (let's say, 26 ticks
over the floor). For part 1 now it's all done.
For part 2 and 3 do the same as you did to part 1: change the texture
of the floor, ceiling and walls to checkerboard. Change the floors
height to the height you want for the checkerboard room floor, say,
slightly above the red room ceiling (what about 30 ticks over the red
room floor?). Ok, for part 2 and 3 it's done too. Now let's see part
4.
Now it gets more complicate. Part 4 is going to comport both rooms,
but one wall can have just one texture. So let's create 3 sectors on
the walls of 4 so that we could use the ceiling wall and floor wall
textures:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ 5 ³
ÚÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄ¿
³ ³ A ³ ³
³ ³ ³ ³
³ ³ ³ ³
³ ³ 4 ³ ³
³2 ³ ³3 ³
³ ³ ³ ³
ÀÄÄÅÄÄÄÄÄÄ¿ ³ ³
³ ³ ³ ³
³ 1 ³ D ³ ³
ÀÄÄÄÂÄÄ´ ÚÄÄÄÄÄÄÅÄÄÙ
³ 6³B C³ 7 ³
ÀÄÄÁÄÄÄÄÁÄÄÄÄÄÄÙ
For sectors 5, 6 and 7 we have to do the following: lower the ceiling
and raise the floor to the height of the upper room's floor or the
lower room's ceiling. Now press "2" on walls A, B, C and D. This will
make the textures of the ceiling wall and the floor wall separately
editable. Choose the lower textures of these walls as the red pattern
texture and the upper textures as the checkerboard texture.
Now we have the walls as we wanted to. Notice that if you wanted to
make 3 rooms, you could still use 3 different textures. Besides the
ceiling wall and floor wall textures, you could use the wall texture
as the middle one; for that you should mask and block the wall and
choose its texture. Or, when having multiple floors, you could
simulate this effect making very thin sectors alongside the walls of
interest and making its walls with different textures, lowering its
floor or raising its ceiling so that you could see the textures of the
other wall.
And finally we are going to use sprites. If you have understood so
far, you can be sure this is going to be the easiest part. The
sprites are supposed to be put just in the space where the two floors
are going to intersect, i.e. sector 4:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³
³ ³
³ ³
³ ³
³ ³
³ ³
ÀÄÄÄÄÄÄ¿ ³
³ ³
³ ³
³ ÚÄÄÄÄÄÄÙ
³ ³
ÀÄÄÄÄÙ
Let's put the first sprite. Press 'S' on the floor close to the wall.
Block the sprite if it is not blocked. Rotate it so that stand plan
in the floor. Press '1' on it so that it gets one-sided. We are
going to do the floor of the upper sector, so change the sprite's
texture to the checkerboard pattern.
Now press Alt-TAB on the sprite and put another identical sprite on
its side. Repeat this until you have the floor all covered with
checkerboard sprites. Switch to 2D mode and select all these sprites
with Shift. Switch back to 3D mode and raise all the sprites at once
to the height of the upper floor. In our example, that's 30 ticks.
Now the lower ceiling: do just what you did to the upper floor, but
don't make the sprites one-sided and change its texture to the red
pattern. Raise these sprites to the height of 26 ticks. Now go down
and point to every sprite, making it one-sided. To check if they are
all one-sided, go in between 26 ticks and 30 ticks and check if you
can see any sprite. If you can, this sprite is two-sided. Go to the
height from which you want to see it - up if it is a floor sprite,
down if it is a ceiling sprite - and make it one-sided (it always get
one-sided in the side you are watching it).
Now we have to make the side of the wall-ceiling block. Watch the
rooms from the outside: it lacks the side. In our example, the side
has to have the gray texture of the outer wall to look continuous. So
we just make a sprite with this texture. Raise it to the height where
it meets the two sprite sets perfectly, making a nice solid-looking
block. You may have to resize it so that it meets the two sprite sets
edge, and if you plan making a detailed two-floor structure, you may
have to plan the lower floor and upper ceiling heights according to
the side sprite size. If you feel like needing this, put various
sprites side-by-side to make the side (in our example, we have two
sprites. It's actually better to have more small sprites, it prevents
graphic glitches). Oh, do not forget to rotate and make the side
sprites one-sided too.
Note: If you can not align the side sprite perfectly with the two
sets of floor sprites, and you are making the sprite appear in the
ground to rotate it and raise it to this height, you should try an
alternative solution: try to make it appear directly in a wall. When
you press 'S' on a wall, the sprite appears automatically rotated and
one-sided, but more important than this, it appears exactly where your
mouse cursor is, resulting in a finer height adjustment (the steps
the sprite takes with PgUp or PgDn are too big). So you can try
making it appear in a wall until you have the right height, and only
then move it next to the floor and ceiling sprites in 2D mode.
Now the two rooms work perfectly, don't they? Actually they don't.
Try to save you work now and play it a bit: see if you can find the
glitch. You can play 2STORY2.MAP too, I have purposefully let this
glitch intact.
In the boundaries where the fake floor meets the real floor and the
fake ceiling meets the real ceiling, you may notice there are small
lines from which you can see through.
But for this glitch the solution is very simple: we don't have this
discontinuity among the sprites, isn't it? So add more ceiling and
floor sprites in these boundaries. Now it will look continuous.
ÚÄÄÄ¿
³3.2³- Small facts about sprites & textures
ÀÄÄÄÙ
In the build engine, you could assign a particular behaviour to
one single sprite. Many of the sprites of Duke Nukem have interesting
behaviours that could be used to make fun things. Here are listed
some:
1 - Sprite #2333 is the floorflame, you could already know this.
But did you know that if you put frame #2338 (it isn't named!)
instead it turns itself into a continuous floorflame? And it
hurts you too!
2 - Sprite #969, Hydroplane, can be broken twice, and the second
time it is broken it shakes continuously.
3 - Sprites #578 (reactor2) and #1088 (reactor) hurt you when you
get close, and you could already know this. They do this until
they are broken. If you hide them, you could make an interesting
effect of a "hurting area" without a hurting floor. You can put
them below the floor level, too.
4 - Most textures don't have the same behaviour when they are in
sprites and walls. For example, the breakable screens textures
aren't breakable when they are in a sprite.
5 - If you put a hitag on a oozfilter or seenine sprite, it will
have a delay before the explosion. But until this delay expires,
it is completely undestructable!
6 - If you are in the invisible side of a one-sided sprite, you
can pass through it.
7 - Some sprites, specially animated ones, get all messed up if
you rotate them plan to the floor. But they still work. If you
do this to creatures, you can get weird pixelated enemies!
8 - If your "body" is in the same space as some sprite, the BUILD
engine will make a check for this and will try to take you off
this sprite. If it can't, for example, you are being smashed by a
floor sprite and a ceiling, you get killed.
9 - Sprite #662, Waterbubblemaker, spawns floating water bubbles
from where you put it. Sprite #660, waterdrip, spawns falling
water drips from where you put it.
10 - Flipped sprites will still align to the floor, not to the
ceiling. Flipped falling sprites will still fall on the ground.
11 - Sprite #3400 (BLIMP - the Duf Beer balloon sprite), if
unblocked and blown up by an explosive weapon, spawn a dozen
goodies to the player.
12 - It is in Daedalus' FAQ, but it is always good to remember:
duke's crashing helicopter is sprite 1386 and duke's crashing
spaceship is sprite 2491. These sprites fall on the ground and
explode. Remember the topic about activation of sprites; it will
begin to fall only when you see it or get close to it. You can
even do neat effects, like raining helicopters :-) or something
weird like that...
13 - Sprite #2566 is the active tripbomb. If you want just to
scare the player without actually hurting him, place it in
non-valid player space (accomplish this by first making the
position where it will be becoming valid player space, by dragging
some lines around it. Then, after you have put the sprite, drag
the lines back).
14 - The CHAIR3 texture (#680) can be seen different from
different angles. This is true for other textures too, like the
WOODENHORSE (#904). But CHAIR3 is breakable and blocked even if
you unblock and hitscan off it. However, if you choose one of its
other frames, it turns itself into a regular sprite, and won't be
seen differently from other angles.
15 - The FIRE textures use the same frames as the BURNING textures
(FIRE = #2271, BURNING = #2270, FIRE2 = #2311, BURNING2 = #2310),
but the BURNING textures disappear after a while. Both textures
hurt the player.
16 - Texture #160, DOORSHOCK, is a squishing sprite you should put
in space doors.
17 - Some textures have special properties, for example being
breakable. Some have these properties when they are in a sprite
(e.g. DOMELITE, #551); others when they are in a wall (e.g.
SCREENBREAK1, #263); others when they are in a two-sided wall
(even if it is not in both sides)(e.g. STAINGLASS1, #510). There
is no such texture that is breakable in all of the cases (though
the mirror texture - #560 - is breakable when it is in a one-sided
or two-sided wall. You can make almost anything breakable when it
is a sprite, giving it a hitag, but that's different.). So it's a
good solution to make unbreakable glass, for example. If you
change the palette of a breakable texture, it continues breakable.
But there are some textures which have special properties and
these properties disappear if you change some attributes; the most
meaningful case is the BIGORBIT1 (#84) texture. If you put it on
a ceiling, it kills you only if it is parallaxed and has palette
0. You can not change these attributes if you want this texture
to kill you, though you can slope it, for example.
18 - Texture #663, the forcefield, besides its behaviour of
hurting and blocking the player, has an interesting side effect:
it scrolls itself diagonally, upside-down and in irregular speeds,
taking along the ceiling wall texture and the floor wall texture.
See FFIELD.MAP to understand... It is not possible to make the
texture not become upside-down, and if you put a special texture
on the floor wall or the ceiling wall (e.g. an animated wall
texture), it won't scroll anymore. If you don't want the force
field to hurt you, make an invisible wall very close to it and
block this wall.
19 - If you start the player in a hurting texture (FLOORSLIME -
#200, HURTRAIL - #859 - and FLOORPLASMA - 1082), he will not start
with the pistol. He will be on bare hands! Palette changing does
not alter this property.
20 - Texture #230, bigforce, has an interesting property: it
produces "ripples" when shot. It is ideal to make invisible
walls (mask the wall, choose this texture and unmask it), because
it does not sustain these "bullet holes" in midair. And it
doesn't hurt the player.
ÚÄÄÄ¿
³3.3³- Neat effects to try
ÀÄÄÄÙ
- THE INVISIBLE ONE-WAY ELEVATOR (map GOUP.MAP) - This effect
joins sprite facts #6 and #8. Make two big sectors (1 and 3), one
higher than the other, and one small sector between them (2) that
will be the "elevator":
ÚÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄ¿
³ ³ ³ ³
³ ³ ³ ³
³ ÃÄ´ ³
³ 1 ³2³ 3 ³
³ ÃÄ´ ³
³ ³ ³ ³
³ ³ ³ ³
ÀÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ
Now put one sprite in the floor of sector 2, make it plan to the
floor, change its texture to one you like and make it blocked and
one-sided. Raise it a bit so you can go under it in the game.
Press Alt-Tab to copy it to the clipboard.
Now put another sprite in the floor of sector 2, that will be
identical to this last sprite due to the Alt-TAB you pressed.
Raise it 3 ticks over the first sprite. Now repeat this until you
have many one-sided sprites 3 ticks above each other. The last
should be around the level of sector 3 floor.
Now play it. You should duck to get under the first sprite. You
don't see it from below. If you stand up, you will be right in
the same space as the sprite, and BUILD try to take you off this
sprite, raising you over it. But you get in the same space as the
second one-way sprite - and so on. Thus you are very quickly
raised to the level of the third sector. Note that this
"elevator" is one-way, i.e., you can't go back because the upper
side of the sprite is blocked!
You can make some variations of this trick, too. For example, you
can make the first sprite higher so this effect is only activated
when you jump in sector 2. You can hide the one-sided sprites
from view to make it look more surprising.
If you like it, you can build a ladder using this technique. The
one-sided sprites would be the steps.
- You can simulate a soft drink tank by making regular water
sectors and changing the water palette and putting many
waterbubblemaker sprites (#662). Maybe Duke was just visiting a
soft drink factory. :-)
- Have you seen Indiana Jones III? What about making a invisible
bridge for the player to walk in? There are two ways: If you
want to make a nearly invisible bridge, get a very sparse masked
sprite, like sprite #509, make it with maximum transluscence
(press t twice), block it, make it flat with the floor, and
stretch it to make it look like a bridge. Raise it to the
location where you do want the invisible bridge and that's all.
But if you do the other way, a REALLY invisible bridge, try to use
a sprite that gets invisible when you play the game, like a SE or
a GSPEED sprite. If the sector already has one of these special
sprites and it doesn't require to be in the floor, you can use it
as the bridge. Just make it just like the first way, but you
don't have to make it transluscent.
- You can try neat things with the palette. Some examples are
putting the red palette on monsters, making they look like demons,
or putting the black palette on monsters and making them
transluscent, making they look like "predators" (A-ha! for Doomers
that comply about don't having almost invisible creatures like in
Doom, look at this!). If it fits the theme of your map, you could
also make demons transluscent, flipped or flat, but only if it
fits. Usually this looks amateuristic.
- You can simulate a sunlight effect with an unblocked
transluscent sprite (map LIGHT.MAP). Notice that the sprite is
not flat, looking like a circular light. If you try to make the
same effect with masked transluscent walls, it won't look too
realistic, because the back walls interfere with the front walls
and you could see the textures changing the perspective.
- 3-STORY LIFT (map 3FLRLIFT.MAP): You can build a nice lift
which can reach 3 floors by putting a sprite in it. Just make a
regular lift in the middle sector of a "T" by sectors:
ÚÄÄÄÄÄÄÄÄÄÂÄÄÄÂÄÄÄÄÄÄÄÄ¿
³ 1 ³ 4 ³ 3 ³
ÀÄÄÄÄÄÄÄÄÄÅÄÄÄÅÄÄÄÄÄÄÄÄÙ
³ ³
³ ³
³ ³
³ 2 ³
³ ³
³ ³
³ ³
³ ³
ÀÄÄÄÙ
Sector 4 is the lift sector. Sector 1 has the lowest floor, and
this floor has the same height as sector 4's; sector 2 has a floor
higher than 1. Sector 3 is even higher. Put one flat 2-sided
sprite on sector floor, block it, and raise it to sector 2 floor
height. Don't forget to put switches in every floor to activate
the lift - and even in the lift. It's done.
By the way, this map has a bug. After some activations, the
sprite gets slightly unaligned, and this unalignment grows with
the number of activations. Hope 3D Realms fixes this bug on
version 1.4 of Duke Nukem.
ÚÄ¿
³4³- HELP SECTORS
ÀÄÙ
Did you notice that more than one single effect can be linked to more
than one single event in BUILD? Indeed, this single detail can lead
to one very powerful thing: a help sector. If build is not able to
make one effect you thought of, maybe you can force it do the effect
with the concept of HELP SECTOR.
But what is a help sector? Well, let's define it:
HELP SECTOR is a sector in BUILD you use just to help some effect to
happen, or act as a "bridge" between another effects, or the place
where an effect must happen without actually having to be either
accessible or visible during the game.
This can sound strange. How could a sector be useful if it is not
accessible or visible? To make things clear, let's take an example
and explain it completely. Suppose you want to make double
autoclosing sliding doors but - rats! - that damn SE 10 effect, door
autoclose, doesn't work with sliding doors! (see section 5.5 for
further explanation on this)
But does it mean we can't build autoclosing sliding doors? Not quite.
SE 10 just waits some time, and activates the door again so it closes.
So maybe we can pick another effect which has the following sequence:
activation, time delay, activation. The 2-way train effect does it!
See map SLIDEBAK.MAP to get the idea.
ÚÄÄÄ¿
³4.1³- The first type of help sector: the bridging sector
ÀÄÄÄÙ
Now we are going to see the first type of help sector. It's
characterised by an effect that acts as a bridge, i.e., is activated
to activate another effect.
So, before we can use it, let's try to understand this effect better:
the 2-way train begins in an intermediary position along its track.
When it is first activated, by channel x let's say, it runs to locator
0 - its "first position" -, then activates channel x+1 (which is
supposed to be the door from its first position). Then, if it is
activated again, it first activates channel x+1, runs along its track
and, when it arrives at its second position, activates effect x+2. If
activated again, the 2-way train now will do the opposite: activate
channel x+2, go from position 2 to position 1, then activate channel
x+1.
We can identify some topics of interest here:
1 -> What about the sliding doors? They are meant to be activated!
Why are we worrying about this 2-way train effect?
2 -> So are they meant to be activated locally (pressing space on the
door) or by a switch?
3 -> It activates different effects each time it is activated, x+1 and
x+2, and the order of these effects is reversed each time it is
activated.
4 -> It begins in an intermediary position and activates just one effect
(x+1) the first time.
5 -> The time delay depends upon a distance.
Most of these topics are obstacles. To answer the first: we are
actually going to activate the 2-way train, not the sliding doors
directly. Then we will make it so the 2-way train activates the
sliding doors as we wanted to. This justifies the name "bridging
sector".
Therefore we will have to disallow the player from activating the door
itself. To accomplish this we will just use activators on the sliding
door, they lock local activation (do not worry about them yet, we will
talk about it soon). So we will use a switch with lotag 400 (or any
other number you want). If we wanted to, we could still use simulated
local activation; it is sufficient to lotag the sliding doors walls
400 and change their textures to DOOR-named textures.
Now let's understand the map better: You put lotag 400 on the door
walls and/or the switch. This mean they activate activator 400. But
where is activator 400? It's not in the doors. It's in the 2-way
train (I ripped apart this 2-way train from _SE.MAP for simplicity,
you can make your own of course). This means you are going to use the
switch/wall lotag to activate the train; the train by its turn
activates effect 401, runs along its track, arrives at its destination
and activates effect 402. And the same for the reverse, 402 first and
401 later.
But we still need to use a double activation for the door, huh? So we
just put two activators in the doors, one lotagged 401 and other
lotagged 402. First activation will open the door, second activation
(after the delay of the train run) will close it. Since they activate
the same thing, its order doesn't matter anymore.
Please note: There are two sliding doors. But they are linked by the
same SE hitag, causing the activation of one be the activation of the
other too. So I just need to put these two activators in one door,
the other will move accordingly.
There's still one problem. At its first activation, the 2-way train
moves from an intermediary starting position to its first locator.
Only after that it will begin to move from one locator to another.
We can solve this problem just by activating the train at the
beginning of the level, with a one-time touchplate performing this
job. This is not a big problem if the player does not see the door at
beginning of the level. I have put the touchplate just in the sector
the player begins, it activates the 2-way train for the first time.
Notice that I made the sliding doors start opened and then close when
of this first time activation. Pay attention at the SE 15's
tails directions.
Last but not least, if you want a longer or shorter delay, resize the
2-way train track and shift its locators so it meets your
requirements.
That's it for this type of help sector. There are many possibilities
there: the time delay can be used to create many new effects.
Remember that if you want to activate a timed event just once you
better use a masterswitch than this trick.
*TIP* you can make the bridging sector loop forever. Use a SE 10
(autoclose) with it. Read more about it in section 6.5.1.4.
ÚÄÄÄ¿
³4.2³- The second type of help sector: the noising sector
ÀÄÄÄÙ
Now let's see for the second type of help sector: it is mainly
associated with sound and is often used to correct bugs and lack of
sound handling effects. Still it is a lot easiear than the first
type; however, I didn't explain it first because the first type is
more conceptually meaningful.
Maybe you should know that this type of help sector is actually used
in the game. It can be seen in E3L4, for example. You have a
detailed explanation about this effect in the game in section 7.3.
ÚÄÄÄÄÄ¿
³4.2.1³- First example: fixing a sound bug
ÀÄÄÄÄÄÙ
Let's take an example situation to see the first noising sector:
suppose we want to make a star trek door but we don't like the "sound
playing twice" bug of this door.
We are going to make a noising sector to make our door sound right.
In fact, our door won't make the sound. The helping sector will
instead. It is going to be activated at the same time than the star
trek door. This is our map STNOISEC.MAP.
Well, first of all, let's build a crude star trek door and verify if
it is working. Sector lotag 9, hmm, that sounds right. Now let's
activate it by a switch: put a switch somewhere and make it be
activated (for some reason, door walls lotags don't work properly with
star trek doors). Everything works fine? Good. Now let's head for
the important part - making the sound work.
Build a sector nearby isolated from other sectors. Build a simple
ceiling door in this sector (lotag 20). Put an activator in this
door. Also put a MUSIC&SFX sprite in this door. lotag the activator
with the same number you gave to the switch and the star trek door
activator, so this ceiling door and the star trek door will be
activated simultaneously.
Let's put a door sound lotag on that MUSIC&SFX sprite. 166 is a good
value.
Now let's see: the switch will activate both doors. The star trek
door won't make any sound, but the nearby ceiling door will. The
ceiling door is not visible, so it will look like the star trek door
made the sound.
Now let's enhance our map: first of all, we want a starting and
finishing sound for the door. But this means we have to synchronize
the ceiling door and the star trek door so that they finish opening or
closing at the same time. Put GSPEED sprites in both doors, and
give the star trek gspeed a value you like. Try to change the value
of the GSPEED sprite in the ceiling door so that it gets synchronized
with the star trek door. For our map, I have found that 96 is a good
value for the star trek dor GSPEED and 128 for the ceiling door
GSPEED. 167 is the finishing sound I have chosen.
If you have a good ear, there's another problem: the sound doesn't
look like it comes from the star trek door. If you put the ceiling
door sector on the right, the sound will seem to come from the right.
Duke 3D has stereo sound...
But the solution is very easy. Just select the ceiling door sector
with right Alt and then carry it to where the star trek door is. It
won't cause problems, because it is just another overlapping sector...
It won't appear in the place of the star trek door.
Now you have a fully functional star trek doors! Easy, not? So let's
take another example. It's simple too.
ÚÄÄÄÄÄ¿
³4.2.2³- Second example: making a delayed sound
ÀÄÄÄÄÄÙ
Now we want something different. Duke's gonna walk through a sector
and after 4 seconds he should say: "I ain't afraid of no Quake!"
(sound #236). The map for this effect is DELAY.MAP
First of all, let's make a touchplate sector through a corridor. We
are going to use a door to make the sound too, but this time the sound
will be activated just once. That's easy for the touchplate, just
hitag the touchplate sprite 1. Make the ceiling door sector (lotag
20) and put a masterswitch in it. It has to be a masterswitch because
it has to have a time delay. Can't be an activator. Lotag it, let's
say, 301.
Now Duke will talk 4 seconds after he walks in the touchplate, isn't
it? Well, 4 seconds equal to 128 in BUILD units. So let's hitag the
masterswitch 128. Put a MUSIC&SFX sprite in the door sector and lotag
it 236 for the "I ain't afraid of no Quake!" sound.
Now put the isolated door sector very close to the corridor -
preferably overlapping it - and it's done.
Let's see. Duke will walk over the touchplate; it will activate the
ceiling door masterswitch after 4 seconds. The door will rise, making
the sound "I ain't afraid of no Quake!". Since it's near the
touchplate, the sound will look like it comes from it. That's simple.
Now we are finally going to see a more complex example, combining a
tricky effect with the autoclose SE.
ÚÄÄÄÄÄ¿
³4.2.3³- Third example: making repeating sounds
ÀÄÄÄÄÄÙ
Let's see: we want to trigger an alarm sound. This could be just
like the former example, but alarm sounds keep repeating... And we
aren't in the mood to tinker with the .CON files to choose a sound and
make it "ambient" (repeating).
Since we need no time delay, this time we could use choose between an
activator and a masterswitch. Let's try the activator now just to be
different from the former example. In fact, make everything like the
former example, but change the masterswitch to an activator. Let's
follow map AUTOSND.MAP.
Let's change the MUSIC&SFX lotag to a sound that seems like an alarm
sound. Sound #132 will do this job.
Now the tricky part: put TWO autoclose effectors (SE 10) in the
ceiling door sector. The trick is: these two autoclose will keep the
door opening and closing. Now put the SAME hitag on both, using a
time delay that is convenient to your needs. 24 in our example map
(3/4 of a second).
Now we have just what we wanted. When Duke steps onto the touchplate
he triggers the door, making it open just once (touchplate with hitag
1). But then the autoclose SEs make the door open and close
endlessly... If you want to understand more about this SE 10, read
section 6.5.
Problem: if you want to turn the alarm off later, let's say with a
switch, triggering another activator/masterswitch at the same door, it
won't always work - it depends if the door is opening or closing at
the moment. So it will look like the switch is malfunctioning.
ÚÄÄÄÄÄÄÄ¿
³4.2.3.1³- "Random" sounds
ÀÄÄÄÄÄÄÄÙ
Do you want to make the sound of the former example look like random
sounds? Easy! Just put MANY autoclose SE's with different hitags.
You could do this, for example, to activate thunder sounds... And if
the sounds stop after a while (this can occur sometimes), try putting
another SE 10 in the sector with the same hitag of the SE 10 with the
highest hitag of all. Read more about the SE 10 in section 6.5.
ÚÄÄÄ¿
³4.3³- A third, less necessary type of help sector: lighting sector
ÀÄÄÄÙ
SE 8 and 9 are "up open door lights" and "down open door lights".
Maybe you want to make an effect "left open door lights" or somewhat
with a side door. Split doors works normally with either effectors.
See map LTDOOR.MAP.
All you need is make the ceiling door or floor door associated to
lights turning on in an isolated sector. Then make the sliding/star
trek/four-way door/rotating door in the place you want and synchronize
it with the ceiling/floor door (the lights turn on synchronized with
this door).
ÚÄ¿
³5³- GENERAL TRICKS AND HINTS WITH SECTORS
ÀÄÙ
This chapter describes a more general view of some sector tricks, and
explains the basics of it. For a more detailed description of the
effects you should consult chapter 6. In fact, this chapter is just
an overview, a preparation for the next chapter.
The most important things here are the principles. It is important
noy only that you understand the structure itself, but also the line
of thinking which led to it.
ÚÄÄÄ¿
³5.1³- Effects used with a purpose other than the one they were
ÀÄÄÄÙ intended for
Have you ever thought the names of some structures do not fully
describe its behaviour? I mean, an elevator could be arranged so that
it looks and works like a door. A subway could be used as a rotating
sector. And so on.
So this section is made to open possibilities for your map. Maybe
you thought about a structure, say, an one-way teleport... But you
quit the idea because it is said teleports work both ways and there is
no structure in BUILD called "one-way teleport". Then you actually
lose the fact that if you raise the teleport SE once then duke can't
teleport back (explained in section 6.8.1) and this structure is
possible.
Thus, when you learn a structure, try to understand its behaviour
without linking it to its name. It can generate wonderful ideas...
Let's talk about an example: You have got 2-way trains, but they
travel too fast. Isn't there a way to slow it down? No, there isn't.
But there is a structure which behaviour looks like the 2-way train's,
the sliding door (see sections 5.3 and 6.4). And, though its speed
can't be set either, it travels slower than the 2-way train. So if we
respect some limits (the sliding door can't carry things), we can do
this sliding door as a slower 2-way train. See OTHR2WAY.MAP. If we
need to open and close doors when the train gets at its extremes, we
can use a bridging help sector.
This concealing will reveal more interesting in the next two
chapters, about moving and deforming sectors.
ÚÄÄÄ¿
³5.2³- Deforming sectors
ÀÄÄÄÙ
What is a deforming sector? By simplicity, is a sector which have
its shape changed. This includes:
- Stretching sector (the most obvious)
- Star trek door
- Four-way door
- Earthquake sector (yeah, the tilt of the sector is changed)
- Floating sector (waves)
The first three are horizontally deforming and the last two are
vertically deforming. The sectors of interest are the horizontally
deforming.
So let's get back to the question: what is a deforming sector?
In BUILD it's just a sector which can *MOVE* a few vertices to
somewhere. Got the idea?
The stretching sector moves only the two vertices nearest to the
SE. The star trek/four way (they're almost the same thing) door moves
the few vertices nearest to the GSPeed within a radius. The
stretching/squishing of walls is just the result of the walls being
attached to moving and static vertices.
You may have wondered - Why haven't I included sliding doors?
Because they are NOT just simple deforming sectors. In fact, they are
moving sectors! Have you ever noticed the walls textures don't squish
or stretch? This is the key element for understanding how deforming
and moving sectors behave in build.
ÚÄÄÄ¿
³5.3³- Moving sectors
ÀÄÄÄÙ
Let's understand once and for all what is a moving sector: it is
a deforming sector where all vertices are equally affected. Let's
list the moving sectors just as we did with the deforming sectors:
- 2-way trains
- subways (including wagons)
- sliding doors
- rotating sectors (gears, doors)
- Rotate rise sector
- four-way door
- Earthquake sectors
- Floating sector (waves)
- all elevators
- ceiling door, floor door, split door, teeth door
- Rising/dropping floor/ceiling
- Piston
Three of them are distinctive: rotate rise door moves both ways,
horizontally and vertically (well, actually the two doors meeting
could be considered as a deformation). Four way door is horizontally
a deforming sector and vertically a moving sector. An earthquake
sector is vertically a deforming sector and horizontally a moving
sector (by the way, the amount of movement of the earthquake cannot be
changed - it moves horizontally a fixed amount).
But this was just for curiosity. Again, the only interesting
sectors are the horizontally moving ones, that is, the first five.
We are not going to see the details of each type of sector here;
we are trying to be as general as possible. So let's take the common
place of all them: they carry along all the points of the sector.
An example of what's the difference between a moving area and a
moving bunch of vertices can be clarified with one example. Let's
take a regular subway sector and explore its possibilites.
So take a look at DFSUBWAY.MAP. It's a very simple subway sector
but... What's happening there? The subway is attached to a flexible
sector? Moreless. What happens is that the subway sector moves
normally, but two of its vertices are attached to a sector that
shouldn't be moving because it hasn't got a subway SE.
So the attached sector does not move. But the subway sector does,
and carry along its points. This causes the sector attached to the
subway to be deformed by the subway continuously!!! This opens a
whole new world of possible structures.
Note on this particular structure: the sector attached to the
subway HAS to be the same hitag as the subway, otherwise build will
not understand it. If, however, the sector attached to the subway is
an area without valid player space, which you can't hitag, don't
worry: it will actually work normally.
Try to use this stuff with other sectors: rotating sectors,
sliding doors, 2-way trains. Practive is important with this
technique, because it is somewhat complex and may take a time to
master. There are, although, some simple structures that come
directly from this technique:
- Rotating door intermediate sectors which stretch as the door
opens;
- "rubber" intermediate sectors which link subway cars.
ÚÄÄÄÄÄ¿
³5.3.1³- A few notes about the sliding door
ÀÄÄÄÄÄÙ
There is still a point to clear: what about the sliding door? I
have said it was a moving sector, not a deforming sector. I have said
it could be in the place of a 2-way train.
Well, to be frank, there is not much more to say about it. It
is the common use of sliding doors and its name that are confusing
you. Try to understand why the sliding door is a moving sector: why
do you have to push some of its lines far inside the wall? It is
because otherwise the door would be pushing the other sectors. It is
just too hard to explain here, try making different shaped sliding
doors and figuring out its working. Next, try changing the doors for
2-way train. In fact, you could also use 2-way trains as sliding
doors. To make things clear, see the differences between 2-way
trains and sliding doors at section 6.4.1.
ÚÄÄÄ¿
³5.4³- Overlapping sectors
ÀÄÄÄÙ
You must have become used to the limitations of BUILD. I mean,
you know you can't create sloped floors over floors that can be viewed
simultaneously, for example. That is, there are some real-world
structures which you really CAN'T build.
But have you thought about the limitations of the real world
comparing to BUILD? Yes! In real world you CAN'T have more than one
thing occupying the same space - this is a physic law. In build, you
CAN, since you can't see both at once!
ÚÄÄÄÄÄ¿
³5.4.1³- 720-degree circles
ÀÄÄÄÄÄÙ
Have you played E2L11? That's the second secret level of episode
2. If you have, you may have not understood the level if you thought
in terms of real world. It is a 720-degree circle, that is, a circle
in which, to come back to the same point, you have to circle it TWO
TIMES!!! This structure is impossible in the real world.
How do you make that? Just overlap the sectors. Don't make the
sectors too big so that they could be seen at the same time than the
other, and make the circular pathway made of these sectors. I have
made an example map, purposefully very irregular so you can not be
confused by very close vertices, with a 1080-degree "circle", that is,
you have to circle it 3 times to get the same place. This map is
CIRCLE.MAP. See it and you'll get the idea.
There are other possibilities... But now this is up to you and
your own creativity and imagination. I trust you, and I know you will
think of something interesting!!! :-)
ÚÄÄÄ¿
³5.5³- Simulating environments
ÀÄÄÄÙ
I present here just some ideas for the simulation of some
environments. If you want to thrill the player a bit with some not so
frequent ambience, follow this thread...
ÚÄÄÄÄÄ¿
³5.5.1³- Rain
ÀÄÄÄÄÄÙ
Do you want a rain effect? An way to accomplish this is
putting many drip sprites in a parallaxed grey sky ceiling. You can
put cyclers and random lights effects to simulate lightnings. And the
thunder sounds can be made by the random sound activation trick (see
section 4.2.3 about noising sectors and section 6.5.2 about the SE
10). Don't forget to make some water pools with lotag 1 or even the
whole raining sector with lotag 1 to make it look wet!
ÚÄÄÄÄÄ¿
³5.5.2³- Space
ÀÄÄÄÄÄÙ
Make a big bonding sector for the space area. Now select a
space texture (it could be BIGORBIT1) for both floor and ceiling.
Parallax it the way you like. Make a smaller sector inside it which
will be the space area itself and make it valid player space. Block
these sector lines so the player can't leave this sector. Now lower
the outer sector ceiling until it reaches the floor.
You should have now a nice-looking space sector, apparently
without walls. To enhance this effect, let's put a grey palette
(palette 12) on the floor and ceiling to make it look darker (if you
chose BIGORBIT1 and haven't put a grey palette, don't forget to put a
palette other than 0 so that the sector does not kill you). If you
want, put a shade value too.
Put a lotag of 2 in the sector to make it have the behaviour
of an under water sector. Well, that is the best thing I could think
of. There are some obvious disadvantages on this method: The water
sector makes water noises, spawn bubbles, and only needs a scuba gear,
not a whole spacesuit (well, the spacesuit in duke doesn't work
anyway!)...
If the player enters this sector by regular walking, and not
teleporting, pay attention to the water palette bug... The palette
won't change naturally, you may have to put a palette other than 0 in
the sectors next to the space sector too.
ÚÄÄÄÄÄ¿
³5.5.3³- Another light casting effect (LTCAST.MAP)
ÀÄÄÄÄÄÙ
This trick was suggested to me by a guy in 3D Realms Web BBS
forum, I don't remember his name, but as soon as I get it I will put
credits for him here.
Suppose you want to make a torch and a circular fading light
coming from it. You can not have more than 3 different textures in a
sector boundary line (floor wall, ceiling wall and middle wall), so,
if we have some shading like that:
ÄÄÄÄÄÄ
/
/ ÄÄÄÄÄ
/ /
/ /
³ / Ú¿
³ ³ Ú¿³³
³ ³ ³ÀÙ³ <-- torch
³ ³ ÃÄÂÙ
³ ³ À¿³
³ ³ ÀÙ
³ \
\ \
\ \
\ ÄÄÄÄÄ
\
ÄÄÄÄÄÄÄ
We are going to divide these into sectors, and apply two
techniques:
For the sectors that have up to three differently textures:
We are going to make a new sector behind the wall of this sector so we
can use its three walls: floor wall, ceiling wall and middle wall.
The middle wall, of course, me make blockable, maskable and hittable.
We slope the ceiling to get the right angle of the shade. Notice that
the shade of the middle wall is the same shade as the ceiling wall.
For the sectors that have more than two differently shaded textures:
Make thin sectors in the wall so that they can be used to show more
floor and ceiling walls to simulate the fading. Don't forget to block
and hitscan the outer middle wall so that the player will not "climb"
on the edges of this shading. :-)
If you want to, you can put cycler sprites and random lights to make
it look more realistic. But as the sectors are thin, it will be
somewhat difficult to get the sprites in the right place...
ÚÄÄÄÄÄ¿
³5.5.4³- Making big areas look small or small areas look
ÀÄÄÄÄÄÙ big
This section uses a resource not very commented in build faqs,
the visibility setting ('-V in 3D mode). In fact, this number
decides how far the sector/wall/sprite/ceiling/floor darkens with
distance. The greater the number, the slower it darkens. You can use
negative numbers too.
This is VERY useful if your map is a bit dark and has big open
areas. walking in a place where you can''t distinguish many things can
be really boring. If this is your case, raise the visibility settings
of your sectors.
On the other hand, it is an useful setting if you want to make
a small room look big, too.
You can change the visibility using the Alt-(+/-) keys and the
Ctrl-Alt-(+/-) keys (these last are for the WHOLE MAP, so use with
care!)
ÚÄÄÄ¿
³5.6³- Making things work using brute force
ÀÄÄÄÙ
Some effects are good but... they could be used to cool tricks if
and only if they didn't have an annoying detail which disallow it!!!
The BEST example is the behind mirror sector... Wouldn't be nice if
you could walk in it? But if you have ever dnclipped behind the
mirror and then dnclipped off, you would notice that *you can't move
in the behind the mirror sector*!!!
ÚÄÄÄÄÄ¿
³5.6.1³- Crossable mirrors / two-way mirrors / "True Lies"
ÀÄÄÄÄÄÙ mirrors
Have you seen "True Lies", with Arnold Schwarzenegger? Then
you noticed the cool mirror where one side sees its reflection and the
other side sees the first side... So, can it be done in BUILD? Sure
it can, but only using "brute force". Notice that this mirrors
presupposes you can get to both sides; so, we will have to eliminate
the detail that disallows you to move behind the mirror.
How could we ever do that? Let's think in terms of the build
engine. When you meet a wall and try to walk on it, build checks for
your attempt of movement and prevents it. Outside there is non-valid
player space, so you don't even go forward.
For the mirror sector the operation is different. Since the
mirror wall can be unblocked, the mirror sector trys to block you.
You can actually enter it, but you will be thrown back. And it looks
exactly like you were stumbling in a wall, so fast it is.
But Duke moves in discrete units. What if we make the mirror
sector so thin that it is SMALLER than these units? Of course, we
have to have a big sector for the reflexion to work, but we can fix
that with a big sector *after* the thin sector. The sector after the
mirror is the only sector which blocks, so the big sector would not
block.
There is the solution. Make a very, very thin sector behind
the mirror. Then, if you don't block the mirror wall, you could pass
through it. See MIRROR.MAP for this effect.
The possibility of walking behind the mirror enables you to
make 2-way mirrors (just put the mirror texture in both sides of the
rooms and make thin sectors in both sides of the mirror) and "True
Lies" mirrors. If you want to be more realistic, you can put a glass
texture after the thin sector so one side would see its reflexion and
the other would see a glass. You can even block just one side of the
mirror with Shift-B instead of B in 2D mode (B blocks the two sides
of a wall, Shift-B blocks just one).
ÚÄÄÄÄÄ¿
³5.6.2³- Making the subway run in another trajectory before
ÀÄÄÄÄÄÙ entering a circular trajectory
The subway can be "forced" to run in an open trajectory and
only then enter a circular trajectory by a trick with the position of
the locators. See more details in section 6.1.1.
ÚÄÄÄ¿
³5.7³- SE's in the boundary lines of a sector.
ÀÄÄÄÙ
Did you know that many of the SEs, when put very close or exactly
over the boundary line of a sector, change its behaviour? A very good
example of this are the water sectors. Just look at map WTRBOUND.MAP.
The effect is messed up: the palette doesn't change, the player
"falls" into the bottom of the pool, and it becomes difficult for him
to come back to the above water sector.
I am currently trying to figure it out better, and what effects
are affected by this and how. If someone detects somethings, email
me.
ÚÄÄÄ¿
³5.8³- Alignment issues
ÀÄÄÄÙ
As I mentioned in the first chapter, the sprites are ALWAYS
aligned to the floor. This implys that, If you want to make a sprite
travel horizontally, you HAVE TO use a horizontally moving or
deforming sector in which it has to be. Same as for traveling
vertically. You can, however, mask the moving sector by orienting its
floor and ceiling and making it very thin. If it is a verticallt
moving sector, it can be disguised by sprites leant on other
surrounding floors. See CREDITS.MAP for an example on this. By using
this techniques, you can make sprites travel almost anywhere and
create cool effects: spiked walls, launching rockets, masked doors
closing, falling sprites, running items, orbiting satellites etcetera.
However, have this in mind: most sprites will only be
horizontally carried by sectors when you activate them by your
approximation. This is also valid for conveyor belts, which aren't
moving sectors. Try to put some pigcops in a conveyor belt far away
with a camera looking at them. If you look at them using the
viewscreen, they won't be activated by this. You can look the
conveyor moving and the sprites keeping still.
ÚÄÄÄ¿
³5.9³- Teleporting issues
ÀÄÄÄÙ
For moving sectors in general, and subways in particular, there is
an interesting property about teleports:
- If you are teleporting to a moving sector, you will not be
teleported to the position where it is currently, but to its position
at the pre-map, i.e., its starting position at the map.
- But to be teleported FROM a moving sector, even if it doesn't
carry sprites, you will be teleported from its current location, not
from its position at the pre-map.
Look in section 6.1.2 and 6.12 to learn how to make "random"
teleports.
ÚÄÄÄÄ¿
³5.10³- Cupboards
ÀÄÄÄÄÙ
There is a strange fact about the levels that come with Duke
Nukem: they don't have cupboards that open. It is possible to build,
though.
In fact, just build regular sliding/rotating/star trek doors and
make it valid player space; then level its floor and ceiling so that
it makes the height of the door of the cupboard. Put some flat
sprites over the cupboard sector and the door so that it looks a solid
cupboard. Really easy.
I have made an example map on this, CUPBOARD.MAP, though it is a
very lazy map (it was one of my first example maps and I am not in the
mood to enhance it...).
Note: If you stay over the doors and press space they will behave
strangely, and can even "malfunction". Don't forget to press "R" on
the top of the door if it is a rotating door, otherwise the tile won't
rotate with the door.
ÚÄ¿
³6³- SOME EFFECTS BEHAVIOUR AND PECULIARITIES
ÀÄÙ
ÚÄÄÄ¿
³6.1³- Subway cars
ÀÄÄÄÙ
First of all, I have to say this is not an adequate name. It
limits the imagination: you can do much, much more than mere subway
cars with this kind of sectors. You can create moving light effects,
random teleports, trucks, spaceships, deforming structures,
propelling devices and many other things you can imagine.
Tip: the subways kill you only when they are moving and the
distance between its ceiling and its floor is less than 14 ticks.
ÚÄÄÄÄÄ¿
³6.1.1³- The locators positioning bug
ÀÄÄÄÄÄÙ
If you have read section 5.6.2, you already know the subway
can be forced to come out from a starting point, say a garage, and
circle afterwards in the outside. You may wish to see examples
SBWAYBUG.MAP and SBWAYBG2.MAP, which show two different positionings
which accomplish this in different ways.
I should now confess: I don't really know exactly how to
place the locators in the track the cause this bug, but I know some
parameters which guide me for doing this:
- Since you can't exactly know the track of the subway, make
the track sector first in your map. Next refine you track by putting
other sectors around and continue to build your map.
- The distance between two locators matters. It looks like
the smaller the distance, the bigger are the chances of this bug
happening. If you are trying to make this effect happen in a
particular locator, try to get the next locator closer to this
locator.
- The number of locators matters too. Since we want to
confuse the algorythm, the more locators you put, the bigger the
chances of this bug happening.
- Hitag 1 on locators, which makes the subway stop, has a
great influence on this bug... It makes this bug less likely to
happen. See SBWAYBG2.MAP to see this influence: try to zero the
locator with hitag 1 on the map.
- The angle of the locators doesn't matter anything, despite
what it may seem. In fact, this angle doesn't have influence even in
regular subways you make.
- The direction formed by the distance between one locator and
another greatly matters. It seems the most closed is the angle
between two of these directions, the bigger are the chances of the bug
happening.
ÚÄÄÄÄÄ¿
³6.1.2³- Teleporting/random teleports
ÀÄÄÄÄÄÙ
Assumed you have read section 5.9, you can now imagine how to
create "random" teleports: make a subway track and many subway cars,
each of them with a different teleport SE. Make them so that they are
"invisible", i.e., the subways floor and ceiling is at the same height
than the track floor and ceiling, and they are not relative to the
subway.
The inconvenience about this trick is that you can't turn the
subway sound off. You can prefer using rotating sector for this
effect, though in this last case you won't be able to reshape the
track.
ÚÄÄÄÄÄ¿
³6.1.3³- Acting as a propelling device
ÀÄÄÄÄÄÙ
This is a weird bug I have discovered in an user map I got on
the net. A sloped subway sector can actually launch you very high in
the ceiling... Sometimes it can even launch you *through* the ceiling
and/or, as you see in the example map, SBWYRISE.MAP, you can fall
beyond the floor level too...
The instructions for this map are: go to the location where
the subway stops. When it arrives, try to get to the top of the ramp.
If you like, press F7 to see Duke from behind. For your fun, you will
see duke's sprite disappear and duke going up, shaking a bit, and then
fall beyond the ground...
Maybe you can use it to make duke reach a very high door or
window... I don't know, use your imagination! :-)
Note: try to make the slope up from the first wall, not down
from it. If you've made it down from the wall, select another wall as
the first (Alt-F) and slope up from this wall.
ÚÄÄÄÄÄ¿
³6.1.4³- Deforming
ÀÄÄÄÄÄÙ
Read section 5.3 about moving sectors. You can deform any
sector using a subway sector. The conditions are:
- The sector to be deformed HAS TO have the same hitag as the
subway (unless it is a non-valid space sector) and CAN'T HAVE a subway
SE.
- The vertices of the sector to be moved are those attached to
the subway: the others will remain in place, unless they are also
carried by other moving/deforming sectors.
ÚÄÄÄ¿
³6.2³- Water sectors
ÀÄÄÄÙ
ÚÄÄÄÄÄ¿
³6.2.1³- "teleporting" water sectors (2WATER.MAP)
ÀÄÄÄÄÄÙ
You should take a look in 2WATER.MAP. It is a simple effect,
though it is totally based in a small detail about how build works.
The effect is: You have a swimming pool. You jump on it and
go underwater. Then you emerge and... You are in another sector!!!
Even if you submerge and emerge again, you can't get back to the
sector you came from.
This trick uses the precedence of BUILD to seek for teleport
SEs: You can notice the number of the SE 7 which is in the sector you
start the map is the higher - "sprite 2". When you dive, BUILD seeks
the first SE 7 sprite with the same hitag and in an under water
sector, that is, sprite 0 - the SE in the underwater pool. If you try
to emerge again, it seek the first SE 7 sprite with the same hitag and
in an above water sector, that is, sprite 1 - the SE 7 sprite in the
target room.
So the method for getting right on these sprites is: add 3
sprites. Make all of them unblocked SEs 7 with the same hitag. Get
the one with the higher number and put in the source above water
sector. Put the sprite with the lower number and put in the under
water sector. And put the resting sprite in the target sector.
ÚÄÄÄÄÄ¿
³6.2.2³- Water sector SE's in the boundary lines
ÀÄÄÄÄÄÙ
See WTRBOUND.MAP and section 5.7 for a description on the
behaviour of the water sector with SE 7's in the boundary lines.
Actually I don't know what use could be made of this bug. And
I don't know yet why it occurs either. If you have any tip, email me.
ÚÄÄÄÄÄ¿
³6.2.3³- The water nonchanging palette bug
ÀÄÄÄÄÄÙ
If you get from/to an underwater sector without a teleport
effector, you don't get palette change, that is, if you are going to
an underwater sector, the palette won't turn blue, and if you are
coming from an underwater sector, the palette won't get back until it
is changed by the night vision goggles or a sector with a different
palette.
So, if you want to make the player enter a "space" sector or
just an unusual vertical water sector, make a thin paletted sector
before it to normalize the palette. I think palette 3 does this job
well.
ÚÄÄÄ¿
³6.3³- Earthquake
ÀÄÄÄÙ
ÚÄÄÄÄÄ¿
³6.2.1³- Shaking sprites (MADQUAKE.MAP)
ÀÄÄÄÄÄÙ
Some effects behave strangely on sprites. Such is the case of
the earthquake sector, which keeps the sprites shaking even after the
earthquake have stopped. Good to make an angry, trembling alien face.
:-)
ÚÄÄÄÄÄ¿
³6.2.2³- Deforming
ÀÄÄÄÄÄÙ
As other moving sectors, if the earthquake is linked to a
sector, when it moves it will stretch or squish it. No special
condition for these adjacent sectors to work.
ÚÄÄÄ¿
³6.4³- Sliding doors
ÀÄÄÄÙ
Tip: If you want to make a maskable sliding door, just mask its
walls. It's not a deforming sector, it's a moving sector.
Tip 2: If you want to make a single sliding door, don't let the
end of the door have vertices in common with the wall, otherwise it
will move these vertices when activated, deforming the wall sector.
ÚÄÄÄÄÄ¿
³6.4.1³- Using sliding doors as 2-way trains
ÀÄÄÄÄÄÙ
Refer to map OTHR2WAY.MAP and see the basics of it at sections
5.1 and 5.3.1.
The differences you need to know when use a sliding door and
when use a 2-way train are:
- Sliding doors move slower
- Sliding doors can't carry things
- Sliding doors don't activate other sequential hitags
- Sliding doors are interruptable (reversable)
- Sliding doors move at a constant speed: they don't have
acceleration.
- The parameters to be killed by the sliding door are
different from the parameters to be killed by the 2-way
train... You only get killed by the sliding doors if you are
getting between it and another wall and you can't be pushed
out.
ÚÄÄÄÄÄ¿
³6.4.2³- Fixing the autoclose bug with a bridging help sector
ÀÄÄÄÄÄÙ
Refer to section 4.1 about the example of bridging sector.
This section explains step by step how to do it and why.
Both star trek door and the four-way door also have this bug.
So you can use the same technique for them, too.
ÚÄÄÄÄÄ¿
³6.4.3³- Using the autoclose bug
ÀÄÄÄÄÄÙ
We have seen how to fix the autoclose bug. But... What if we
WANTED the autoclose bug to happen? It could too produce a neat
effect. Next section will explain everything you ever wanted to know
about this SE and were afraid to ask. :-)
ÚÄÄÄ¿
³6.5³- Door autoclose
ÀÄÄÄÙ
If you are reading this tutorial from the beginning to end you
should already know that in certain doors the autoclose effect doesn't
work properly. Instead it makes the door keep opening and closing.
This could produce an interesting trick, too. Maybe you want to build
a piston that don't squish the player, just scare. Or anything else
you can imagine. Maybe you would like it just to play a sound over
and over...
Before we begin tinkering with autoclose there are some things
you must have to know:
-> The autoclose is NOT locked by activators, masterswitches
or activatorlockeds. If the door is opened, it will work anyway. It
also doesnt turn off local activation, if you want this you should put
an activator or activatorlocked in the sector.
-> It does not work with certain types of doors and the other
structures because they do not have a "rest" position. A ceiling
door, floor door or split door are said to be in its "rest" position
if its ceiling is on the same level as the floor. Falling ceilings
and rising floors also have a rest position, so autoclose works with
them. In a rotating door, the rest position is its position at the
pre-map.
-> Autoclose thinks everything else in the sector is a door;
so it try to activate it until it gets to its rest position. It
doesn't work for light switches, of course. But if you stay in the
sector, it won't activate the effect - it thinks you are in the door
sector, so it doesn't try to close the "door" with you in it. This
means that, for example, an elevator which is only activated by
autoclose (due to an activator or activatorlocked in it) won't take
you along because it will refuse to work if you enter its sector.
-> Yeah! Autoclose *CAN* be used with the 2-way train. Read
section 6.5.1.4
ÚÄÄÄÄÄ¿
³6.5.1³- Using autoclose to make doors open and close
ÀÄÄÄÄÄÙ forever
ÚÄÄÄÄÄÄÄ¿
³6.5.1.1³- Types of doors that do it naturally
ÀÄÄÄÄÄÄÄÙ
The title could also be "types of doors that don't have a
rest position". They are the star trek door, the four-way door and
the sliding door.
If you put the SE 10 in them, they will just open and
close forever since the map starts. With the delay you set in the SE
10. Good for dukematch where sometimes a crucial door is opened,
sometimes it's not... :-)
ÚÄÄÄÄÄÄÄ¿
³6.5.1.2³- Types of doors that don't do it naturally
ÀÄÄÄÄÄÄÄÙ
All the other types of doors, including rotating door and
lighting doors. In these doors, the SE will work normally, i.e,, will
only activate the door to close it.
But if you want them to open and close forever too, that's
simple: put TWO autoclose SEs in its sectors with the same hitag!
This will mean that, since the door is activated, it will open and
close forever. If you want them to be activated since the beginning,
put a touchplate in the starting sector and link it to an activator in
this door.
This is used to produce the "alarm" effect in AUTOSND.MAP.
See section 4.2.3 for further explanation on this.
ÚÄÄÄÄÄÄÄ¿
³6.5.1.3³- Other effects used with autoclose
ÀÄÄÄÄÄÄÄÙ
I mean: effects other than doors. Lights really aren't
affected. Earthquakes are activated just once, so there is no sense
in using an autoclose in there. In fact, looking effect by effect,
the only effect to combine with the autoclose are the moving and
deforming effects... And they all have the same behaviour: there is
no rest position, so they will be continuously activated. With
exception of the rising floor/dropping ceiling, of course, as
aforementioned above.
ÚÄÄÄÄÄÄÄ¿
³6.5.1.4³- *THE 2-WAY TRAIN WITH AUTOCLOSE*
ÀÄÄÄÄÄÄÄÙ
I have left this for the end. In fact, this is the most
precious effect to be used with the autoclose SE. Here is what
happens when you combine these two effects:
- The SE autoclose makes the 2-way train be activated
every (hitag/32) seconds, so:
- The 2-way train activates effect (SE lotag+1) then runs
across the track, arrives at destination then activates effect (SE
lotag +2). Then it is activated again by the SE 10 and reverses its
action: activates effect lotag+2, runs, activates effect lotag+1.
And again and again, in an infinite loop.
Since the 2-weay train is also the effect used for
implementing a bridging sector, you could bridge the effects with an
eternal loop... Cool, isn't it? Now the rest is up to your
imagination!!!
ÚÄÄÄÄÄ¿
³6.5.2³- "Random" autocloses
ÀÄÄÄÄÄÙ
You want to pass the feeling that the door is
malfunctioning... Or maybe that you have random sounds (e.g. claps of
thunders)... All right, put many autoclose SEs with different, odd
hitags. This should do it. Notice that if you are puttting it in a
door, for example, which is a reversible effect, and the time it takes
to open completely is longer than the smallest time in the SE 10's, it
won't even complete the first opening, it will instead reverse the
action in its middle.
If after some time the door or another reversible effect stops
opening and closing, it is because there are two autocloses fighting
for the control of the door: one wants to open it, the other wants to
close it. To avoid this, put another SE 10 with the same hitag as the
biggest hitag of all the SE 10's in the sector.
ÚÄÄÄ¿
³6.6³- 2-way trains
ÀÄÄÄÙ
I guess there's not much left to talk about 2-way trains. They
are used almost everywhere in this tutorial, isn't it? They are by
itself THE bridging help sectors.
Tip: the 2-way trains, as the subways, kill you only when they
are moving and the distance between its ceiling and its floor is less
than 14 ticks.
There are some concernings on using certain effects:
ÚÄÄÄÄÄ¿
³6.6.1³- Using 2-way trains as doors
ÀÄÄÄÄÄÙ
I don't see much sense in this, but maybe you have found a
creative approach to it. Well, if you have read the section about
sliding doors as 2-way trains (6.4.1), you know everything you should
know to use 2-way trains as sliding doors.
ÚÄÄÄÄÄ¿
³6.6.2³- How to make 2-way trains go forth and back
ÀÄÄÄÄÄÙ
This effect is used by the original game in a curious fashion.
Read section 7.2 for more details about this. And see map
2WAYBACK.MAP to understand this explanation.
To accomplish this, build a regular 2-way train. Put another
activator in the train with the lotag of the regular activator plus 1.
Now copy the 2-way train sector to another location. It's done!!!
You don't even have to change the hitags and lotags of the train SEs.
The other 2-way train will act as a help sector. In fact, BOTH 2-way
trains will act as help sectors of each others, and both will go forth
and back.
To explain what happens: when the train gets off its
starting point, it trys to activate another sector which has its hitag
plus 1 (it can't activate itself!). Since it can't right now, it
buffers this activation. So when the sector can be activated, it is,
and that is right when the other train arrives at its destination.
Each sector makes exactly the same with the other. Then both
travel back.
Don't bother trying to make it travel back more than one time.
If you put activators x+2, x+3 etcetera it won't work, because it
can't buffer any more activation calls.
If you want to make it run forth and back forever, see section
6.5.1.4.
ÚÄÄÄÄÄ¿
³6.6.3³- Making the 2-way train go away and never come back
ÀÄÄÄÄÄÙ
This one is too easy. Just point the train SE to the opposite
side of its starting direction. It will just go away. I was afraid
it could crash the game because of an overflow of coordinates, but I
waited and waited and it didn't crash.
ÚÄÄÄÄÄ¿
³6.6.4³- Deforming
ÀÄÄÄÄÄÙ
Same as the subway deformation: you have to lotag the
adjacent sectors (which will be deformed) as a train car, in this case
31.
ÚÄÄÄ¿
³6.7³- Elevator sectors
ÀÄÄÄÙ
(This does not include transport elevators)
Hint: if you start the level in an elevator sector, it is
locally activated once.
ÚÄÄÄÄÄ¿
³6.7.1³- Shaking sprites
ÀÄÄÄÄÄÙ
See map SHAKLIFT.MAP. You have a raised elevator sector which
will go down when you activate it and never go up again; or the
reverse, with a lowered elevator sector.
This will cause the sprites in it to shake. Very much like
the earthquake shaking the sprites (MADQUAKE.MAP, referenced on
section 6.2.1).
ÚÄÄÄÄÄ¿
³6.7.2³- Teleporting
ÀÄÄÄÄÄÙ
Teleport works normally as it works with any other vertically
moving sector. The SE effect keeps aligned with the floor of the
elevator like a regular nonfalling sprite.
ÚÄÄÄÄÄ¿
³6.7.3³- How to make an elevator work just once with local
ÀÄÄÄÄÄÙ activation
If you have read BUILDHLP - it is always a good reference,
despite the mistakes it has - you know the elevators goes to the
heights of the lower floor, higher floor and next floor, depending
upon the type of elevator and where it is. If you just build a
bonding sector for it, you will prevent it from having another floor
to align to. So just make the elevator sector start in another height
and it's done - the first time you activate it it will go to the
bonding sector floor height level. Take care - if it is a "down"
elevator, for example, and you make it starting below the bonding
sector floor level, it will lower and won't never get back! Ok, this
can be good to make a neat effect, too.
ÚÄÄÄÄÄ¿
³6.7.4³- Three or four-story elevator
ÀÄÄÄÄÄÙ
We can make an elevator which can reach three, four or even
more floors: Just make it 2 (or 3 or more)-story using the techniques
in section 3.1. Build it so that the higher "floor" of the elevator
reaches the floor of the second lowest floor and so on. See map
3FLRLIFT.MAP for an example on this (though it does not use a "solid
looking" structure of sprites, just one flat sprite).
Unfortunately, there is an annoying bug - described in section
2.2 - which makes the sprites become more unaligned after each
activation.
ÚÄÄÄ¿
³6.8³- Teleport sectors (non-water)
ÀÄÄÄÙ
ÚÄÄÄÄÄ¿
³6.8.1³- One-way teleports
ÀÄÄÄÄÄÙ
This information is in regular BUILD FAQs, but it's good to
remember: the teleport works by taking you when your WAIST reaches
its height level, EXCEPT in teleport sectors where it is in the
ground. If it is in the ground, you will be teleported whenever you
step on it.
So the trick for making one-way teleports is: put the SE 7 in
both sectors, but in the sector that is not supposed to teleport back
raise the SE 7 one tick. Your waist will never get to that height
level and you won't be teleported if you enter this sector.
You can put more than one teleport SE in the same sector, if
you put them in different heights. Thus a one-way teleport from which
you came can teleport you to another place when you step on it.
ÚÄÄÄÄÄ¿
³6.8.2³- Neverending pit/cyclic neverending pit
ÀÄÄÄÄÄÙ
Ok, first let's see the trick with the cyclic neverending pit,
which is easier: just see FALL.MAP, you will understand it perfectly.
The trick is: put one SE 7 near the bottom of a pit and
another SE 7 with the same hitag near the top of the same pit. Thus,
when you fall to the bottom, you return to the top. Nice, huh? You
can even chain many pits making the SE 7 of one lead to the other
which leads to the other which... leads back to the first.
The trick with the neverending pit is a bit trickier, but
still simple: see NEVEREND.MAP. Copy the pit sector without SEs in
another place. Then put a SE 7 near the bottom of the source pit.
Put a SE 7 with the same hitag near the top of the target pit, put
another SE 7 with another hitag in the same height of the last SE 7,
and put yet another SE 7 with the last SE 7 hitag near the bottom.
Don't forget to align the SE's so that you don't shift when
falling. All SE's must be in the corresponding position in source and
target pits!!!
here is what is going to happen: when you fall into the
source pit, you get teleport to the target pit, at the same height of
the other hitagged teleport SE, so it doesn't teleport you. But when
you pass through the height of the teleport SE in the bottom, it
teleports you back to the top. Then you begin that cyclic falling
again...
ÚÄÄÄÄÄ¿
³6.8.3³- Making a looping RPG
ÀÄÄÄÄÄÙ
(thanks to taco for this one. I don't know his email yet.)
The angle of the Se 7 is the angle in which the teleporting
stuff will be when they get out from the teleport. So you can adjust
the distance and angles between teleports so that if you shoot a RPG,
it loops between the teleports!!! Could be a cool replacement for the
tripbomb. >:-) Maybe you can even spawn RPG shots to make it look
cooler!!!
But pay attention to this detail: the teleports needs a
certain amount of time to teleport again since the last teleport, so
don't abuse! This is made just to prevent people from firing lost of
missiles into one teleport making it get buggy from teleporting so
many things.
ÚÄÄÄÄÄ¿
³6.8.4³- Killing the player
ÀÄÄÄÄÄÙ
Just place a teleport SE with an unique hitag. It will
teleport the player to NOTHING, killing it immediately. Don't worry,
you will continue to be able to see his guts and limbs. >:-)
ÚÄÄÄ¿
³6.9³- Star Trek Doors/four-way doors
ÀÄÄÄÙ
ÚÄÄÄÄÄ¿
³6.9.1³- Fixing the sound playing twice bug using a noising
ÀÄÄÄÄÄÙ help sector
Refer to section 4.2.1. It is the same bug which occurs with the
sliding door.
ÚÄÄÄÄÄ¿
³6.9.2³- How to build malfunctioning doors
ÀÄÄÄÄÄÙ
What about that: a four-way door that doesn't work right at
its first activation, only the outer door opens. Then you activate it
again and it closes. And only at the seventh activation the two doors
open!!!
See map BRDOOR.MAP to check this effect. It happens when you
build the side doors with different sizes. If you don't want this
"malfunctioning" to happen, make the side doors exactly symmetrical.
ÚÄÄÄÄ¿
³6.10³- Light switch
ÀÄÄÄÄÙ
ÚÄÄÄÄÄÄ¿
³6.10.1³- Making the light lit or unlit when the map begins
ÀÄÄÄÄÄÄÙ
You may already know that about switches: if you put the second
frame of the switch, when the map begins, the light effect linked to
the switch is activated once, turning on the lights. But what happens
if you put TWO switches with different frames? By a rule of thumb, if
one switch is in the second frame, the light effect is triggered.
Doesn't matter whether there are other switches with the first frame
or not.
ÚÄÄÄÄ¿
³6.11³- Rising/dropping floors/ceilings
ÀÄÄÄÄÙ
This section does not refer about SE 21 (ST 28), instead it refers
about SEs 31 and 32 (which can do the same thing).
These SEs are the best you have to utilize the alignment issues.
ÚÄÄÄÄÄÄ¿
³6.11.1³- Credits
ÀÄÄÄÄÄÄÙ
Map name: CREDITS.MAP. When you start on the map, you
activate a touchplate which raises a thin floor before you by
activating a masterswitch once. As the letters are aligned with this
floor, they will rise too. There are sprites hiding the floor notch,
to make it look more clean.
To make this you put in the letters sector a masterswitch
activated by a touchplate in the sector the player starts in. The put
a SE 31 in the floor of the notch sector and raise it to where you
want the floor to rise to.
You could make this structure in a isolated sector and put a
camera watching it. In a viewscreen this would look cool.
ÚÄÄÄÄÄÄ¿
³6.11.2³- Masked door closing
ÀÄÄÄÄÄÄÙ
It is almost the same as the credits, but this time with a
masked door. See MASKDOOR.MAP.
And, to allow the effect to repeat, you activate it with a
switch linked to an activator.
Note that the door is a sprite, so you could hitag it so that
it becomes destroyable. The player doesn't expect it and it could be
a cool surprise in a level.
ÚÄÄÄÄÄÄ¿
³6.11.3³- Using as a door or as an elevator
ÀÄÄÄÄÄÄÙ
All right, if you really like to try alternate constructions,
try using the rising and dropping floors and ceilings as doors or
elevators. Indeed they are almost the same, and even the SE 10 works
with these effects. There is no secret tip on using SEs 31 and 32,
and you could even use them at the same time (actually they are used
this way in the game, in the boss room door in E2L9).
Keep in mind that these effects with floors and ceilings can
smash you and are not interruptable (reversable). They accept
MUSICANDSFXs and GPSPEEDs too.
ÚÄÄÄÄ¿
³6.12³- Cameras and viewscreens
ÀÄÄÄÄÙ
These aren't effects at all, they are just special sprites; but
they are so important in the game is that I preferred to list them as
effects.
Trivial tip: If you want to send messages to the player, write
it using the letter sprites in a black, isolated sector, put a camera
pointing at the message and link it to the viewscreen where you want
the player to see the message.
Tip 2: The cameras keep updating with time. So, even if the
player does not press the "use" key on it, it can see other sectors in
it.
ÚÄÄÄÄÄÄ¿
³6.12.1³- The lethal viewscreen
ÀÄÄÄÄÄÄÙ
Easy: just put a camera in a subway which ceiling is less
than 14 ticks higher than the floor. When the player sees the subway
sector via the viewscreen, if it is not stopped, he dies.
ÚÄÄÄÄÄÄ¿
³6.12.2³- How to make the camera keep rotating
ÀÄÄÄÄÄÄÙ
Hitag it 1. The hitag is the angle of rotation of the camera,
and it keeps rotating trying to get to the angle "1" but never reaches
it. Sometimes the camera can shake a little if you are using this.
ÚÄ¿
³7³- GAME EFFECTS EXPLAINED
ÀÄÙ
ÚÄÄÄ¿
³7.1³- Fast smashing sectors in E2L7
ÀÄÄÄÙ
Effect: in an open water area, when you press a switch, two
walls open for you to pass through, but they also come back very fast
and smash you if you stay in the sector.
These sectors are nothing more than two 2-way train sectors
where each one is the bridging help sector of the other. In fact,
they are no typical help sectors, because they ARE necessary in the
game. Usually you don't even need to see a help sector.
The same mechanism is explained in section 6.6.2. And you
have an example map with almost the same effect - only that in this
map one of the 2-way train is hidden.
ÚÄÄÄ¿
³7.2³- Delayed sound in E3L4
ÀÄÄÄÙ
Effect: when you step over an edge of the building in the
street, you trigger an earthquake, and some seconds later duke says:
"I ain't afraid of no quake!"
Sure, it would be clear if the sound was activated at the same
time than the earthquake: it would be a sector sound lotag (10000 +
sound number). But it has a delay, how is it accomplished?
The solution is they have used a noising sector, like the one
in DELAY.MAP (See section 4.2.2 to learn how to build it). When you
step on the touchplate you not only activate the earthquake, but also
the ceiling door which will, after some seconds, open and make the
duke sound.
ÚÄÄÄ¿
³7.3³- Masked doors in E1L5 and E1L3
ÀÄÄÄÙ
In the ending of level 3 you are arrested and the doors rise
before and after you, locking you. Also, in a cave in level 5, you
have a door that opens when you insert the keycard in the slot. But
the things about these doors is: they are masked, plan doors! They
are not solid sectors! How are they made?
Actually they are sprites. If you pay attention, in the
location of these doors there is a small "notch" on the floor. This
notch is the sector which actually raises or lowers the door - it is a
rising or dropping floor.
This effect is also explained in section 6.11.2. And there is
an example map of this, MASKDOOR.MAP.
ÚÄÄÄ¿
³7.4³- 720-degree circle in E2L11
ÀÄÄÄÙ
This level is hilarious. Really tricky. You have a round
structure, but if you circle it completely (360 degrees) you don't get
back to the same place you have started on... Instead, you get in a
completely different environment. But, if you circle the structure
once more, you get back to the place you've started on. Thus you have
a 720 degrees circle!!!
This effect is a little hard to explain, since there is no
physical possibility for this happening, but there is a small
explanation in section 5.4.1. Also there is an example map on this,
CIRCLE.MAP, which is a purposefully very irregular 1080 degrees
circle.
ÚÄÄÄ¿
³7.5³- Exploding ceiling in E1L2
ÀÄÄÄÙ
I have't figured out this effect yet. If you did, please
email me explaining!
ÚÄ¿
³8³- SUGGESTIONS
ÀÄÙ
- KEEP experimenting. BUILD has many details and bugs. You can't
exactly predict it. If you think you can do a particular structure,
don't let it stay in your thoughts only - try to build it. Maybe it
works, maybe it don't, and maybe it can lead you to a whole new
effect! Just use your good sense.
- Regular sprites keep facing you whenever you are. This may seem
fairly obvious, but try to keep this in mind - sometimes this can lead
to interesting visual effects we don't see at first because we just
think in terms of real world, where this hardly happens. For example
the light casting simulation effect from section 3.3. There are other
obvious things you should try to figure out for making not-so-obvious
effects.
- Be as creative as you can. Don't be afraid of failure or being
childish.
- Try to use every bit of what you have in the original duke files,
e.g. the drawings: if you want anything you don't have, before trying
to draw a whole new texture in EDITART, check if you can not do it
with duke textures!! Resizing, flipping, rotating, changing palette
are great ways to alter the way you see the texture. One example is a
ID4-like map (WHTHOUSE.MAP by John A. Pagliaroli) where I have saw a
reactor turned upside-down to look like a flying saucer... Think if
you can do anything as creative as this.
- I haven't had much oportunity to mess with it up to now, but have
you ever thought about these structures which need a SE and a ST to
work? Have you tried to use just one of these and see what happens?
Or to combine similar-looking effects with differents SEs and STs?
This can result in interesting tricks.
ÚÄ¿
³9³- THINGS THAT MAY BE POSSIBLE TO DO BUT I DIDN'T FIGURE OUT YET
ÀÄÙ
The stuff in this section are structures which are in my target:
I am trying to make them work, but I am not sure if it is possible,
and I have not achieved this yet.
ÚÄÄÄ¿
³9.1³- 2-way trains go forth and back forever since activated
ÀÄÄÄÙ
Ok, a few hours before the first release of this tutorial this
question was the more general "2-way trains go forth and back
forever". I have discovered the way to make it loop since the map
starts, but not the way to activate it and only then it start to loop.
ÚÄÄÄ¿
³9.2³- Real-life elevator
ÀÄÄÄÙ
Using a bridging help sector, I want to make a transport
elevator which open door, close door, get down, open door and we get
out from the elevator. But to accomplish this I just need to know
*HOW CAN I REMOTELY ACTIVATE A TRANSPORT ELEVATOR*. For about two
months I have asked this question to everyone, no one seems to know.
Too bad. :-( I mean it looks like transport elevator can only be
activated with the "use" key in its sector, not by activators and
masterswitches. I have tried several arrangements for this: putting
one activator in each elevator, putting just one activator in one of
them etcetera...
So if you find the way, or if you find WHY it is impossible,
email me... PLEASE!!!
ÚÄÄ¿
³10³- Appendices
ÀÄÄÙ
ÚÄÄÄÄ¿
³10.1³- Vocabulary
ÀÄÄÄÄÙ
BRIDGING SECTOR - The first type of help sector. See section 4.1 to
understand.
FALLING SPRITE - A certain type of sprite, referenced on section 1.1.
HELP SECTOR - See chapter 4 for the definition. Basically a sector
that indirectly makes an effect.
HOM - Hall Of Mirrors. An effect that looks like the screen or
part of it is messed up with something, creating a "track" for the
shapes that pass through the messed-up part. See the topic on
"overlapping sectors: Build engine concernings".
LIGHTING SECTOR - The third type of help sector. See section 4.3 to
understand.
LOCAL ACTIVATION - It is the event of triggering an effect by just
pressing the "use" key (usually space) in its sector or on a lotagged
door wall.
NOISING SECTOR - The second type of help sector. See section 4.2 to
understand.
NONFALLING SPRITE - A certain type of sprite, referenced on section
1.1.
REMOTE ACTIVATION - It is the event of triggering an effect by an way
other than the LOCAL ACTIVATION. This includes touchplates, switches
and linked effects.
REST POSITION - A position on certain effects that it is considered to
be "closed" or "resting". In this position, the ceiling is at the
same height level than the floor. In a rotating door the rest
position is equivalent to its position at the pre-map.
ÚÄÄÄÄ¿
³10.2³- Listing of maps, what they do, and where they are
ÀÄÄÄÄÙ referenced within this tutorial.
SLIDEBAK.MAP - Autoclosing double sliding doors. It uses a 2-way
train HELP SECTOR to accomplish this. Referenced
on chapter 4, HELP SECTORS, more specifically
section 4.1. Also referenced in section 6.4.2.
2STORYA.MAP - Map showing the HOM with overlapping sectors (a
supposed attemp to build real floor over floor).
Referenced in section 1.2.
2STORYB.MAP - Same as 2STORYB.MAP, but with a room added. This is
made to look like 2STORY2.MAP but with buggy
sectors. Referenced in section 1.2.
2STORY2.MAP - Floor over floor made of sprites. Completely
explained in section 3.1
BRDOOR.MAP - "Broken door", it is a four-way door which only work
properly after the seventh activation. Referenced in
section 6.9.2.
ACTMASTL.MAP - "Activators, masterswitches and activatorlockeds
example map" - a map made for experimenting on
these things. Section 1.3.
MADQUAKE.MAP - You get an earthquake and the sprites continue to
shake after it stops. Referenced in section 6.2.1
and 2.2.
LIGHT.MAP - Simulated light casting effect. Section 3.3.
SPRTALGN.MAP - "Sprite alignment". Shows a curious detail of
sprite alignment. Described in section 1.1.
OTHR2WAY.MAP - "Other 2-way train". An example of using a sliding
door SE to make a slower and reversable 2-way
train. hint: try to climb on the train when it's
moving and press F7. Referenced in section 5.1 and
6.4.1.
GOUP.MAP - A funny example of using one-sided sprites to make an
one-way lift. Section 3.3, first example.
FFIELD.MAP - "Force field". Shows a diagonally scrolling
upside-down texture due to the force field in its
middle wall. Section 3.2, fact number 18.
MIRROR.MAP - Shows the way to make one-way or crossable mirrors.
Referenced in section 5.6.1.
CREDITS.MAP - Uses a raising sector effect and nonfalling sprites
to show some credits. Section 6.11.1.
CUPBOARD.MAP - A lazy map showing how to make cupboards that open.
Section 5.10.
FALL.MAP - A cyclic neverending pit. Two teleport SEs, one in the
bottom and the other in the top of sector. Section
6.8.2.
CIRCLE.MAP - An irregular map showing how 1080 degree circles are
made. Section 5.4.1 and 7.4.
AUTOSND.MAP - "Autosound". Shows how to trigger an alarm using a
help sector (specifically, a noising sector).
Section 4.2.3.
WTRBOUND.MAP - "Water boundary". Shows an example of the weird
effect that happens when SE's are put on the
boundary lines of the sector. Sections 5.7 and
6.2.2.
SBWYRISE.MAP - "Raising subway". Stand in it when it stops. You
will be "launched" high. You can adjust it to
launch things even higher. Section 6.1.3.
SBWAYBG2.MAP - "Subway bug 2". Another example of the subway bug,
this time a more complex one. Section 6.1.1.
SBWAYBUG.MAP - "Subway bug". An example of how to use locators
positioning to make the subway start from an
initial trajectory and then changing to another,
circular one. Section 6.1.1.
3FLRLIFT.MAP - "3 floors lift". A lift that can access 3 floors,
using a flat sprite above it. Sections 2.2 and
6.7.4.
2WATER.MAP - "Teleporting water". You dive and, when you get
back, the sector has changed. Section 6.2.1.
SHAKLIFT.MAP - "Shaking lift". You activate a lift and the
sprites in it start shaking. Sections 2.2 and
6.7.1.
DELAY.MAP - An example map of using a help sector - specifically,
a noising sector, to make a delayed sound like the one
from E3L4. Referenced in sections 4.2.2 and 7.2.
2WAYBACK.MAP - An example of making a 2-way train go back and
forth using a help sector exactly equal to the
influenced sector. Referenced on sections 6.6.2
and 7.1.
ONCELIFT.MAP - A lift that is activated just once. Described on
section 6.7.3.
DFSUBWAY - "Deformed subway", an example of attaching a sector to
a subway wall to make the subway "stretch" it.
Sections 5.3 and 6.1.4.
STNOISEC.MAP - "Star trek door with noising sector". A simple
example of using noising help sectors. Section
4.2.1.
NEVEREND.MAP - A neverending pit. Like FALL.MAP, but teleports
you to another sector then does the trick. Section
6.8.2.
SPRACTIV.MAP - "Sprite Activation". Shows how some special
sprites - mainly creature sprites - begin to "live"
only when you get by them. Section 1.1.
LTDOOR.MAP - "Lighting door". An example of a lighting help
sector. See section 4.3.
MASKDOOR.MAP - "Maskable door". An example of using a rising
floor to make a maskable door. Sections 7.3 and
6.11.2.
ÚÄÄÄÄ¿
³10.3³- ACKNOWLEDGEMENTS
ÀÄÄÄÄÙ
I would like to say "thanks" for the people which supported the making
of this tutorial. The first are, of course, the people who made BUILD
FAQs so I could learn the basics... Other is the person who
personally helped me with suggestions, Carlos Forster. I would also
like to say "LAMER!" to Sergio Ordine for learning how to build and
giving up, saying he hadn't much time... If I had followed his
suggestions I wouldn't have made this tutorial. Other people I would
like to thank are that people whom I talk to on 3DRealms Web BBS, and
also the people who wrote me telling tricks, suggestions and
criticisms...
here are the people and their Internet addresses:
Klaus Breuer (Daedalus - author of the Unofficial Duke Nukem 3D
editing FAQ)
sz0759@
Brett Gmoser (author of the Map FAQ)
gmoser@
Jonah Bishop (author of the Map FAQ)
(he doesn't want to receive a flood of mails. Contact him at the 3D
Realms Web BBS, his nick there is jonahb)
Steffen "Duke Addict" Itterheim (author of the Official Build FAQ)
100606.2141@
Carlos Henrique Quartucci Forster
forster@, forster@
Sergio Ordine
sjordine@
Richard "Levelord" Gray (from 3DRealms)
74722.252@
Allen H. Blum III (from 3DRealms)
Stryker@
James Hunt
neebo@
Jaap Menist
jaapm@
Aphelion
(Don't know yet)