Notes for WAD Designers
These are notes of things that all WAD designers should address in WADs they create - things to avoid, and things that should be checked.
Levels
Things to do
Basics
Always remember the basics. Include co-op and deathmatch starts, even if you never test them - it is a pain to add them after downloading. Always include an exit.
Layout
Plan the layout ahead. The best levels have been thought out properly, so areas connect naturally.
Try to make sure each area has several ways in and out. Most buildings will not be a series of rooms, where you are forced to go through every room to reach the last. Use keycards to make sure the player has to go though most of them at least once, but then allow them to use quicker routes once they have the cards.
Triggers
When the player hits a switch or crosses a trigger line, make sure they have some idea what it is triggering. Having the switch near the thing it affects is good. Alternatively, make it obvious (e.g a door that will not open) that a switch is needed to activate something.
Don't use walk-across lines to open vital areas unless you are certain the player must cross the line before even thinking about getting to that area. Use switches in preference for important things, keep trigger lines for traps only.
Style
Give the level a consistent overall style. This doesn't mean the level is all one texture, but that the level is all similarly designed - e.g all industrial, or a computer terminal in every room, or lots of gory decorations throughout. This makes a level much more interesting to play.
Details
Make sure that:
- Doortracks are set to a doortrack texture, and are unpegged.
- Ceilings of doors are set to a ceiling texture like the texture on the faces of the door (e.g wooden planks for a wooden door).
- Doors otherwise match their surroundings, i.e have the same light level and floor texture.
- There are no odd panels of different textures in a room, unless they are identifiable decorations, or mark secrets.
- Textures over doors and around windows are properly aligned.
Lighting
Try to make sure that all rooms that are lit have an identifiable light source. Reduce the light levels of rooms further away from light sources. Choose light levels so that some areas are dark, but the player can still see enemies and walls, and other areas are lighter.
Use lighting effects, like shadows behind pillars etc, to give a level more atmosphere. This is best done so it is not obvious - e.g in iD's original levels, where the lighting effects are so natural you hardly notice them.
Skill Levels
Always implement skill levels. Even poorly implemented skill levels ar better than nothing. Try to design your level for Hurt Me Plenty, so that even experts can find some challenge on UV, and eveyone should have a chance at ITYTD.
Finally
Build the REJECT. This speeds up levels, which is essential for those of us with slower computers.
Check the level using a decent level editor. WinDEU includes a checking system, as do several other editors. If it reveals any bugs, correct them, even if you don't consider them bugs. It may prevent the level running on other versions of Doom, or may cause the level to be unreliable.
Play the level through. Make sure you can complete it at some skill, without cheating. Also, make sure you haven't got gamma correction turned up full. Aim to make the level at gamma correction level 2, then people can adjust either way depending on their monitor and playing conditions.
Things to avoid
- HOM
- Where a texture is missed out where one is needed. Leaves a gap in the image displayed, which Doom fills with flashing images of other parts of the screen. On occasion people have used this to portray a mirror in a level. IMHO this looks rubbish, so just accept that Doom doesn't have mirrors and avoid HOM.
- Tutti fruiti
- Where a texture less than 128 high is used on a higher wall. Lots of coloured lines/dots appear on the wall. Looks very tacky.
- The Medusa effect
- Where a multi-patch texture is used as the normal texture of a two-sided line. The Doom engine cannot display this, and instead displays some random pixellated garbage and slowws down the frame rate. Looks very messy.
- The savegame bug
- Where Doom crashes when saving a game at this level. If you get this bug, either remove lots of things (replace them by fewer, more powerful things), or split the level up into several levels. Some people use the excuse that it is a problem with Doom, not their level. But I say "It is meant to be a level for Doom. So if it doesn't work properly under Doom, it has bugs. This is a bug with your level. Fix it."
- Large levels
- Don't make levels that are too large. Make sure that at least a 486DX2 50 can run your levels without being jerky. That way people with less can still run it, but jerkily, and those with more know your level is OK. State CLEARLY in your accompanying TXT if your level will only run smoothly on Pentiums.
- Wafer thin ceilings
- Where the ceiling height in a building is the same as or above the height of the wall outside. This makes the ceiling look very thin, since realistically is cannot go higher than the outside wall.
- Wafer thin walls
- Where a 2-sided line has been used as a wall, by clearing its 2-sided bit, making it impassable, and putting normal textures on both sides. Usually invisible on the automap. Viewed end on, they can be invisible. Very tacky.
- Large Rooms
- Avoid having rooms larger than they need to be. Many levels use large rooms throughout, but this makes the level feel unrealistic, and spoils the atmosphere. Use large rooms as centerpieces, but not for every room on the level.
- Teleports assigned to tag 0
- A teleport consists of a line with a teleport line type, and a teleport exit in a sector with the same tag as the line. This means that you can use tag 0 for teleports if there is only one destination you are interested in in the sectors with tag 0 (ordinary sectors). But doing this makes Doom search the entire level (except non-tag 0 sectors) for the exit whenever the level is triggered, so slows down the teleport. It is unecessary and slows down the level, so use a dedicated tag number please!