Making DOOM 3 Mods : DOOMEdit

DOOMEdit is loosely based on Quake 3 radiant, but with some subtle differences.
Below is a quick "getting started" guide, which can be particularly useful for programmers who want to created test maps. Look to qeradiant.com for more advanced information on Radiant.

Starting her up
The easiest way to start the editor is by typing editor in the console. If you open the editor a lot, you'll probably want to create a direct short cut to it.

1: Right-Click the Doom 3 short cut and select "Copy" then "Paste" it in the same place (so you get "Copy of Shortcut to Doom" or something similar).

2: Rename this shortcut to "DOOMEdit"

3: Right-click the new shortcut and select "Properties". Specify the following for "Target":
"C:\Doom3\Doom3.exe" +set r_fullscreen 0 +editor +set com_allowConsole 1
(This of course assumes you have Doom 3 installed in C:\Doom3\)

The editor does not work with antialiasing turned on, so you may need to add:
+set r_multiSamples 0

The first time you open DOOMEdit, you will want to click File->Project Settings and change all the paths to point to wherever you have Doom 3 installed (by default they are set to where the level designers here at id have Doom 3 installed). There is a small bug in that dialog box, after you click OK, you will need to copy the "doom.qe4" into the "base" folder.

Moving Brushes
DOOM level editing is all about placing convex polytopes, also known as 'brushes'. A brush is basically an arbitrary convex shape. Making a map with brushes is similar to making a structure with legos. You have a series of convex blocks that you fit together to create rooms and other objects.

To create a brush, just click and drag within the 2D view window. This should create a red rectangle which defines the size of your brush. If you continue to click and drag, you will only resize the selected brush. In order to create a new brush, you must first unselect the old brush by hitting Escape.

You can reselect a previously created brush by clicking it while holding Shift. If there are multiple brushes stacked on top of each other, you can cycle through them by clicking while holding Alt+Shift.

You can duplicate the selected brush by hitting Space Bar, and you can delete it by hitting Backspace.

Making a simple room
A map in Doom 3 has to be completely sealed in. That means there cannot be any space between two brushes. A map that is not completely sealed will "leak" when you try to compile it.

The way to create a room is to create 6 brushes: 4 sides, a floor and a ceiling. Experienced level designers will drag out all 6 brushes manually, but if you're a programmer, or you're in a hurry, you can use the CSG subtract tool.

  • Drag out a brush you want to be the external size of your room (you can adjust the height by using the "Z" window).
  • Hit escape and drag out a brush that is one grid unit smaller on all 6 sides (again, use the "Z" window to change the top and bottom).

    You should now have one box inside another box, with the smaller box selected.

  • Click Selection->CSG->Subtract.

    You should now have 6 brushes, with all of them selected.

  • Click the "Media" tab in the "Inspectors" window.
  • Expand out Textures->textures->base_wall
  • Click on some textures and notice the textures change in the 3D camera window.
  • Find a texture that you like and hit Escape to unselect the brush (leaving the texture applied to it).

We're almost ready to compile, but first we need to place a player start entity so the game will know where to put our player. Right-click in the 2D window and select info->info_player_start. A red square with a dot in it should have appeared under your cursor. You may want to move it down in the "Z" window so it is right above the floor.

Save the map in C:\Doom3\base\maps\mymap1.map.

Now it's time to compile the map! Click Bsp->bsp.

If everything went ok, then in the "Console" window you should see "no entities in map that use aas_cyberdemon" as the last line. If you see "******* leaked *******" then your map map leaked (see below).

The final step is to test the map. Hit F2 to switch back to the game. Drop the console and type map mymap1. Your map will be pitch black because we didn't add any lights, but you can use your flashlight to look around.

Now that you know you can make a simple 6 sided room and load it up, you can start adding more advanced things. The first thing you'll probably want to add is a light. Right-click in the grid and select "light". A purple box should appear, indicating the size of the light (all lights in Doom 3 are square). You can also add weapons, monsters, physics objects, and other random crap by using the same right click method.

Leaks!
Levels in Doom 3 (and Quake for that matter) have to be completely sealed in. This means there can't be any cracks from the "inside" of the level to the "outside" of the level (also known as the void). For a map to be completely sealed in, the brushes should form a complete volume with no gaps between them.

There are three common situations that cause leaks:

  • There is an entity outside the map. All entities must be completely inside the map. There cannot be any entities poking through a brush or hanging out in the void (unless they are marked as noflood).
  • There is a gap between two brushes. This is simple enough to imagine.
  • A "hull" brush has a non-solid texture applied to it. This is probably the hardest situation to figure out because it will look like there is no leak. The problem is even though there is a brush there, it may have a texture indicating that it is not solid (for example a trigger texture).

There is a tool to help track down leaks known as the "Pointfile" tool (in the "File" menu). This tool draws a line from the leaking entity to the location of the leak. If the leak was caused by the entity being halfway inside the map and halfway outside then nothing will be drawn (because the entity location and the leak location are the same). After loading the point file, you can press Ctrl+Shift+K and it will take you right to the leak.

Copyright © 2004 id software