mirror of
https://github.com/dhewm/iddevnet.git
synced 2024-11-22 12:31:18 +00:00
188 lines
8.8 KiB
HTML
188 lines
8.8 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||
<!-- saved from url=(0041)https://www.iddevnet.com/doom3/editor.php -->
|
||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
||
<title>id.sdk [DOOMEdit]</title>
|
||
<link rel="stylesheet" href="style.css">
|
||
</head>
|
||
|
||
|
||
<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
|
||
|
||
<table border=0 cellpadding=0 cellspacing=0 style="width: 100%; height: 99px">
|
||
<tr>
|
||
<td style="width: 171px"><img src="images/doom.jpg" style="width: 171px; height: 99px" alt=""></td>
|
||
<td style="background: url(images/tile.gif)">
|
||
<table border=0 cellpadding=0 cellspacing=0 width=600>
|
||
<tr>
|
||
<td style="height: 19px; background: url(images/sdk.gif) no-repeat"></td>
|
||
<td rowspan=4 align=right><img src="images/id.gif" style="width: 42px; height: 99px" alt=""></td>
|
||
</tr>
|
||
<tr><td style="height: 29px; background: url(images/top.jpg) no-repeat"></td></tr>
|
||
<tr><td style="height: 27px; background: url(images/middle.gif)" class="title"> Making DOOM 3 Mods : DOOMEdit</td></tr>
|
||
<tr><td style="height: 24px; background: url(images/bottom.jpg) no-repeat"></td></tr>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
<table border=0 cellpadding=0 cellspacing=0 style="width: 770px">
|
||
<tr>
|
||
<td colspan=2 style="background: url(images/boxtop.gif);"><img src="images/span.jpg" style="width: 397px; height: 20px; float: left" alt=""></td>
|
||
</tr>
|
||
<tr>
|
||
<td style="vertical-align: top; width: 152px; background: url(images/tileleft.gif)">
|
||
<div class="leftMenu">
|
||
<script src="menu.js"></script>
|
||
</div>
|
||
</td>
|
||
<td class="mainContent">
|
||
|
||
<p>
|
||
DOOMEdit is loosely based on Quake 3 radiant, but with some subtle differences.<br>
|
||
Below is a quick "getting started" guide, which can be particularly useful for programmers
|
||
who want to created test maps. Look to <a href="http://www.qeradiant.com/wikifaq/index.php?DOOM3%20Level%20Editing">qeradiant.com</a>
|
||
for more advanced information on Radiant.
|
||
|
||
</p><div class="subsection">Starting her up</div>
|
||
|
||
The easiest way to start the editor is by typing <samp>editor</samp> in the console.
|
||
If you open the editor a lot, you'll probably want to create a direct short cut to it.
|
||
|
||
<p>
|
||
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).
|
||
|
||
</p><p>
|
||
2: Rename this shortcut to "DOOMEdit"
|
||
|
||
</p><p>
|
||
3: Right-click the new shortcut and select "Properties".
|
||
Specify the following for "Target":<br>
|
||
<samp>"C:\Doom3\Doom3.exe" +set r_fullscreen 0 +editor +set com_allowConsole 1</samp><br>
|
||
(This of course assumes you have Doom 3 installed in C:\Doom3\)
|
||
|
||
</p><p>
|
||
The editor does not work with antialiasing turned on, so you may need to add:<br>
|
||
<samp>+set r_multiSamples 0</samp>
|
||
|
||
</p><p>
|
||
The first time you open DOOMEdit, you will want to click <kbd>File->Project Settings</kbd> 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 <kbd>OK</kbd>, you will need to copy the "doom.qe4" into the "base" folder.
|
||
|
||
</p><div class="subsection">Moving Brushes</div>
|
||
|
||
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.
|
||
|
||
<p>
|
||
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
|
||
<kbd>Escape</kbd>.
|
||
|
||
</p><p>
|
||
You can reselect a previously created brush by clicking it while holding <kbd>Shift</kbd>. If there
|
||
are multiple brushes stacked on top of each other, you can cycle through them by clicking
|
||
while holding <kbd>Alt+Shift</kbd>.
|
||
|
||
</p><p>
|
||
You can duplicate the selected brush by hitting <kbd>Space Bar</kbd>, and you can delete it by hitting <kbd>Backspace</kbd>.
|
||
|
||
</p><div class="subsection">Making a simple room</div>
|
||
|
||
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.
|
||
|
||
<p>
|
||
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.
|
||
|
||
</p><p>
|
||
</p><ul>
|
||
<li>Drag out a brush you want to be the external size of your room (you can adjust the height by using the "Z" window).
|
||
</li><li>Hit <kbd>escape</kbd> 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).
|
||
<p>
|
||
You should now have one box inside another box, with the smaller box selected.
|
||
</p><p>
|
||
</p></li><li>Click <kbd>Selection->CSG->Subtract</kbd>.
|
||
<p>
|
||
You should now have 6 brushes, with all of them selected.
|
||
</p><p>
|
||
</p></li><li>Click the "Media" tab in the "Inspectors" window.<br>
|
||
</li><li>Expand out Textures->textures->base_wall
|
||
</li><li>Click on some textures and notice the textures change in the 3D camera window.<br>
|
||
</li><li>Find a texture that you like and hit <kbd>Escape</kbd> to unselect the brush (leaving the texture applied to it).
|
||
</li></ul>
|
||
|
||
<p>
|
||
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 <kbd>info->info_player_start</kbd>. 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.
|
||
|
||
</p><p>
|
||
Save the map in <samp>C:\Doom3\base\maps\mymap1.map</samp>.
|
||
|
||
</p><p>
|
||
Now it's time to compile the map! Click <kbd>Bsp->bsp</kbd>.
|
||
|
||
</p><p>
|
||
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).
|
||
|
||
</p><p>
|
||
The final step is to test the map. Hit <kbd>F2</kbd> to switch back to the game. Drop the console and type <samp>map mymap1</samp>. Your map
|
||
will be pitch black because we didn't add any lights, but you can use your flashlight to look around.
|
||
|
||
</p><p>
|
||
|
||
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.
|
||
|
||
</p><div class="subsection">Leaks!</div>
|
||
|
||
<img src="images/leek.gif" align="right">
|
||
|
||
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.
|
||
|
||
<p>
|
||
There are three common situations that cause leaks:
|
||
|
||
</p><ul>
|
||
<li>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).
|
||
</li><li>There is a gap between two brushes. This is simple enough to imagine.
|
||
</li><li>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).
|
||
</li></ul>
|
||
|
||
<p>
|
||
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.
|
||
|
||
<br>
|
||
</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2" bgcolor="#CCCCCC"><img src="images/span2.gif" style="width: 397px; height: 8px; float: left;"></td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<table border="0" cellpadding="0" cellspacing="0" width="770">
|
||
<tbody><tr>
|
||
<td align="left" class="legalese">Copyright <20> 2004 <a href="http://www.idsoftware.com/">id software</a></td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
|
||
</body></html>
|