Official Dromed Tutorial Part 9
From FleshWorks
Other Helpful Commands and Tips
If you've followed this tutorial from beginning to end, you should now have the ability to build basic Thief 2 maps. By experimenting with DromEd, you can discover the program's full capabilities. But here are a few helpful commands and tips to get you started.
- To learn more, remember that you can load up Thief levels with DromEd and poke around to see how some complicated things were created. You can probably learn a lot, but remember a few things:
- You might not have the right tools available to do the all of the things that were done in the game. Try not to beat your head against the wall.
- It's not necessarily true that everything in all Thief levels was done perfectly and optimally. Some examples may be better than others.
- When you design Thief missions, it often helps to disable the game's gravity so you can "fly" around the game world and examine your work more closely. Hit "Shift+Q" to disable gravity, and "P" to turn gravity back on.
D2 NOTE: Shift+Q = fly up. Shift+E = fly down. In game mode, press shift+; to bring up the command line and type "unfly" to turn fly mode off.
- Similarly, you can toggle the ability of AIs to see you with the command "aiawareofplayer," (again, no quotation marks or comma) and toggle player collision detection with the command "physics." With regard to toggling "physics" on and off, remember that even though you can now fly through solid space, doing so can lead to weird errors (although it is unlikely to fatally corrupt your work, format your hard drive, or anything permanent like that).
- Use the "show_stats" command to enable in-game statistics, like frame rate and polygon count. When creating Thief levels, you want to keep the polygon count low - shoot for 250 or below - to maximize game speed.
D1 and D2 NOTE: Try to keep the probability of any action away from areas with high polygon counts.
D1 NOTE: If you exceed approx 1000 polygons in view, Thief will produce weird graphical effects. If you massively exceed 1000 polygons in view Thief will crash.
D2 NOTE: This polygon count still applies. However, as the average speed of cpus/gfx boards has increase and as Looking Glass have improved the engine, you can push this limit a bit more. Thief 2 can handle polygon counts in excess of 1000 but for the average user the game will become unplayable.
- To start DromEd with different default settings, you can place the following lines in your user.cfg directory: :
- "edit_screen_size 800,600" - This will start DromEd in 800x600 mode.
- "editorcam_from_game - When you place the Starting Point, you will start the mission at this point every time you enter into the game. With the "editorcam_from_game" command, you can enter into the game at the same point you were at in DromEd.
D1 and D2 NOTE: Actually the command that does what is described is "persistant_player_pos".
- "no_endgame" - This allows you to continue playing if you're killed in the game world or complete all your objectives.
- When you first start DromEd, the program defaults to a grid size of 16. 16 is fine for creating large brushes like rooms, but in order to make smaller brushes, you'll need a smaller grid. Find the grid field in the lower left-hand corner of the DromEd screen - try using a size 11 grid for smaller brushes, like creating small columns and solid details.
- On the menu bar, choose "Tools" and then "Optimize" to optimize the level. This essentially "tightens" things up, by reducing your polygon count and making things run more smoothly. Keep in mind, however, that "Optimizing" takes longer than "Portalizing."
D1 and D2 NOTE: Optimizing can massively reduce polygon counts. Always use it before assessing high polygon areas.
- While you, as Garrett, can "mantle" up ledges and walls, AIs have much more restricted movement; they cannot climb up terrain obstacles that are much higher than a foot or two. This is most important to remember when building stairs. To make sure AIs can climb stairs, the stairs should be 1ft. deep by 3/4 foot high.
- Get into the habit of saving your work regularly. On the menu bar, choose "Save Mission" to save your level in progress. DromEd may crash on you, and it may not always be your fault. Saving helps to avoid frustration.
D1 and D2 NOTE: Use more than one save file for your mission and rotate through them. It's not unheard of (though rare) for DromEd to trash a saved mission file.
- If, during the course of level creation, something seems wrong, try:
- Portalizing
- Building the Pathfinding Database
- Lighting
- DromEd does some automatic color-coding to help you tell which brushes are closest to the camera. If you don't like it (because you can't see the lines very well), try pressing "Ctrl+7" to disable it.
- Normally your camera and the 2-D grids are synchronized such that the camera is always in the center of the grid. The menus you get when you right click on one of the 2-D view screens include the option "asynch all," which desynchronizes this. To resynch, select "synch all" from the same menu.
- The command "cam_to_brush" will teleport your camera to the currently selected brush. This works well in conjunction with "find_obj x" where "x" is the object's name or number.
- The full list of texture families is: dungeon, city, church, cave, catacomb, concastle, bafford, sewer, rescore, temple, mine, ruined, metals, core, ancient, maw, ramirez, lostcty, newcity, keeper, mech, newkeep, basement
D2 NOTE: The list for D2 is: ancient, artdeco, artdmisc, artdout, buttons, catacomb, cave, ceilpain, church, city, civicb2, civicbui, core_1, core_2, core_3, keeper, lostcty, maw, mbfloor, mech, mine, newcity, newkeep, newmech, newmetal, numbers, outtakes, ramirez, rescor_1, rescor_2, ruined, sky, skyhw, stainglass, tower2, vicm01, vicm012, vicm04, vicm07, vicm09, vicwood, vmaw, vmaw2, vmawtb, vmawwin, vrescor1, vwater, water, waterhw, wdfloor.
- Lighting - There are three lighting modes: Quick, Raycast, and Objcast. You can choose between them by selecting "Tools" on the menu bar. Quick lighting is the default. Raycast lighting is more realistic but takes longer. With Objcast lighting, some stationary objects will cast shadows. Note that DromEd also supports ambient lighting. Initially, the ambient light is set to 0, so unlit areas are completely dark. To set it to a higher value (say, 20), use the command "ambient 20."
D2 NOTE: With coloured lighting in Thief 2, you need to specify red green and blue values for your ambient value. So use ambient 20 20 20. The consensus is that 20 is the best value for the ambient light, given the wide variety of gfx boards/configurations that may run your mission.
- Properties and Links - As you can see by looking at the "Properties" dialog box and "Links" dialog box, there are lots of links and properties in DromEd. These are one way in which a designer can get interesting and complicated things to happen in missions. However, some properties and links may seem to have redundant effects, or no effects at all. Furthermore, some of them are intended for use by the designer while others are intended to be managed automatically during the game (and thus could be very problematic if set by the designer). We can't cover these in any detail here, but as always you are encouraged to check out Thief missions for examples. Below are brief descriptions of some useful properties.
- Game::Damage Model::Hit Points - Determines how much damage an AI (and some objects) can take before dying.
- Engine Features::Locked - When placed on a door or chest and set to "true," this makes the object locked.
- Engine Features::Key Src - When placed on a key, this specifies which lock (or locks) the key opens.
- Engine Features::Key Dst - When placed on a locked object, this specifies which keys fit the lock.
- Dark Gamesys::Pick Cfg - This is how you specify that (and how) a locked door can be lockpicked open.
- AI::AI Ability Settings::Combat:Non-hostile - Controls whether the AI is hostile to the player.
- AI::AI Ability Setting::Flee: Conditions for Flee - Controls when the AI will flee and when he will fight.
- AI::AI Core::Alertness Cap - Can be used to make an AI frozen at a particular alertness level or range thereof.
- AI::Utility::Flee Point - When placed on a marker object, it specifies that location as a good one for AIs to flee to. The value ranks the location from 0 to 100.
- Difficulty::Destroy - Putting this on an object and selecting 0, 1, and/or 2 will cause the object to disappear for all selected difficulty levels. Note: This only happens when you enter the mission normally through the pre-mission screens. Optionally, you can run the command "process_difficulty", but only do this when you are in the game, not the editor!
- Timing terrain creation - During Portalization, operation brushes are processed in a specific sequential order. Press Tab to cycle between all of the brushes in your level, and look at the lower-left corner of the editor to a field called "Time." Time starts at 0 and goes to the last brush in your level. Note that "fill" operations (such as "fill water") replace all other terrain within their brush dimensions. Therefore, if you make a neat statue out of "fill solid" brushes stacked like building blocks, then place a "fill air" brush such that it covers the whole statue, the statue will disappear when you portalize. This is because the "fill air" operation is processed later in time than the many "fill solid" operations that make up the statue. To fix it, you could move the "fill air" brush to earlier in time, before any of the "fill solid" brushes take place. You can do so by clicking in the time value box and typing in the new number, or pressing the "<" and ">" buttons next to it. If you are having trouble making the shapes of terrain that you want, pay attention to what sequential order the operation brushes are processed in. Lastly, note that the conversion brushes (such as "water->solid") do not necessarily effect all terrain within their brush dimensions.
- Always using a grid of size 11 or larger will help to prevent a large variety of potential problems caused by irregular sizes, shapes, and rotations of terrain. The grid is "on" when the "Use" button (found below the grid number) is purple (not gray). If you ever get weird error messages and/or crashes from the renderer (which you may recognize because they mention things like "polyhedrons," "portals," "planes," etc.), try reducing the complexity of your mission's terrain by using operation brushes that are more regularly shaped. Go through and grid-snap all of your brushes by moving them slightly when the grid is on. Furthermore, remember that very high poly counts can lead to problems, so don't let your lines-of-sight get too long or too detailed. In addition to causing renderer problems, complex terrain can potentially get the player stuck and confuse the AI.
D1 and D2 NOTE: No matter how tempting, NEVER turn off grid snapping. This can introduce problems into your level that won't become apparent until DromEd starts crashing days later. Turning off grid snapping is the single biggest cause of DromEd crahses.
- Filtering - To the lower right of the "Create" button is a "Filter" button. Sometimes DromEd's 2D windows get crowded and you want to look at only objects, or only terrain, etc. When you press "Filter" you are presented with a number of buttons you can use to toggle on and off various types of brushes ("Terr", "Light", etc.). Remember to toggle them all back on before portalizing, lighting, etc.
- Area brushes - Area brushes are another way to do filtering, this time by proximity rather than type. Area brushes are cubic brushes that you can create by selecting them on the "Create" menu, then dragging in a 2D window. When an area brush is the current brush, you can use it to filter. Press "Me Only" to show only those brushes that are inside the area brush. Press "Not Me Only" to disable that filtering. You can also name area brushes, select them by name (with the "Search" button), and activate some area brushes and not others. Among other things, area brushes are useful for speeding up portalization when you are focusing your work on a small area, such as a single room. Again, make sure you shut off all filtering before trying to portalize, light, etc., the whole level.
- Multibrushes - Multibrushes are a good tool for cutting-and-pasting brush groups. So, for example, if you make a row of pillars on one side of a room and you want to have the same exact row of pillars on the opposite side of the room, you could multibrush them, press Insert to make a copy of the multibrush, then move the new multibrush to the other side of the room. To add brushes to a multibrush, hold down "Shift" while selecting a brush. Remove brushes from a multibrush in the same way. You will note that when you are in multibrush mode, the word "multibrush" appears where the textures normally appear, at the bottom of the DromEd screen. To get out of multibrush mode, select a brush that is not in the multibrush while "Shift" is not pressed. The "Multibrush" menu gives you other multibrush functionality, such as saving and loading multibrushes, which is especially useful for porting multibrushes between two different missions. Lastly, multibrushes were primarily designed with terrain brushes (i.e. operation brushes) in mind, but also work to a degree with other brush types.
D1 and D2 NOTE: Multibrushed brushes won't snap to grid. You must manually ensure that their position parameters are multiples of at least 0.25
- Room Brushing - Room brushes are your way, as the designer, to specify the "general shape and form" of your 3D terrain for DromEd. A hallway may have a carpet running down the middle, skylights above, columns along the sides, and some decorative trim along the top that sticks out a little. All of these things may change the 3D shape in small ways, but with regard to sound propagation, you want to specify the "general shape and form" as an elongated cubic shape with the same location and dimensions of the hallway. The easiest way to so is as follows. When you made the hallway, you probably started with a long "fill air" brush and then added other brushes for the details. Select that first "fill air" brush, then hold down "Shift" and press "Insert." DromEd will make a room brush that is just like the original brush, but slightly bigger. Another useful tool is the "show sel" button, which will draw lines to show you how the currently selected room brush is connected (for the purposes of sound propagation) to adjacent rooms. Be warned that good room brushing can take a lot of time and effort, but can make the sound in your levels much better. Here is the list of room brushing rules.
- All air and water space in your levels must be contained within at least one room brush. This is particularly important for the planes of the floor, from which all footstep sounds originate.
- Room brushes are allowed to contain solid space (this is only for convenience of placing room brushes; remember that no sounds can actually originate inside solid space).
- When two room brushes overlap, sound will propagate between them. Use the "show sel" button to confirm that two room brushes intersect.
- Room brushes that are rotated or that intersect with other room brushes in strange ways may not propagate sound correctly. Use the "show sel" button to see if an intersection problem has occurred. You will know there's a problem if the room brushes intersect in 3D space but do not have a line between them when you press "show_sel." If so, try changing the shapes, positions, and rotations of your room brushes. Use more room brushes if necessary.
- The center of a room brush must never be contained within another room brush.
- Don't forget to "Build Room Database" to process your room brushes.
- If you include "check_rooms" in your user.cfg, some useful diagnostics may happen when you build the room database. The first thing it will do is highlight in yellow all room brushes whose center is inside another room brush. You should fix all of these room brushes. If no such room brushes occur, the command will highlight in yellow all room brushes that intersect with other room brushes inside solid space. These are not technical problems, but you might want to check to make sure you really meant for those room brushes to intersect.
D1 and D2 NOTE: "check_rooms" will sometimes highlight in yellow room brushes which have no obvious problems. Usually, you can just ignore this, but be sure to double check the brushes first!
- Water brushes - To create water, try using the "fill water" and "flood" brushes. Two things you need to know: 1.) Water brushes are like air brushes, except that they fill the entire brush with water. This water will erase any solid you may have already created there. 2.) Flood brushes fill an existing air brush with water, but do not delete any solids that are already there. To get the water to look like water, you will need to make sure it is flow brushed (see below).
D1 and D2 NOTE: Flood is a bit buggy. If you have no choice but to use it, be prepared for a but of experimenting. Try and get away with fill_water or if you can.
- Flow brushes - Flow brushes are how you make water in a Thief level move, look, and behave like water. They are fairly complicated, so they will only be touched on here. A flow brush applies to the water space that the center of the flow brush is in and sometimes water space adjacent to that as well. The boundaries of the flow brush should contain the surface of the water. Each flow brush is belongs to a "group." To edit the properties for a group of flow brushes, click on the flow brush to select it, and then look down to the bottom center of the screen. Click the "Edit Group" button to bring up the properties box for that group. Different flow brush "groups" have different flowing properties, such as "x change/ sec" which specifies how fast the water flows along the X axis. In order to use water textures, the "texture name" field for a flow brush group should be one of the following: "bl" or "gr" ("bl" if you want blue water, "gr" if you want green water). The easiest way to get basic water flow is the shotgun method - lots of large flow brushes. Make sure you press "update in world" and/or reportalize.
D1 and D2 NOTE: If you get a jorge texture on your water there are 2 likely causes: You have exceeded the maximum texture palette size of 255. Solution: Remove some unused textures. There is a non-water brush inside your flow brush. Solution use multiple flow brushes that go round the the offending brush.
- Don't cross the beams. If you get hurt, remember that we warned you. We wish you luck, but remember: DromEd is unsupported. You asked for it.
