ÍÍÍÍËÍÍÍÍÍÍÍ ÉÍÍÍÍÍ» º ³ º º ³ ³
º ³ º º 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)