This repository has been archived by the owner on Nov 14, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
level-design-faq.txt
1354 lines (1028 loc) · 61 KB
/
level-design-faq.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
--------------------------------------------------------------------
DESIGN12.FAQ -- Frequently Asked Questions about DOOM Level Design
--------------------------------------------------------------------
Version 1.2, 09 Sept 1994. Editor: Tom Neff <tneff@panix.com>
INTRODUCTION
------------
This document answers questions on DOOM level design in general, not
how to play the game (covered in the DOOM FAQ - see Appendix B) or how
to use a particular editor (read the documentation that came with it).
Designers should also get the Unofficial DOOM Specs (see Appendix B).
Contributions to this document are welcome (see Appendix C).
The main sections are:
1. EDITORS 6. MONSTERS/THINGS
2. WALLS 7. LEVELS AND MAPS
3. SECTORS/ROOMS/FLOORS/CEILINGS 8. GRAPHICS/SOUNDS
4. DOORS 9. OTHER ERRORS
5. TAGS/TRIGGERS/EFFECTS
The Appendices are:
1. THE 10 MOST COMMON DESIGN ERRORS 3. CONTRIBUTING TO THIS DOCUMENT
2. GETTING ESSENTIAL FILES 4. DESIGN SOFTWARE/REFERENCE LIST
Questions and sections are numbered for reference, e.g., [3-5].
1. EDITORS
----------
[1-1] What's the best level editor? Where can I get Editor XYZ?
A. Try a few out and decide for yourself. See Appendix D for a list
filenames and current versions, as found on the primary DOOM software
sites listed in Appendix B. (Editor's Note/Full Disclosure Dept.: I am
on the development team for one of the popular editors [DEU], but this
FAQ plays no favorites. All the packages are of excellent quality
nowadays, and well worth your time to download and try.)
-----
[1-2] Where can I get an editor that works with Shareware DOOM?
A. Id has asked that user written DOOM utilities, including editors,
only work with the registered version of DOOM, and every major author has
complied as of this writing. Register your copy and join the fun.
-----
[1-3] Will the DOOM editors work with DOOM II or QUAKE?
A. The structures of DOOM II and the final (1.666) release of DOOM I
are expected to be similar, but we won't know for sureuntil DOOM II is
officially released in October. (Rumors indicate some changes in
mission naming may be needed.) No known level editor will support
anything having to do with the infamous "pirate copy" of DOOM II, in
keeping with Id's wishes.
QUAKE (still in early development) is going to be a completely
different design, and its "maps" will have nothing to do with DOOM WADs.
Id seems to be ready to encourage user-written QUAKE add-ons as they
have done with DOOM, but an entirely new set of editors will have to be
written when the time comes. Today's editors are for DOOM, period.
-----
[1-4] I heard about some editor that speeds up the shotgun or makes
Imps shoot barrels; how does that work?
A. Those are "EXE HACK" utilties, and not covered in this DOOM Level
Design FAQ. The most popular EXE hacker is DEHACKED, found on the FTP
sites mentioned in Appendix B. Lots of fun, but not our topic!
2. WALLS
--------
[2-1] I flagged a two-sided wall Impassable, but monsters and players
can still shoot through it. What's wrong?
A. Lines with the 2S flag lit DO NOT stop bullets/fireballs, no matter
what other flags are set. To stop shots, you need either one-sided
lines (void space) or a floor-ceiling mismatch high enough to block the
line of sight. "Impassable" only refers to motion by monsters or
players.
(Note that lines having two sidedefs but with the 2S bit OFF will
stop bullets -- but not rockets or plasma. See [2-9] below.)
-----
[2-2] I set "Blocks Sound" on the lines surrounding a room, but monsters
still seem to hear me. What's wrong?
A. A sound you make (punching, firing or launching, not grunting,
wheezing or talking in Multiplayer) will activate every non-deaf monster
that hears it. Sound first fills your own sector, then travels across
every *2S flagged* line into adjacent sectors whose floor and ceiling
leave a gap (i.e., not closed doors or sealed-off lifts). It then fills
those sectors and proceeds the same way. Sound will cross *one* line
with the "Blocks sound" flag lit, but will stop at the *second* such
line it encounters.
So - place a thin "buffer sector" next to your room, with both lines
flagged "Blocks Sound," and monsters on the other side of the buffer
sector won't hear you.
-- with material from Richard Krehbiel <richk@netcom.com>
-----
[2-3] OK, I understand how sound blocking works and my monsters work
properly, but why can *I* can still hear everything (monsters, shots,
lifts, etc), even across "Blocks Sound" lines?
A. Sound blocking only affects monsters. Human players can hear
everything possible (if there is a physical sound path) without regard
to line flags. Sound does attenuate with distance, e.g., a distant lift
will sound faint to you, a near one loud. (Monsters hear perfectly at
any distance.)
-----
[2-4] I wanted to make a doorway that LOOKS like a wall, by taking a
passable two-sided line and giving it a Normal texture on one or both
sides. Then you could walk/shoot through it, hide behind it, etc. But
when I loaded my level and walked up to the secret wall, it looked like
weird colored strings, and my PC slowed to a crawl. What's wrong?
A. We call this the Medusa Effect - it looks like snakes and you turn
to stone. :-) It happens because you used a *multi-patch* texture on
the Normal of your passwall. A fuller explanation of patches and
textures can be found in the Unofficial Specs (see Appendix B), but
briefly, each texture (like STARTAN3) is built from one or more graphic
"patches" (like SW19_1 and SW19_2); and for some reason, DOOM's engine
can only draw SINGLE-patch textures on passable walls. Examples of
single-patch textures (which you could use) are BROWNGRN, SKINTEK2, and
ASHWALL. Examples of multi-patch textures that won't work are STARTAN3,
COMPBLUE, and WOODSKUL. A complete list (TEXPATCH) of textures and the
patches that make them up is available (see Appendix [D-4]).
-----
[2-5] I got some strange colored dots and lines on some of my walls, but
I wasn't trying to make anything secret or strange. My PC seems to run at
full speed and the walls function normally, but they look funny. What
did I do?
A. This is Tutti Frutti effect (TFE), sometimes called "pink bug." It
happens for one of three reasons: you used a short texture (less than
128 high) on a taller wall; or you used a transparent texture (like
MIDGRATE) on an Upper or Lower surface, instead of the Normal surface;
or you accidentally set an X offset greater than the width of the
texture applied. (Many editors will attempt to prevent this, except
that if you change the texture to a narrower one afterward the old X
offset will stay.)
The "short texture TFE" happens because textures are only *vertically*
tiled on 128 pixel boundaries. If your wall is taller than your texture
and the texture is less than 128 high, DOOM fills in the extra pixels
with quasi-random garbage, hence the colored tutti frutti. You often
see this when designers put "STEPx" on 20-24 high steps.
The "upper/lower holes TFE" happens because Upper and Lower surfaces
actually have *nothing* behind them, so DOOM has nothing to show through
the holes; hence random garbage or tutti frutti.
-----
[2-6] A wall in my level looks strange - it seems to flash rapidly
with lots of overlapping textures and pictures from elsewhere in my
viewscreen. What did I do wrong?
A. This is the infamous Hall Of Mirrors (HOM) effect. You probably
omitted a necessary texture: either the Normal of a one-sided line, or
the Upper/Lower of a side whose upper/lower surface is exposed to air.
Many editors will catch this nowadays, but you can still run into it
when a lift or floor/ceiling movement exposes a surface that was
"originally" covered in the editor.
Note that there is another way to get Hall Of Mirrors, from too many
lines in view: see [9-1].
-----
[2-7] There is a place in my level where the whole screen flashes for
a moment, usually in random hash but sometimes in a pattern. If you
keep walking, it goes away. Am I hallucinating?
A. That's the "Moire'" or "Flash Of Black" error. It's another
DOOM bug/limit, triggered by getting close to a wall in a very tall
room. The effect first kicks in at about 559 units high, and gets worse
(you see it farther from the wall, and stay in it longer) as the room
gets taller. (The "pattern" you see is actually your old room's ceiling
texture, repeated forever at a great distance above and below you, as
though you were floating in some vast Stargate. Cosmic, man!)
If you don't really NEED the tall room, get it below 559 high. (Some
people make F_SKY1-ceiling exteriors very tall, for example, because
they figure "why not?" Answer: moire' error is "why not.") If you must
have it, accept the (harmless) error, or else work your way down to
below 559 high with steps up (constant ceiling) before exiting the room.
This is fixed in DOOM 1.4 and later versions.
-----
[2-8] Some of my level's long walls behave strangely. If you stand on
the edge, or in the corner, of this *big* room I built, you can SEE the
wall sort of "jump" and slide around. If you shoot from there, the
bullets sometimes stop right in front of your face! What did I do?
A. This is the Long Wall Error (LWE). Your wall is thousands of units
long, right? That gives the DOOM engine fits with round-off error
when it tries to compute and display the wall's position relative to
you. The blocked shots are from the "real" wall right in front of your
face! The solution is simple: break up long lines. Keep them under
1024. If you choose 768 or 512 unit long "segments," you will never
have a problem with X offsets in the texture tiling.
-----
[2-9] I guess I don't understand why the "2 Sided" flag (the 0x04 bit)
is needed at all! If a line has two sides, isn't that automatically a
two-sided line? What does the flag do, and what happens if you leave it
off? (I tried turning it off, but my editor wouldn't let me, it
silently put the flag back!)
A. The 2S flag allows light, sound and bullets to cross a line. It
does not affect the movement of players, monsters or projectiles
(rockets and plasma). It is required if one or both sides carry either
no middle texture or a see-through texture like MIDGRATE. If 2S is lit,
any nonempty middle texture must be "single patch" (see [2-4] above).
If you set up a line with two sides but the 2S flag turned off, you
and your enemies will be able to walk through it and fire projectiles
through it, but not see, hear or shoot through it. It must carry an
opaque texture on both sides, although this can be multi-patch.
Monsters on the other side will not wake up or notice you, even if you
shoot plasma at them through the wall, but once they ARE awake and "on
your trail" they will follow you through the wall (but not try to shoot
or throw projectiles across it, even though the latter would work,
because they cannot "see" you). This might have some uses as a "trick
feature" in a level.
Ideally, editors should not interfere with you turning off (or on)
any flag you want, although their consistency checkers might notice
this kind of "strangeness" and query you on it.
3. SECTORS/ROOMS/FLOORS/CEILINGS/STAIRS
---------------------------------------
[3-1] Is it possible to make a two-story area, where you could walk
over or under another player? What about a floating cube?
A. Not really - that's a limit of the DOOM engine. Only one sector can
occupy a given spot on the (2-D) map, and that sector has one floor and one
ceiling height.
You can do some fairly convincing imitations, though. Two- or
three-"story" buildings have been done, with transporters placed in the
middle of the "up"/"down" staircases or lifts. Criss-crossing mazes on
two or three levels (see OCTAGON) have been done, where you jump over
"trenches" while running the upper levels.
You can also make things that LOOK like floating platforms, even
though you can't go both over and under them. Judicious use of F_SKY1,
uppers and lowers does the trick.
-----
[3-2] I set a sector's type to Light Pulsates Smoothly, but it doesn't.
A. First, some versions of some editors got the pulsating sector type
wrong. It is type 8. Second, the smooth pulsing goes from the initial
brightness level *DOWN TO* the lowest adjacent brightness, and then back
up. If the type-8 sector is at or below the brightness of all adjacent
sectors, nothing will happen.
-----
[3-3] I made a Teleporter, but I can't get the "pentagram" floor
texture to line up properly with the teleporter pad. Aren't there X and
Y offsets for floor textures?
A. No, floors and ceilings are tiled on a fixed 64x64 grid throughout
the level, regardless of where you draw your lines. In order to make
the various patterns align properly, you need to build your ceilings,
telepads, etc, *on* the 64x64 grid or some multiple thereof. Most
editors have some kind of grid overlay that can make this easier.
-----
[3-4] How do I make stairs?
A. Consult your editor's documentation: some have canned procedures
for this, and some do not. In general, stairs must be shallow enough to
climb and wide and tall enough to fit through. Remember that the HIGHER
step riser's floor must be at least 56 units below the LOWER adjacent
ceiling, or you won't fit. You can only climb up 24 units at a time.
-----
[3-5] How tall can I make my ceiling, or how deep my floor? Editor XYZ
only lets me input values from -1000 to +1000 (or whatever), but someone
told me they saw a WAD with rooms taller than that.
A. The only hard limit is +16383 for the ceiling and -16384 for the
floor. Many editors impose more conservative limits, but they should
properly allow any value in the above range. Under DOOM versions 1.2 and
earlier, the Tall Room or "Moire'" error (see [2-7]) will crop up if the
*difference* between floor and ceiling is great; but a (Floor=15000,
Ceil=15100) room will play perfectly in all versions. The only reason most
designers would want to put rooms that high or low would be to take
advantage of the enormous jump-down or lift raise/lower times they incur!
(The author sometimes builds "delay" Deathmatch exits atop 2000-high lifts
inside an elevator alcove: anyone can call for it, but it takes fifteen
seconds to arrive, enough time for cowards to be "discouraged.")
-----
[3-5] I wanted to have a sector rise and change texture, then later
lower it again. I have the sector tagged properly and a "lower floor"
switch set up with the same tag, but after I raise and match the floor,
it won't lower! What's wrong?
A. "Raise and match texture" appears to work by *copying* ALL sector
information from the sector to be matched (the one on the right side of
the activation line; see [5-6] below) to the target sector, including
textures, type, light levels and -- what counts here -- tag number. Any
tag you had originally set in the map is gone.
A workaround is to set a *different* tag number on the sector to be
matched; this will then be copied to the target sector at the time of
raise-and-match. The second "lower" switch could then be tagged to this
new number. Only problem is that this means the sector adjacent to the
raise-and-match activation line will also be lowered! But you may be
able to set another line somewhere in a 0-tagged sector to do a "dummy"
raise and match and wipe out the extra "lower" tag number. Oh, it gets
hairy. Experiment with it.
-- with material from Evan Bynum
4. DOORS
--------
[4-1] How do I make a door?
A. Your editor's documentation probably covers this, including whatever
specific keys, buttons, menu selections (and so on) that you need to use
to do it. But in general, for the simplest, "classic" Door, you need to
have a sector lying between two other sectors. The Door sector itself
should have its Ceiling lowered to equal its Floor height. The two "door
face" lines should be two-sided, with their right (first) sides facing
outward; those right sides should have no Normal texture, but an Upper
texture of something "doorish" like BIGDOOR2. The Door face lines
should have a "Door" Type number like 1, and Tag of 0.
The other two ("door jamb") lines should be one-sided (void space
behind them), with a Normal texture like DOORTRAK and the "Unpeg
Lower" flag set. (This holds the DOORTRAK still while the door goes up
and down.) The lowest of the adjacent sectors' ceilings must be at
least 64 higher than the highest adjacent floor, or you will not be able
to walk through the door. (The rising door stops 4 below the lowest
adjacent ceiling, and you are 56 high.) There are many more complicated
kinds of door and door-like features, but this is the simplest.
-- with corrections from Scott Amspoker
-----
[4-2] I built a door in a high-walled room, and now the door texture
"repeats" all the way to the ceiling. It's very ugly. How do I get
rid of it?
A. Recess the door. Add a mini-"hall" leading from your main room,
with a lower ceiling height to match the texture height of your door, and
place the door in that.
|
+-+-+-------
: |d|
room : |o| hall
: |o|
: |r|
+-+-+-------
|
-----
[4-3] I added a door but when I play the level, the door is already open,
and it makes an opening noise but it won't close. What gives?
A. It's hard to get this to happen. You may have a Tag number set to
something inappropriate: for most Door types, it should be zero. Make
sure the activating lines face "outward" (right side facing the player).
Most doors start out closed (floor = ceiling), but they don't have to.
Note: Even if a door starts out partly open, it will still close all
the way (floor=ceiling).
-----
[4-4] How can I keep monsters from opening a door?
A. One way is by requiring one of the Keys (red/blue/yellow) to open
the door. Monsters don't have keys. This is the only simple way to
keep monsters out or let them in under *your* control. If you want to
keep them out of a door, period, you could put a thin high step in front
the door, or mark one of the door lines with the BLOCKMONSTERS flag.
There are also some Tag-based "door-like" special linetypes which
monsters do not seem to want to trigger, so you could use one of those.
-----
[4-5] I want to make a door that only works (opens) AFTER a switch
somewhere else is pressed. Can this be done?
A. Not "directly" -- linetypes cannot change dynamically in a map -- but
you can make a terrific mock-up that does what you want.
The trick is to put a thin door IN FRONT of the door you want to open
later. The inner and outer doors might have exactly the same Upper
texture and lighting level, unless you want to make the change obvious.
You can even light the "Unpeg Upper" flag on the front of the outer
door. Then, when you press your external switch elsewhere on the level,
the thin outer door rises, revealing the "real" door underneath. If you
unpeg the outer front and keep your thickness down, this process will be
nearly undetectable.
To make sure the user can't activate the inner door by pressing
"through" the outer one, you may want to give the outer door's front
face an innocuous special linetype, like one that lowers a hidden lift
somewhere.
-----
[4-6] I set up a door (or even a secret door) in a wall, and I raised
the "sill" a few units above the floor. But now you can see right
through it on the Map display as if it weren't there! I don't want this
effect, is there a workaround?
A. DOOM has a bug where, if you look at a closed door whose
floor(=ceiling) is higher than the sector floor beyond, it appears on
the map like an open window. Secret flags don't help. What you can do
is either make the whole sector behind the door higher to match the
raised sill, or at least put a narrow "buffer sector" behind the door at
the same height. Then the door will become opaque on the Map again.
-- with material from Robert Forsman
5. TAGS/TRIGGERS/EFFECTS
------------------------
[5-1] I can't get my Tags to work right. I put the sector number I
wanted into the Linedef...
A. Hold it right there! :-) Tags are perhaps the most misunderstood
DOOM feature. Tags are NOT sector numbers and they are NOT line
numbers! They are *arbitrary* numbers, 1 to 32767, that are *shared* by
one or more lines and sectors, as a way of identifying the sectors as a
group. It's just like being assigned a "box number" when you place a
newspaper classified ad. You say, Here's my ad, and they give you Box
78, which happened to be unused. 78 bears no relationship to you
personally, it's just the place where replies to your ad will be sent.
Similarly, if you set up an effect like "lights out," with a walk-over
line to trigger it and a set of one or more sectors whose lights you
want to go out, the actual *numbers* of the lines and sectors don't
matter. You pick an unused Tag number out of thin air -- say #7 is free
-- and you plug that Tag number into *both* the trigger line (or lines)
and the affected sector (or sectors). Then later, when you walk over
that line, DOOM says oh, that had Tag #7, now where are all the Tag #7
sectors? and when it finds them, whatever their actual sector numbers,
it turns out their lights.
-----
[5-2] Then what's a Platform?
A. Originally it was Id slang for a lift, the "down wait up stay"
elevator sectors. Platforms needed tags like any other effect, but
unfortunately the concepts got confused in a few minds and some design
software came out that used "platform" to mean Tag. In fact, Tags are
much more flexible and applicable to many more things than just lifts.
Current versions of just about everything get it right.
"Plat" in the game has a related but different meaning: it's a data
structure used to apply an effect to a sector. If you mess up your Tags
and accidentally try to lower every sector in the level at once, you'll
probably bomb out to DOS with a "no more plats!" error message.
-----
[5-3] I set a line to turn the lights out on a sector, but when I walk
across it, almost ALL the lights go out in my level! What in the world
have I done now?
A. You forgot to set the Linedef Tag number (and the affected Sectors)
to something NONZERO. If DOOM sees a Tag of zero (0) on a trigger
line, it will find all the sectors with the SAME (0) Tag (i.e., most of
the sectors on your level) and do the action on all of them.
There is some confusion about when and how Tags should be used. There
are only TWO kinds of trigger lines that don't require a Tag: "true"
Doors (types 1, 26, 31, etc - see the Unofficial Specs) and the End Level
group. Every other kind of special linetype WILL use the Tag stored in
its Linedef.
-----
[5-4] I have a lift in front of a door, and sometimes I can't get the
door to open. What's wrong?
A. When two trigger lines are in front of you, DOOM always chooses
the closer of the two. What's probably happening is that your lift is
so narrow that its trigger line blocks the door's. Try setting the lift
well back from the door, or using a separate wall switch for the door.
Of course, this can be an advantage too: to keep people from pressing
the "back" of a switch (in a cooperative exit, for instance), surround
it with innocuous special linetypes that do something like open a door
or turn the already-bright lights up.
[5-5] How do I make a teleporter?
A. This is covered in a lot of tutorials and editor manuals, but
briefly: You need at least one departure Line, one arrival Sector and
one destination Thing. The line can be anywhere, must be two-sided, and
must have its linetype set to 39. Its Tag number should be set to match
the Tag of the arrival sector. The sector can be anywhere, should be
tall enough to accomodate a player, must share the same Tag number and
must be the only Sector with that Tag (although there can be as many
Lines as you like). Inside the arrival Sector must be exactly one Thing
of type 14 (Teleport exit).
With those pieces in place, you're set: a player or monster walking
from Right to Left (1st side to 2nd side) across the line will be
teleported onto the Thing in the destination Sector. The Direction of
the destination Thing will be the direction you face on arrival.
-----
[5-6] I wanted to make a sector that moves and changes texture, using
one of those exotic linetypes my editor tells me about. But when I hit
the switch, the sector gets the wrong texture! How do I fix that?
A. Most "change texture" triggers modify the tagged (target) sector
floors to match the texture on *side 1 of the line where the switch is*.
Put the texture you want on that side, and the tagged sector will follow
suit.
-----
[5-7] Rising staircases are confusing! Mine do everything but what I
want. How do I fix them, and what does the Tag 999 do?
A. Yes, they can sure be confusing, but we're fearless, so read on.
Here's how rising stairs work. You trigger the first (bottom) step in
the expected way, with a linetype 7 or 8 (in DOOM 1.666, linetypes 100 and
127 also work) tagged to a sector. That sector rises -- make sure it
has the necessary lowers or you'll get HOM! -- and then DOOM looks for
the next sector to raise by searching for the *lowest numbered* linedef
whose *first* (right) side faces onto the current sector. If no first
side faces inward, rising stops. Otherwise the "found" neighboring
sector is raised, and the search continues from there. Tags are not used
at any time.
Now, why do Id's examples have odd tag numbers like 99 or 999 on
alternating sectors? For the very dumb reason that their nodes builder
-- IDBSP, whose source was released to the DOOM user community -- actually
*combines* adjacent sectors with identical characteristics! Before
rising, all the staircase steps have the same height, light levels and
textures. So, to make them "different" and prevent IDBSP from merging
them, Id's level designers stuck a nonsense tag number on every other
one. The nodes builders we use these days (including several
adaptations of Id's original) no longer do nasty things like combining
sectors without permission, so we can skip the tagging gymnastics.
-----
[5-8] I set up a floor sector that's supposed to rise and fall every
5 seconds, but when I activate it nothing happens! Or, I made a "lift"
but it doesn't go up and down! What could be wrong?
A. Make sure that you start "perpetual raise" floors (linetypes 53
and 87) and lifts in the *UP* position. They are designed to go DOWN
from their initial position to the lowest nearby (or nearest) floor when
activated, then back up to the initial position. If you start them
"lowered" in the level map, they will go nowhere.
6. MONSTERS/THINGS
------------------
[6-1] I built a hallway/room that my monsters refuse to enter. They
stamp around at the entrance but that's it.
A. Make sure your hall is wide and tall enough! The Unofficial
Specs [4-2-1] have a list of monster heights and widths. What's more, if
a hall is *just* wide enough for a monster, it's less likely to enter
than if it's *plenty* wide enough.
Also be careful about step-downs and step-ups. Monsters will not step
up/down too far onto narrow steps. If you want a monster to go up or
down more than 16, make sure there's plenty of room on both sides of the
riser line.
The actual tested measurements for all monsters are in the METRICS
document; see Appendix D.
And of course, make sure you didn't accidentally mark the entrance
with BLOCKMONSTERS or something, by accident in the editor.
-- with material from Adam P. Harris
-----
[6-2] I put some demons in a room but they don't move, they just stand
there and twitch, although they scream when I shoot them. How did that
happen?
A. You probably placed them too close together when you laid out your
level. Monsters have to be separated from each other (AND from nearby
walls) by at least their own width, or they freeze in place. (If you
kill all of a monster's too-close neighbors, it will usually free the
monster to attack you.)
The other possibility is that your ceiling is too low. See the
Unofficial DOOM Specs (Appendix B) for monster widths and heights.
-----
[6-3] There's this great "zoo room" I built with a hundred demons in
it! What a blast to mow your way through so much alien flesh. But it's
weird, like some of the monsters "flicker" in and out of view. Should
that be happening?
A. DOOM can only keep track of 64 sprites in your view at once. If
you have more than that, some will fail to display in each frame,
effectively at random. (This includes things like torches and barrels.)
The more sprite overload, the greater the chance that any given sprite
will be "invisible" at a given moment. Put 200 imps in a room and each
one will be "gone" 2/3 of the time.
The workaround is, quite simply, to design your level in a way that avoids
sprite overload. Instead of 100 troopers in a room, use 50 and keep the
hanging corpses to a minimum in that area... etc.
-- with material from Vesselin Bontchev
-----
[6-4] How close to the edge of a "shelf" do I need to put my stim
packs and potions so the players can get them? How far back must I put
something to keep the player's hands off of it until the right moment?
Does it matter how high or low the items are?
A. First the height issue: In order to be grabbed, a thing must be
sitting on a floor that's between your feet and your head, e.g., between
0 and 56 units above the floor the grabbing player stands on. Above or
below that and it won't be taken no matter how close to the edge.
As for horizontal distance from the edge: On paper, your body radius
is 16 units, your grabbing "arms" extend another 32 units beyond that,
and gettable objects themselves have a radius of 16, so that when you
bump up against an unclimbable "shelf" lower wall, you should be able to
grab things centered as much as 48 units back from the edge. But in
practice I find considerable "slop" at the edges of these numbers, and
also a longer reach if you run full speed into a barrier. To be
absolutely certain an item will be taken at the lightest shelf contact,
place it 24 or fewer units back. To be absolutely sure the item will
NOT be taken, even with a running start at -turbo 200, place the thing
40 or more units back. (If you try to finesse these numbers or shave
them very close, beware of editors or WAD post-processors that snap
Thing coordinates to an 8x8 or coarser grid!)
-----
[6-5] I put some Columns and Torches in a room, but they look funny,
almost as though they're sticking up "into" the ceiling. Why does that
happen and what do I do about it?
A. Make the room taller or pick shorter Things. Each Thing has an
apparent height when its Sprite is drawn, and low ceilings do not cut off
any excess; the whole thing is drawn, even if it seems to pass
mysteriously into the ceiling. Tech Columns are about 112 high, the
highest example. Other things are lower.
-- with material from Vesselin Bontchev
7. LEVELS AND MAPS
-------------------
[7-1] When I play my level and switch to Map mode, it only shows me a
little bit of the local area I'm in, even when I hit "-" a lot or "0" to
Zoom Out. The Id levels seem to work OK and some of the levels I've
downloaded do too. What am I doing wrong?
A. The culprit is the resource called BLOCKMAP. It is described in
the Unofficial Specs [4-11]. Some editors don't build a good one. You
can usually overcome this by creating a few dummy "sectorlets" or just
linedefs out at the "corners" outside of your real level map area.
Otherwise, you'll have turn Follow off and scroll around the map.
-----
[7-2] I designed a level that's about as complicated as one of the
original ID levels - roughly the same number of rooms, monsters, etc.
But mine plays much *slower* than the originals! What's wrong?
A. Remember that DOOM only loads PWADs when it needs them, so there
will be some inevitable disk overhead when your level first starts, and
occasionally thereafter if DOOM needs to keep going to disk to get other
entries from your WAD file. (If you have enough memory, DOOM actually
improves with about 1 Megabyte of disk cache, although results vary from
system to system.)
More importantly, there is a resource called REJECT that quickly tells
DOOM whether sectors can "see" each other, allowing many expensive
line-of-sight checks to be skipped. Without REJECT, DOOM must
constantly check each monster to see whether it has a line of sight to
your location. On a level with a lot of monsters, this can be time
consuming.
As of this writing, some editors generate a real, usable REJECT resource
when you save a level, while others need to be used in conjunction with a
separate, standalone REJECT builder (like IDBSP, REJECT10 or RMB) in order
to optimize playing speed. See Appendix D.
-----
[7-3] I have designed several mission maps, but now I'd like to combine
them into a mini "episode" for distribution together. How do I do it?
A. You may be able to do it right in your editor; check the
documentation to find out whether your software supports combining
multiple PWADs into a single group file. If not, you may have to "borrow"
another editor temporarily, just long enough to do the combine.
If you have created each of your mission maps as E1M1, and if your
editor doesn't easily allow you to change a map's mission number
(something just about all of them do), you can use the MOVELEV utility to
change the episode and/or mission of your PWAD in place without editing
it. See Appendix D.
-----
[7-4] I just lost two days worth of work because that new Beta Test
release of NODEMAKE 2.99 [a made-up example] is buggy! I saved my PWAD,
ran NHOUND on it, and when I edited the PWAD again the lines were all
crazy! How can I get my data back?
A. You probably CAN'T get your data back, because you made the
dangerous mistake of editing, post-processing, and playing all out of the
SAME file. That's not the way to protect your valuable design effort!
Here is the safe way to do design work. Have one "cycle" of files which
contain nothing but editable map data for the level you're working on. If
your editor allows it, you can give these files a different extension,
say, MYLEV.EDI instead of MYLEV.WAD. Your editor may also allow for the
"old" input file to be renamed as MYLEV.BAK when you save, adding
another level of protection. Then when you edit, do it with a *batch
file* that runs your editor followed by any post processor, directed to
another file. So for example
MYED.EXE %1.EDI
NODEMAKE.EXE %1.EDI %1.WAD
after which you might have as many as *three* good files: MYLEV.BAK,
MYLEV.EDI, and MYLEV.WAD. So if a test version of NODEMAKE hoses the
output, you're still in business.
-----
[7-5] Do nodes builder programs like BSP take into account any nodes I
have already built in the editor or with a previous program?
A. No, they always build them from scratch using just the map data.
You may have some control over the "depth" and/or "speed" of the BSP
structure, depending on your editor's or utility's parameters; consult
the documentation for details.
-- with material from Douglas Baker
-----
[7-6] Is there any way to import AutoCAD or other CAD/CAM or home
design program datasets into DOOM as level maps?
A. Nobody has written a DOOM level editor that reads such files, to
the best of my knowledge. In principle, any CAD program that allows
dataset export to a Text file could be used along with a suitable text
editing script or program, to generate a DWD or WIF file which could
then be converted to a WAD with the IDBSP package (see Appendix D), but
again, nobody's done it that I know of. One of the problems you would
have, of course, is that much important information (special line and
sector types, tag numbers etc) would probably be absent from the CAD
dataset and have to be added later.
8. GRAPHICS/SOUNDS
-------------------
[8-1] Some of these DOOM levels I download have custom graphics. How
can I do that?
A. If you can create or find a GIF file of the right size, there is a
utility called DMGRAPH (see Appendix D) that will insert it into your
WAD file. You are on your own as far as picking a Windows or DOS based
graphics editor -- there are a lot of them, preferences vary widely, and
if you've never made a picture before, you're probably not ready to use
them in your DOOM levels. Once you have a picture, the DMGRAPH
documentation tells you more about how to use it.
-----
[8-2] I wanted to change STARTAN3, but when I ran the DMGRAPH utility,
it said "entry not found." What's wrong?
A. As described in the Unofficial Specs (see Appendix B), textures are
built out of graphic "patches." DMGRAPH 1.1 (the latest version at this
writing) only deals with patches, which have their own names. STARTAN3
is a texture name. A few textures are composed of exactly one "patch,"
allowing you to do a full substitution, but others are built of three or
five or more "patches." A future version of DMGRAPH may (or may not)
address this situation.
-----
[8-3] I can change the wall graphics just fine, but when I try to
change a floor or ceiling, DOOM either crashes or ignores my new
texture. What am I doing wrong?
A. Not much, unfortunately. As the DMGRAPH documentation points out,
only some kinds of graphic patches can be supplied in PWAD files.
Floors and ceilings ("flats") cannot be used from PWADs in any DOOM
version; sprites (Imp, Shotgun, Torch etc) can be used from PWADs in
DOOM 1.6 and later, but not in DOOM 1.2. (Yes, Id once said they would
allow flats to be added from PWADs in 1.6, but it didn't happen.) The
only thing you can do is patch them in the *original* DOOM.WAD file.
You could supply the GIFs, a copy of DMGRAPH and a batch file along with
your custom level, so that the user can insert the graphics him/herself,
but many users don't like having to patch their main IWAD.
Note that the one "ceiling" you CAN change in a PWAD is the Sky
graphic that's displayed "outdoors" in rooms with F_SKY1 as the ceiling
texture. But this is really a wall patch (SKY1/SKY2/SKY3, depending on
which episode you're in) that's displayed as a combination wall/ceiling
via a special algorithm.
-- with material from Matt Fell and Arek Wojciechowski
-----
[8-4] I got a utility (DMAUD) that replaces DOOM sounds, but I don't
know what numbers go with what sounds, and the Unofficial Specs don't
say. What are the various sound names?
A. Ask DMAUD: just type "dmaud -l" at the command prompt, and you'll
see a list of them.
-----
[8-5] Why can't I replace the DOOM music with the cool "Batman" theme
music .WAV file I downloaded from a BBS?
A. Because a .WAV file is a sampled waveform -- essentially one long
digitized sound effect -- and DOOM only uses this form for "noises" like
door sounds, gunshots, grunts etc. (Those you CAN replace, with Bill
Neisius's DMAUD utility; see Appendix D.) DOOM's background music is
stored in .MUS format, similar to MIDI (and convertible from MIDI with
the MIDI2MUS program; same Appendix) -- actually specifying instruments,
notes to be played, durations etc. There's no readily accessible way of
going "backward" from a .WAV to a MIDI music sequence. So if you want
to substitute your own music, you need to find some MIDI files, or
record your own with a MIDI-capable synthesizer.
-- with material from Jered Floyd and Brad Reynolds
-----
[8-6] Okay, I got a top of the line bitmap editor and I created some
GIF pictures to use as textures, then I inserted them into a PWAD using
DMGRAPH and I played my WAD. The pictures are there, but the colors are
awful! Lots of ugly red speckles, washed out areas, nothing looks the
way I expected. How did Id get theirs looking so good, and how do I do
the same?
A. Simple, they cheated. :-) That is, Id uses a non-uniform palette
that's optimized for the "look" they wanted their world to have. If you
extract one of their big patches out to a GIF file with DMGRAPH, then
load that into your graphics editor and examine the "image palette,"
you'll see what I mean: lots and lots of shades of grey, plenty of
intermediate greens and browns, a few blues, some reds, few yellows, and
other areas very skimpy. This lets Phobos look terrific, but when you
import your Euro Disney slides and feed them to DMGRAPH straight, it has
to map colors to their nearest equivalents in the DOOM palette, with
sometimes-horrendous results.
How to cope? Your fancy bitmap editor may or may not allow you to
"coerce" work to stay within the DOOM palette; some, like Corel
Photo-Paint 4&5, are designed for pro artists and always "think 24 bit."
If you keep the DOOM palette loaded, though, you can still use it
exclusively for new fills, lines, textures etc. You can also use one or
another freeware/shareware "image handlers" like Paint Shop Pro, which
can run in the background and coerce images to the palette for you. If
you can see in advance what the graphic's going to look like, you're a
lot better off. In general you can try to use colors that have plenty
of equivalents in the DOOM palette, keep things muted and somewhat low
contrast, etc. Beware when "dithering" pictures, because the results
may look awful up close in play.
-----
[8-7] I created some graphics and put them into my PWAD with DMGRAPH,
but when I run my editor it spits out some funny error messages, and when
I save my edited level the graphics are gone! Or the editor preserves the
graphics, but when I pass my PWAD through my favorite standalone NODES or
REJECT builder, it strips away my custom graphics and music. How can I
get around this?
A. The easiest way is to maintain a *separate* graphics/music PWAD while
you develop your level. Use only DMGRAPH/DMAUD/DMMUS to insert, remove or
change graphics/sound/music into that PWAD; never open it with an editor
or feed it to any other standalone map-oriented utility. Let the PWAD you
use in your editor contain *only* map data. Then when you test your
growing level, simply load *both* PWADs, map and graphics/sound/music,
with the -file switch:
doom.exe -devparm -skill 4 -file mylev.wad mygfx.wad
Then when you are ready to release your level, combine the two PWADs
into a single one using an appropriate editor or utility; see [7-3].
(Also see question [7-4] which is related to this one.)
-----
[8-8] How do I make a see-through wall like MIDGRATE?
A. Everywhere in your graphic that is PURE CYAN (Red=0, Green=255,
Blue=255) will be rendered as transparent if a texture using your
graphic patch is applied to the Normal (Middle) surface of a 2S line. To
see the proof of this, extract MIDGRATE (patch name M1_1) to a .GIF file
with DMGRAPH and edit it with your favorite graphics editor. The reason
this might not have been obvious is that many DOOM graphics viewers and
editors politely translate "pure cyan" to BLACK for you on the display.
-- with material from Adam P. Harris
9. OTHER ERRORS
----------------
[9-1] I have a level that passes all my editor's consistency checks,
and looks clean to me, but when I play it, I get strange flashing
effects on a few of the walls, what I think they call "Hall of Mirrors."
What's wrong?
A. First, make sure you built a good node tree with a BSP utility.
(See Appendix B for where to get them.) If you used BSP and it still
happens, and you're *sure* you didn't omit any required textures, you
may have hit a DOOM engine limit.
The limit has to do with how many lines DOOM can show you at a time.
If you have too many lines in sight at once (128 in DOOM 1.2, increased
to 256 in DOOM versions 1.4 and later), the extra sides will not be
drawn, and you will tend to see the Hall of Mirrors (HOM) effect
somewhere twards the back of the room.
Note that there are often MORE edges visible than there are lines on
the map! Looking at a staircase from above, for example, will show
two edges (riser and flat) for every map line. And an intervening
"shaft" or pillar in the middle that cuts the staircase in half will
double the number of long edge segments visible -- so you can reach the
limit more quickly than you think.
If you hit this limit, find a way to simplify your room's layout or
interpose some void space (one-sided surfaces) so you can't see so many
lines at once.
-- with assistance from John Carmack,
and material from Robert Forsman
-----
[9-2] I'm getting Hall of Mirrors, but I'm sure my room isn't too
complicated or anything. My level passes all the editor's checks and I
use the best BSP node builder. But when my crushing ceilings (or rising
platform/stairs, or lowering wall etc) are activated, the HOM appears.
What did I do wrong?