A - Z Beginner Full Guide Start Here!
THIS GUIDE CONTAINS SPOILERS FOR THE "THIEF'S DEN" DEMO MISSION RELEASED JAN 18TH, 2008.
Mappers might also be interested in Sotha's excellent video tutorial showcasing the creation of a small mission from start to finish: Let's Map With Sotha
Springheel also has a video tutorial showcasing how to speed up your mission-building using existing prefabs and modules: Springheel's Speed Build Challenge
- 1 Introduction
- 2 Installation
- 3 The Dark Mod Editor
- 4 Folder Structure
- 5 Your First Mission
- 6 Story, Briefing
- 7 Preparing to Build
- 8 Making Your First Room
- 9 Selecting and DEselecting
- 10 Camera View
- 11 Materials, Textures, Painting the Block
- 12 Hollowing out a Room from the Block
- 13 Selecting and Texturing Individual Surfaces
- 14 Adding the Player's Start Point
- 15 Creating a Light
- 16 Resizing a Light
- 17 Changing a Light's Brightness
- 18 Sound
- 19 Pathfinding
- 20 Dmap: Compiling the Mission
Since writing this I've created a Startpack Mappers' Guide which is a ready made FM template with a set of ready made components to make it even easier to make a Dark Mod FM because it already includes things like objectives, briefing, readables, etc. etc and you just modify them and concentrate on building. However, I recommend you first follow this guide so you have some understanding of the basics and then the startpack will make more sense.
This is an easy guide for complete beginners to Dark Mod. It will lead you from start to finish, 'push that button, click that menu' and at the end you will have a fully working (but tiny) Dark Mod mission with all the main essential features including objectives all zipped up. You will be able to include variations of your own as you progress if you wish. Links to more detailed info is included but ignore those first time if you wish. Creating this mission is a learning process: although others will be able to play it, it will be too simple for that purpose - though it might be fun to see how varied the results might be from different players following the same instructions! When finished you can modify it and customise it to learn more or just shelve it for reference while you start your real mission!
This tutorial does not describe how to make your mission architecturally beautiful - just the opposite; the build may be as crude, quick, and ugly as you like. Nor does it advise how to design for good gameplay, etc. For that you should go to Mission Design Tips after you have mastered the basics. This is a method tutorial, not a design tutorial. Nor can it answer every question. It will merely present the most basic information for making a complete mission.
Feel free to experiment, add to, or even skip parts you already know or seem obvious, especially if you have a background producing Doom or Quake maps.
This guide was inspired by Komag's famous tutorial which helped a great many Dromeders (including myself) to get started producing Thief 2 FMs. If you are or were a Dromeder then you might first like to browse quickly through Dromed - Dark Mod Differences before proceeding - though it is not essential for this tutorial as I am trying to make few assumptions of prior knowledge. It will refer to default keys/mouse settings in Dard Radiant (editor - see later) so if you have changed any hot keys in Dark Radiant's help menu then keep that in mind. Also note that any screenshots might be in a different colour to your settings of course.
This tutorial assumes that you have Dark Mod already installed. If not, please refer to The Dark Mod website for information.
Alternatively you can use the limited Dark Mod resources provided by the pre-release demo mission Thief's Den
The Dark Mod Editor
To edit Dark Mod missions you will need a game editor. This tutorial is based on the Dark Radiant editor (hereinafter may be called DR) but you can possibly follow most of it in other editors like DoomEd. Variations might be shown where possible but it will mainly assume Dark Radiant. If you haven't got Dark Radiant yet, consult the Dark Radiant sections, install it and set it up how you like it. If you want to use DoomEd then you need to look elsewhere first. DoomEd of course is supplied with Doom.
You might wish to open the DR Controls page in a new window in your web browser for quick reference while following this tutorial. I'll try to make it so you don't need to!
Make sure you can run Dark Mod and your editor before proceeding. In particular remember you can undo your last step(s) (edit menu or+ )
[Added by Destined] This section was added later and overlaps with the contents of the section "Dmap: Compiling the Mission"
- All main resources and executables are stored in the TDM root folder (this is where you have installed The Dark Mod, e.g. C:/Darkmod). The recources are stored in pk4-files. These are simply renamed zip-files and can be opened with any common unpacking program like Winzip, Winrar or 7zip.
- The "maps" folder is where Dark Radiant saves maps by default.
- All fan missions are stored in the "fms" folder as pk4-files. Upon installing a mission in-game, a sub-folder is created and the pk4-file as well as the readme.txt, the description file, and any savegames belonging to this mission are saved there.
- If you open a mission pk4-file (e.g. the Training Mission or Tears of St. Lucia), you can see the folder structure used for fan missions. It contains folders like "maps", "textures", or "materials", that you need for custom assets in your mission.
- Create a folder for your new map in "fms" and name it accordingly (e.g. Tut), then create a sub-folder "maps" and open Dark Radiant.
- With File->Select Game... you can open a window to configure basic settings (this might open automatically when you start Dark Radiant for the first time).
- For "Select a Game" choose "The Dark Mod 2.0 (Standalone).
- For "Engine Path" browse to the root folder of your installation (the path to the folder with your TheDarkMod.exe). (e.g. C:/Darkmod)
- "Mod(fs_game)" is the path to your current FM (e.g. fms/Tut). This path is relative to the given "Engine Path". You can leave this blank if you are not working on a FM.
- Now the editor will use resources you point to in this folder. Otherwise a pk4-package in the root folder would be needed.
- In order to have these new settings take effect, restart Dark Radiant.
- Save the blank file under fms/yourmapfolder/maps (e.g. fms/Tut/maps). It is recommended to choose a short name for your mission as you will type it a lot in the game console.
- An overview of all files possible to be included in a packaged mission, with a collection of links to other resources and appropriate wiki pages, can be found in the Mission Filestructure entry.
Your First Mission
Let's get started.
- Open Dark Radiant (hereinafter DR) and also open Dark Mod for quick testing.
- If you have a mission already open in DR then select File menu > New Map to clear it.
- Save it now as any suitable name. You might prefer to save later but I always do it immediately. All missions must go (with exceptions I will describe later in Managing your Mission Files) in the darkmod\maps folder or a folder within that. I urge you to create a new folder for each project within that maps folder. In this case:
- Open File Menu > Save As
- Make sure you are in the 'maps' folder.
- Select 'Create Folder' and type in say 'tutorial'. You might prefer 'Tut' or even 'T' because you have to keep typing it over and over in the Dark Mod console when testing!
- Select that folder
- Enter the name of your mission at the top.
- The game will be saved as a 'map' file with a .map suffix and is commonly called a 'map' in Doom circles. But I will use the term 'mission' or 'FM' (Fan Mission) or maybe 'game' for the map file to try to avoid confusion with actual 'city' or 'treasure' maps within the mission.
First, let's consider our rough storyline so we have some idea what to build...
Formal mission objectives will be described much later in this tutorial. But before you begin your mission you will obviously need to have at least some idea of storyline and plot else you will have no idea what to build. You might have a detailed story or just some simple ideas which you can develop later.
Ultimately, you will need to brief the player with information about the story, characters, and the main purpose of the mission. It probably makes sense to write that fully when you are nearly finished the mission because new ideas or even technical difficulties might make you change your story. However, in this tutorial I'll describe it early so as you build the mission the layout and objects make sense.
Your briefing text should eventually be entered as described at Briefing but temporarily you might just write it in a plain text document for reference.
This mini tutorial mission is called 'Thief's Den' so here is an example briefing (not in correct format for the gui or .xd file):
"I had a nice haul the other night including a grand scepter from Lord Frothley. But a low-life named Creep who had given me the info, then stole it from ME! Never trust a thief I say. But I know where he lives...
I also still have his message in his own hand, giving the low-down. If I can dispose of Creep and drop the message nearby then he should take the heat for the heist diverting all suspicion from me.
Creep is a nasty piece of work who is handy with a blade. He can be dangerous and may be expecting me - may even have recruited a thug or two as back up - but he has badly underestimated my stealth skills..."
Preparing to Build
When you open Dark Radiant it will default to a grid size (in the XYZ orthoview) of 8 units by 8 (changeable from version 0.9.5 onwards.) These units are 1.1 inches. Check your preference (default key P) in DR as it will be easier during this tutorial if you have the following checked (ticked) in Preferences > Orthoview...
- Show Grid
- Show Size Info
- Show Coordinates
Important: It is recommend you generally build with the grid set reasonably to a large size such as the default 8 or 16 for all walls, floors, etc. This makes alignment easier. You can reduce this in the grid menu for fine placement but don't leave it like that generally or you will have complexity problems. Snap to grid (, + ) will re-align a selection to the current grid size.
We'll mostly be working in the XYZ grid orthoview but if you have room for the camera view at the side so much the better. The camera view does a rough render in 3D (F3 toggles a better rendering with lighting etc but keep that off if it slows things down which it is likely to and just use it now and again.)
- Note the origin icon of the 'world' at 0,0,0 in the grid view
- Zoom in and out with the mouse wheel
- Right mouse drag the grid view to scroll around (zoom out further to scroll around faster)
- Use Change views tool (, + ) to toggle between top (XY), front (XZ), and side (YZ) views (you can open aditional windows using menu View > New XY view).
The blank windows in the grid and camera views can be regarded as empty void - the space in which we shall build. We have to build in bubbles sealed off from that void like an airtight spaceship or a submarine. Any gaps will cause leaks and crash your game so it's obviously the first major rule to learn: always build inner spaces sealed off from the outer void
Apart from special materials like water and weather, all the raw material you will use is 'solid' to form different shapes. So we can make panels and place them together to form lots of floating airtight boxes and these can be linked together. The entire game then takes place inside those boxes. One box can hold a tiny cupboard or an entire cathedral and a lot of boxes can hold a city. Inside those boxes you cannot see the void.
A shortcut to putting panels together is to make one solid block and hollow it out to form a box and this is what we are going to do now to form our first room.
Making Your First Room
First we make a rough solid block...
- Select the top view (XY) in the grid view (toggle with ).
- Left mouse drag out a rectangle any few grid units across in the middle somewhere.
- This rectangle is called a 'brush' and used to define raw shapes for walls, floors etc.
- Left drag within that brush to drag the brush around
- Select the Resize tool (, ).
- Now left drag outside that brush to resize it.
Now we adjust its top view area...
- Left drag outside that brush to resize it to 256 across left to right (X direction) by 192 up and down (Y direction in top view.) You should see those dimensions at the sides of the rectangle if you have 'Show Size Info' set in Edit > Preferences > Orthoview. The position of the top left corner is in brackets at top left.
- Left drag within the brush to move it so its sides fit on the bigger grid. If all sides don't fit then check your dimensions and that you are still in grid size 8 (see grid menu.)
- I prefer to build up in the top right corner from the world 0,0,0 so none of the values are negatives but you decide for yourself. Move it where you want but ideally so the sides are on the big grid.
Now we adjust its height to get our finished block (brush)...
- Use ( + ) to switch to side (YZ) or front (XZ) view and left drag outside the brush to change its height to 128
- Left drag inside the brush to move it up and down so its sides are on a big grid same as you did in the top view.
- You should now have brush 256 x 192 x 128 (see Unit Tips)
Selecting and DEselecting
We only have one item in our view but eventually many. Operations only work on what is currently selected. When you have just created something as we just have it is automatically the current selection and should be highlighted in your views (see DR Preferences for colour.)
- To DEselect it, point your mouse at it in either the grid or camera view and use (or just press the key.) + +
- To select it again, point your mouse at it and use again. + +
Selecting is something you'll do a lot of so get familiar with that . It's an exclusive select to get just one item. There are other selects I'll describe later. The key always deselects and it is vitally important to get into the habit of DEselecting before you select or create something new or in some cases you will have multiple selections without knowing it and can delete or change something you didn't want to. This is why the + + is the safest select as it is exclusive and will automatically DEselect anything else that was left selected. But it won't protect an item when creating. Yes, it is possible to have say a brush selected, forget it is selected, then create say, a new light. Oh! what happened to the brush? It's gone - replaced by the light. Develop a nervous habit of keep hitting to deselect when you go to create!+ +
From now on I'll use LMB, MMB, and RMB to refer to the mouse buttons.
You should be able to see this block in the camera view. If the camera view is just black remember Dark Radiant Controls, Keys & Mouse and you will see a fantastic amount of control you have in DR's camera view - especially with the mouse. It will take time to get used to them all so for now perhaps just learn enough to move around to see what you've done so far.toggles true light rendering and we don't yet have a light so hit to get a constant bright test light throughout. I won't go into details of all the camera controls suffice to say use the arrow keys and and to move vertically. But scroll down to 'camera' in
If you can see your block(brush) in the camera view then it is likely not to have any particular texture unless you were doing something before this tutorial. Close up you may see it is covered in a checkered blue 'shader not found' message. Don't worry if it's covered in something else like stone or wood though. Since it will eventually be hollowed out to form a room, let's paint it now with some material more suitable to the Dark Mod universe...
Materials, Textures, Painting the Block
This is the tiny home of a cheap thief so we'll use some old stonework.
I've mentioned 'textures', 'shaders', and 'materials'; what do these terms mean? A 'material' or 'shader' is the properties of a surface, including (but not necessarily) texture, sound, and others. To 'paint' our block we...
- Select the Media Browser. This is one of the tabs on a panel. Pressing N or T hides/shows the whole panel but I guess most people leave the panel showing all the time and just select the tab they want.
- Allow a few seconds for DR to read in the media first time and then you should see 'textures' listed
- Click 'textures' and it opens up to show all available textures. Many of the ones you see are Doom textures. Scroll down and select 'darkmod' which reveals the ones most suitable for our use. Scroll down to stone, open it, then cobblestones and select blocks_mixed_multicolour. Right click it and select 'Apply to selection'. This covers all surfaces of the block because we have still got selected the whole block not just one surface. You should see this in the camera view. Use this throughout the house (and eventually on its outside surface for consistency.)
- Select the Texture Browser. This is one of the tabs on the same panel as Media Browser. The Texture Browser only shows recently used textures. You should see only the one texture you selected so it's handy for future use. Odds are you will want to re-use the same textures. It will also show other textures if you clicked on them in the media browser plus any others if you were using DR before this tutorial. You can also copy and paste textures onto single or multiple surfaces (see later.)
- Hover the mouse over the four little buttons at the top of the Texture Browser and read the text so you have some idea of what features are there for the future. For now, click on the one that says 'Flush and Reload Shaders' and it should clear all of them except the one we put on our brush. As we add others they will appear in the texture browser so you can get to them more quickly.
- Now, press S for Surface Inspector (or View menu)
- If you have only one face selected (more about this later) you can set Horiz and Vert scale. Value like 0.3 makes it harder for the player to see any pattern repetition (in this situation and in my opinion - use your own judgement with other textures and wall sizes.) In the mean time you can use arrow buttons to adjust the scale for the whole selected brush. Whatever scale you use, generally you should be consistent with it for the same texture wherever used in a mission. If you use copy and paste then it will transfer the scale as well which is far easier.
- There will be more on texture adjustment later in this tutorial.
Hollowing out a Room from the Block
Building to a large grid size helps performance. The outside of our block will never be seen in the game. Once we hollow it out then the player will only see the inside so that is the surface that is rendered and that we need to align to the large grid. There are two tools to hollow out a block, both activated by a button on the left button bar: one called 'hollow' and the other 'room'. Don't use 'hollow' as it reduces the internal sides so they don't fit the big grid AND it overlaps the corners which can cause rendering errors like so....
Instead use the 'room' button which does the job right (note the increased size so the internal dimensions will be the same as our original block and align to the big grid...
All brushes in Doom must be convex. They cannot have any inward angles (like an L shape which would have to be two brushes together) and cannot actually be hollow. The above tools really create new side panel brushes to replace the original brush. In the case of our six-sided block that is six new brushes positioned as walls, floor, and ceiling. The walls they create are one small grid line wide so their width will vary depending on your grid size setting.
Examine the block in the camera view and zoom right inside so you can see it internally which is where it will be seen in game. Note the texture aligns nicely because we stuck to a big grid size. The stone is appropriate for all four walls (which is why I textured the whole block in one go rather than one surface at a time) but now we need different textures for floor and ceiling...
Selecting and Texturing Individual Surfaces
You cannot select a surface in the grid view so move inside the room in the camera view.
To texture the floor...
- Press Esc to make sure everything is DEselected
- Point at the floor and use . Repeat a few times and you will see it selects/DEselects the surface. Keep it selected. +
- Select the Media Browser again (on the tabbed panel)
- In the darkmod section select say stone/cobblestones or maybe you would like some wood/boards/worn_01 ? You choose but something like carpet might need special alignment so stick with stones or boards maybe for now? Remember - RIGHT click the texture name and select 'Apply to Selection'
- Alternatively you can click on several possibles then select them with one LMB in the Texture Browser on the other tab. In the Texture Browser you can enlarge the textures if preferred to see them better.
- Esc to DEselect so you can see it better in camera view.
To texture the ceiling...
- Press Esc to make sure everything is DEselected
- Point at the ceiling and use again to select its surface. +
- Select the Media Browser again (on the tabbed panel)
- In the darkmod section select say plaster/plaster01 and apply it.
If you change your mind about the walls you can change them to something else...
- Press Esc to make sure everything is DEselected
- Point at one wall and use again to select its surface. +
- Point at another wall use again so now both surfaces are selected +
- 'Accidentally' select the ceiling. No problem. Just use on it again to DEselect it but the walls are still selected. In this way you can select which surfaces you want to select. +
- Select the Media Browser again and just apply another type of stone, perhaps brick, to the walls if you want or just leave it as it is.
Now press+ to resave the mission or use the File menu. Get into the habit of doing this often unless you have autosave set. Now and again you can also save with a new name so you can go back to an earlier one if you totally mess up. Note: There is also a backup file made automatically by DR.
Adding the Player's Start Point
One more thing is essential to play this in Dark Mod and that is the Player's starting position.
- Press Esc to DEselect everything.
- In the TOP grid view, point the mouse in the middle of the room and RMB to get a pop up menu. This menu is important so glance at some of the other items on it while you're here. 'Entities' are special function items and the player start is amongst them but there is a shortcut on the menu so instead...
- Select "Create Player Start here" on the menu. This will create the playerstart entity (red box) and put it where you clicked. Drag the entity around to the point where you want the player to start.
- You should see an arrow on the red box indicating the way the player will face at the start. If you cannot see the arrow then menu View > Show > Show Angles will reveal it. You can rotate the player by selecting Rotate tool (, ) and dragging with the mouse.
- Use , ). Make sure you do not go below or the floor or the player might be stuck with his feet in concrete! Tip: In Thief games it was common to start just dropping over a wall with this player start a few feet above the ground. You might note that entities do not directly resize like brushes so LMB dragging on the outside of the box does nothing (unless you have selected the Translate tool). + to switch to the side view (YZ) and use LMB to drag the inside of the player start box so its base is on the floor of the room (you can also use Translate tool,
- RMB in the grid view again and you will see there is now a Move player start here option so you can quickly move its position while testing different areas of your mission. But always remember to check both the side and top view when moving things around, to make sure the vertical position is also valid. (Also note that Move player start here does not select the player start - you will need to select it if you need to adjust its position by dragging.)
- With the player start still selected you can select the Entity Inspector (on the panel, or to hide/show it) and see the properties of your first entity.
The game could now be played but it will be totally dark so we need to create at least one light.....
Creating a Light
- Press Esc to DEselect everything.
- In the TOP grid view, point the mouse in the middle of the room and RMB to get the pop up menu.
- Select "Create Light" on the menu.
- A large red box appears with diagonals representing the light's centre and its rough 'radius'. The default light is more like six pyramids pointing out to their peaks in the centre of each side of the box. This gives a rough impression of a sphere of light and helps performance.
- + to get a side view and LMB drag right in the centre of the light to move it up/down to centre it in the room if it is not already. Just dragging inside the radius box won't move it - you have to point at the centre.
Resizing a Light
Resizing a light is awkward because dragging any side moves the centre (this might be changed in a later Dark Radiant.) Two ways of dealing with this. Just roughly drag it about and keep moving the light back to where you want it. But if you have very precisely positioned a light then you don't want to have to keep doing that so this is what I do...
- Select the Entity Inspector on the panel
- You should see it has a light radius property with three values for XYZ for the three dimensions. They are north and south for Y, east and west for X, and up and down for Z. (those are the compass directions in game by the way.)
- Click on the light radius property to highlight it.
- Note that its values appear in a choice of inputs at the bottom - You can type new values in a line with a space in between then click the check(tick) button or enter them as separate values or even use the little scrolly buttons at the side and then click the Apply button.
- The room interior is 192 x 256 x 128 (in XYZ order) so give the light radius the values 200 260 133 so it protrudes outside the walls (we're setting radius - so the light diameter will be twice that size). We may well change this again later if we want the light to spill out through a doorway or something.
- You can now toggle light rendering in the preview using (or an icon in the preview toolbar) to see how the light affects the walls.
The light radius is not just a cut-off point. It can be regarded as a 'fade to zero point'. What this means is that the light is at maximum brightness at its centre and fades to zero at the limit of the radius. So in a big open area, if you extend the radius you will 'stretch the brightness' further. Imagine the scale from max to min compacted in a small radius or expanded in a large one. More on this later when we place wall torches.
Changing a Light's Brightness
The light may be a little bright. To change it...
- Press L (or View menu)* to call up the Light Inspector
- Click on the white rectangle button just below where it says 'Colour'
- The brightness value is called 'Lum:' (luminosity) and should default to 100. Reduce it to 90, by overtyping it or using the slider to the far right. It might not matter. I'm just showing you where the control is for now.
- Fool around with the colours if you want - there are extensive features I won't cover here.
Hey! We should have your first working mission! Do a+ to save it and then follow the next sections in Dark Mod itself not in Dark Radiant.....
There is no need to do anything special about hearing sounds such as footsteps, collision sounds, etc. at this stage as it will work automatically. Adding custom sounds will be dealt with later.
Pathfinding data to tell the AI characters where they can move is created by dmap by default when compiling in the next section...
Dmap: Compiling the Mission
- Your mission file cannot be played itself; it is simply the directions to create a game file. To do this...
- Start up The Dark Mod. From any Dark Mod menu go to the console. By default, the console is + + (US Keyboards) or + + (UK Keyboards). This key is the top left below Esc and to the left of "1" on all keyboards I believe. But most people set up a shortcut to just use the ~ (` in UK) on its own so:
For single key click to get the console: In your desktop shortcut to TheDarkMod.exe add this argument to its properties (right click shortcut): +set com_allowConsole 1 so the target line would be something like: C:\Darkmod\TheDarkMod.exe +set com_allowConsole 1 (plus any other arguments you might want)
- In the console type and Enter dmap Tut/T001 where you should substitute your subfolder name for Tut and your mission filename for T001. So, if you created your mission file directly in the maps folder then you do not need a folder name and can put dmap T001. If you made a subfolder in maps called MyMaps and named your mission MissionImpossible999.map then enter dmap MyMaps/MissionImpossible999. I recommend you do not use upper case in filenames in Doom as I think it can cause problems on other platforms.
- Wait while dmap compiles the mission. This should only be a few seconds with this tiny mission but will be much longer for big missions.
- If you get a 'leaked' error or some other serious red warning then recheck your work; look for gaps in the wall or a wrong texture like nodraw or have you got an entity outside in the void? See HERE for more about fixing leaks but at this stage of this tutorial it might be easier just to redo. What I have laboured over is basically make a block, texture it, hollow it, stick in a player start and a light. As you get more proficient you can do it in less than a minute.
- Assuming there were no dmap red "ERROR"s then you should be returned to the Dark Mod menus and are now able to play the mission.
- Return to the console.
- Type and Enter map Tut/T001. Tip: Press the up arrow key toggles back through the history of what you have typed before so your dmap should re-appear. Just press the Home key and delete the 'd'. An alternative is to use 'testmap' instead of dmap which does both dmap and map but I prefer to see dmap's results.
- You should now be able to walk around in the room. If you have a player shadow set then you might notice that walking through that light looks odd so keep that in mind for light placement. But most lights you will place close to a visible source like a gaslight or wall torch.
That's the first part done!