CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
Basic DromEd Tutorial
Welcome to DromEd, Looking Glass Studios Thief: The Dark Project level editor, and the tool you need to create your own Thief missions. This tutorial is designed to walk you through the basic functions of DromEd, by teaching you to create rooms, place objects, activate enemies, equip Garrett with some weapons, and specify objectives and difficulty levels. Its important that you follow this tutorial from beginning to end; by skipping sections, you may very well miss out on some critical information.
Also keep in mind that DromEd has been released to the public as is, meaning the program is unsupported by Looking Glass. We hope weve given you enough information to get startedbut youll have to take it from there. In other words, do not call Looking Glass or EIDOS asking for help with DromEd! We wish you success in designing Thief levels.
I. Whats On The Screen
When you load up DromEd, youll be presented with the main program interface, separated into four distinct sections:
A menu bar at the top of the screen, as seen in any Windows-based program.
Four separate view windows, which allow you to examine your levels from four different perspectives. These windows, starting in the upper left-hand corner and moving clockwise, are 3D View, Top, Right, and Front. You can use the bracket keys to cycle through the different windows, with the white outline indicating which is currently the active window. For the purposes of this tutorial, dont worry about the active window or its uses.
Several buttons, located in the bottom left-hand section of the screen, used for a variety of functions.
A command line, located in the bottom right-hand section of the screen (in the small box outlined in light blue), used to enter specific DromEd commands.
[Important Note: In order to properly use DromEd, your desktop must be set larger than DromEds default resolution of 640x480. If your desktop is set to 640x480, and you run DromEd, important parts of the interface screen - like the menu bar at the top - will be cut off.]
During the course of this tutorial, well explore each of these interface elements in-depth.
II. Brushes and Portalizing
If you have no experience building levels for 3D games, the first thing you need to do is familiarize yourself with the term brush. In DromEd, anything that gets created is called a brush. Rooms are referred to as room brushes, lights are called light brushes, etc. The most common brush is the operation brush, used to create terrain (hollowed-out rooms and solid objects). DromEd allows the user to create spaces using six different shapes of operation brush: cube, cylinder, pyramid, corner-apex pyramid, wedge, and dodecahedron. You can think of the default Thief level as being completely solid and stretching infinitely in all directions. In other words, before you add any brushes, the world is just an infinitely huge block of solid You carve away from that block to create rooms, stairs, structures, and other unique architectural features. So, to create a square room, you would use a cube-shaped operation brush, filled with air, to carve away a square in the center of the existing solid block. If all of this is a bit confusing, dont worry: everything will become clear once we start building some rooms.
As you can see by looking at the different view windows, theres already a beginning operation brush in place (a cube) and youre standing right in the middle of it, as indicated by the violet-colored icon. Now look down at the bottom of the screen, to the small, funky-looking texture affectionately referred to as Jorge. Thats the default texture for the selected brush, but well discuss textures later in the tutorial. For now, look at the buttons underneath Jorge, specifically, the one that reads Op<Fill Air >.
Click on the arrows to see the different types of brushes you can create. After youve seen all the choices, go back to Fill Air, because we want to create an air brush, which is essentially a hollowed-out room. Remember, the existing universe is already a giant, solid block, so we need to fill a brush with air to create a room; creating a brush and then filling it in with solid will have no effect, for obvious reasons.
Now that youve set the brush selection to Fill Air, its time to portalize the level so the change actually takes place in the game world. For the purposes of designing levels with DromEd, portalizing is the process by which your brushes, which are created on the 2D grid, are transformed into 3D space. So, go to the menu bar on the top of the screen, click Tools, then click Portalize. Be patient as DromEd processes the brushes. Small levels with just a few brushes usually portalize in just a couple of seconds, but when your levels get larger and more complex, portalization can take a couple of minutes or more. Look at the center of the white bar on the very bottom of the DromEd screen; when it reads done, the level has been portalized. Whenever you alter the terrain in the level, using one of the 2D views, you will need to portalize to see new changes in the 3D View window and in the game itself.
III. Viewing Brushes / Moving around in the View Windows
Okay, youve portalized the level. It may seem like nothing actually happened, but dont panic: thats just because the 3D View window defaults to a wireframe representation of the 3D world, and its tough to notice any changes. Move the mouse cursor to the 3D View window and press and hold the right mouse button. Doing so allows you to select from a list of options for the view you currently have the mouse cursor over. Well discuss these options in more depth a bit later. For now, highlight the choice that reads solid + selection, then release the right mouse button. This will change the 3D View representation from wireframe to solid, with a white outline indicating the currently selected brush (in this case, the only brush).
Now, you may still be wondering why the 3D View hasnt changed much; right now it should look like weve just gone from a wireframe display to a completely black display with a few white lines. Actually, youre standing in the exact center of the operation brush you just created, but the room is shrouded in darkness so its impossible to see anything. When you create Thief rooms using DromEd, everything is pitch black - you need to actually place light sources (either light brushes, or light-emitting objects, like torches or electric lamps). But, for the sake of simple level designing, we can take a shortcut and use the light_bright command, which completely illuminates the level and eliminates all darkness and shadow. [Important Note: While the term room can be used to refer to operation brushes you create, its important to know that DromEd does not yet consider them rooms. So, even if you create a detailed banquet hall, DromEd wont see the space as a room, but a large air brush. Dont worry about that for now, though - well get to this issue later on in the tutorial.]
To enter the command, either left click on the command line or press semicolon (note: youll need to hit Shift and the ; key). Type light_bright (as with all commands, do not use quotation marks) and hit the Enter key. Now that youve entered in the light_bright command, youll notice (hey, you may even be panicking) that the 3D View window still hasnt changed. Thats because there needs to be some movement in the 3D world before light_bright activates. In the 3D View window: the A and D keys are used to rotate left and right; the W and S keys are used to move forward and backward; the Z and C keys are used to slide left and right; and the Q and E keys are used to move up and down. Hit one of those keys, and the 3D View window will change - you should now be hovering in the center of a small, very ugly room. Use the R and V keys to look up and down, and the F key to recenter your view. Remember how you chose the solid + selection representation for the 3D View window, by pressing and holding the right mouse button? Move the mouse cursor over one of the 2D view windows (top, right, or front), and do the same thing. Choose teleport camera to instantly jump to that point in the 2D display. The selection defaults to teleport camera, so you should get into the habit of moving the mouse cursor to different spots in the 2D windows, and right clicking to instantly jump to those positions. [Important Note: Dont try this when the mouse cursor is positioned over the 3D View window. The 3D View menu defaults to solo view, and accidentally choosing this option will find DromEds grid sections replaced by a giant 3D view. If this happens, just right click on the 3D View window to revert DromEd back to normal mode, and bring back the four small windows.] Try teleporting outside the operation brush. In the 3DView window, youll be able to see the operation brush from a distance, just sort of sitting there in space. Its important to realize, though, that during the course of creating your level, you never want to allow the player or any AIs to enter any solid part of the terrain. The player and AIs can travel through water and air, but putting them in solid is a sure way to break your level.
Now its time to enter into the 3D world in game mode and see the room as Garrett would. Go back inside the room and hit Alt+G to enter into the game. You are now, for all intents and purposes, in Thief. You can hit the Escape key to access different options, like changing video cards or reconfiguring keyboard keys. [Note: Make sure youre actually inside the confines of your operation brush before you enter into game mode, or youll run into problems.] You may notice that some things appear to be missing - Garrett doesnt have a health meter, there are no items in your inventory, and there are no sound effects. Thats because DromEd doesnt yet recognize your brush as an actual room, and you havent yet placed a Garrett character model (referred to as a Starting Point) in the game world. But dont worry about those things just yet; well come back to them later.
When youre ready to go back to the editor hit Alt+E. Its now time to modify the room even further, to make it more recognizable.
IV: Using Textures
So, weve created a simple roombut it doesnt exactly look like a room. Thats because the whole thing is using Jorge, the default texture. In order to create Thief-style rooms, complete with carpeting, cobblestones, and wooden planks, we need to load in texture families. Go to the command line, type in add_family core_1 and hit Enter to load in the core set of Thief 2 textures. Now, lets add another texture family, but this time use a shortcut. Go to the command line again and type a - then hit the Tab key to cycle alphabetically through all recognizable commands. Use this method to select (or simply type in) the command add_family core_2 to load in another core set of textures.
To see the textures that youve loaded in, bring up the texture palette by pressing Alt+T. For now, well make the whole room one texture. Click on one of the brick textures so that its name is highlighted in violet. At the end of the texture palette, youll notice a few buttons; click the one that reads Put on Brush. Youll see that texture instantly applied to the entire room. Occasionally, during the course of level design, youll need to portalize the level before you see new textures applied in the 3D View window. When this is the case, DromEd will display a message to that effect on the bottom of your window. In fact, you should get used to checking the message bar on the bottom of the screen for important information. If something goes wrong during the course of your level design, an error message can often be found in that space.
At this point its quite possible that something has gone wrong, and clicking the Put on Brush button actually applied the selected texture to just one side of the room. If that happens, its because at some point you clicked on a face of the wall, thereby selecting that as the active face. Using the Put on Brush command doesnt necessarily put a texture on the entire brush - it puts it on the selected face. It just so happens that when you first start DromEd, none of the faces is selected; instead, the program starts with the brush in default mode. Basically, imagine the default texture as the original color of an entire room. By adding different textures to different faces of the room (walls and ceiling), youre not replacing the default texture, but painting over it. So, if you were to create an operation brush with a default brick texture, and then chose other textures for the walls, floor, and ceiling, the default texture would still be the brick you originally chose - it would just be hidden under the other textures.
Its easy to tell which face you have selected. If you still have the texture palette up, remove it by hitting Alt+T again. Now, in the 3D View window, click one of the faces of the operation brush. It will highlight in orange, indicating that it is now the selected face. You can also cycle through the different faces by repeatedly hitting the comma (,) key on the keyboard. If you cycle through completely, so that none of the faces is highlighted in orange and the brush is outlined in solid white, then you once again have the brushs default selected. To quickly see which face of the brush is selected, and which texture has been selected for that brush, look down to the bottom center of the screen, to the buttons that read Face and Texture. You can also use these buttons to directly apply textures to any face of the brush, including the default. To reset the default texture of the room, cycle through the available textures using the arrows to the left and right of the Texture button. When youve found one you like, hit the Reset button, found above the Face and Texture brushes. This will reset the default texture to the one you selected, essentially allowing you to start from scratch.
Now, hit Alt+T to bring the texture palette back up. Click a texture so that its name is highlighted in violet, and then click a face to see the selected texture applied to that face. Use this method to apply textures to the walls and floor. Then, hit the R key to look up at the operation brushs ceiling. Click the Sky button (also found at the end of the texture palette) so that its name is highlighted in violet, and then click the ceiling to place the star texture. Hit Alt+T again to remove the texture palette, and then press Alt+G to enter to game and take a look around. It should look as if youre standing is a tall-walled, open-air courtyard, with the starry night sky above. Its important to understand that, for level design purposes, the sky is just an illusion. Its actually just a ceiling with a modified texture, and not an actual, limitless sky. So, while it looks as if you could fly up to the heavens, youd really smash your head against a relatively low ceiling (in this case, the room is still set to the default height - 16 feet). When youre done admiring your craftsmanship, hit Alt+E to enter back into DromEd.
V. Resizing Brushes
Up until now, weve simply played around with the existing, default operation brush. Lets modify the brush to make it a bit bigger. Look at the lower left-hand corner of the screen and find the three buttons that read D, W, and H. These stand for depth, width, and height respectively, and are measured in an approximation of feet. Youll notice, then, that the default brush is a perfect cube, measuring 16x16x16 feet. Lets leave the height at 16 feet, but modify the depth and width. Here we have a few options. The easiest way to change the size of a brush is to press and hold the control key, position the mouse cursor over one of the 2D windows, press and hold the left mouse button, and move the mouse to resize the brush. Move the mouse cursor over the Top view window and practice resizing the room. Note how resizing the brush in this manner only affects the two visible dimensions - width and depth. To use this method to resize the third dimension (in this case, height), press and hold the right mouse button and move the mouse left and right. Experiment with this method in all of the 2D view windows.
There are other methods of resizing brushes as well, particularly if you want to get more precise in your measurements. Try left clicking on the arrows to the left and right of the measurements to resize the brush in very small increments. Its also important to know that the D, W, and H indicators (as well as X, Y, Z, H, P, B, and others) are buttons. Move the mouse cursor over the D indicator and click and hold the left mouse button; notice how the letter turns purple. With the left mouse button held down, move the mouse left and right to alter the brushs depth. You can use this method to alter any of the brushs dimensions. There is also another method for resizing a brush, especially for entering in precise measurements, and that is simply to type in the height of any given dimension. Lets use this method to make the room 24x32x16. Click the number next to the D button so that it highlights in purple. Then, simply type in the desired height in feet - in this case 24 - and press Enter; the depth of the brush is now 24 feet. Use this method to change the width to 32 feet as well. Now, portalize the level so that these changes take effect in the 3D world.
VI. Creating New Brushes
Now that we have an operation brush in place, lets create another operation brush from scratch and attach it to the existing one. In the lower left-hand corner of the screen, under the heading Create, are several buttons, with the Brush button already highlighted. These buttons allow you to create new elements, like brushes, lights, and objects; the option to create a brush is the default. To create a new brush, choose the type of brush you want to create (in this case we want the default, an air brush). Left click on one of the 2D view windows and keep the button held down. Now, move the mouse to create a brush; when the brush is big enough, release the left mouse button to place the brush. Brushes can be repositioned in much the same way they can be resized. In the lower left-hand corner of the screen are indicators for a brushs X, Y, and Z coordinates; you can use these brushes to modify the brushs position. Or, press and hold the Shift key; move the mouse cursor to one of the 2D view windows; click and hold the left mouse button; and move the mouse to reposition the brush. Resize the brush so that its measurements are depth=8, width=8, and height=16. Then, use the top view window to reposition the brush so that its southern wall connects to the existing brushs northern wall. After youve done that, move the mouse cursor over the Right or Front view window and reposition the new brush so that its bottom side aligns with the existing brushs bottom side; this will essentially line up the new brush so that its on the same level as the existing brush (i.e. they share the same floor). It should now look as if you have an open-air courtyard whose northern wall connects to a corridor. To the north of the corridor, create a room whose southern wall connects to the northern wall of the corridor. When the brushes are lined up properly, portalize the level to see the changes reflected in the 3D View window. Feel free to play with the textures, and hit Alt+G to jump into the game and walk around the rooms as Garrett would. If everything went smoothly, you will have created an open-air courtyard, connected to a corridor, connected to a room.
Now, use this method to create a circular column somewhere in the northern room. To change the shape of the brush from a cube to a cylinder, go up to the menu bar and click Shapes then Cylinder. You can modify the number of sides in the cylinder (or in a pyramid, if you were to create one) by clicking Shapes, then Sides in Base, and entering in the number of sides you want (the default is 6). Lets choose a cylinder with 10 sides.
Now that weve selected a cylinder, we need to tell DromEd to create a solid brush, as opposed to the air brush we just made. Look at the bottom center of the screen, to the button called Op. Use the arrows to the left and right of the button to cycle through the different brush types, and stop when the selection reads fill solid. [Note: Fill Solid is actually the first choice in the list] When this is done, create the solid brush somewhere in the northern room, using the same method you used to create the air brush. Resize the brush so that it stretches from floor to ceiling, and actually connects to the floor and ceiling. Portalize the level to see these changes reflected in the 3D View window, and enter into the game to see the column more closely.
VII. Placing Objects/Lightsourcing
Youll recall that light_bright is still enabled, so the spaces youve created are completely illuminated in the 3D View window and in the game itself. Lets change that by placing a torch in the game world.
Objects in DromEd reside in an object hierarchy, which can be accessed via the menu bar at the top of the screen. Click Editors then Object Hierarchy to bring up the object hierarchy. All of the games objects reside somewhere in this hierarchy, but for now were only concerned with placing a torch. Objects are located in one of five categories - Sound, SFX, fnord, physical, and MotArchetypes. Click the plus sign (+) next to Physical to expand that tree, then expand Lights. Youll notice that Torches can also be expanded; doing so will bring up an item called ConTorch. Sometimes, the name next to a + sign is simply a heading, and you need to expand that tree to see the objects you can place. In other cases, the headings are objects in themselves, as is the case with the Torch. Click Torch so that its highlighted in blue, and then click the Create button on the right-hand side of the object hierarchy window. Youve basically just told DromEd to get a torch object ready for creation.
To place the torch in the game world, position the mouse cursor over one of the 2D windows, and click and drag to create a box, just as if you were creating a new brush. When you release the mouse button, the object will be created in the center of the box. Create a total of six torches - three in the southernmost room, near the west, south, and east walls, and two in the northernmost room, near the west and east walls. Now, examine the torches in the 3D View window - youll notice that their brackets are all facing a particular direction, south. Thats because all objects, when placed in the game world, face southwardbut we can attach the torches properly to any wall by rotating them. [Important Note: look down to the lower left-hand corner of the of the DromEd screen and find the column of buttons under the Create heading. In order to create an object, you first need to click the Object button so that its highlighted in violet. It just so happens that when you select an object for creation out of the hierarchy, the Object button is automatically selected.]
Up until now weve changed a brushs X, Y, and Z planes and modified its depth, width, and height. Its also possible to modify a brushs heading, pitch, and bank to rotate it into a desired position. Look at the lower left-hand corner of the screen, to the buttons marked H, P, and B. Use these buttons as you did the previous ones, and practice rotating one of the torches. Or, press and hold the Alt key, press and hold the left mouse button, and then move the mouse to rotate the torch. Rotate the torch so that its heading is 270 (but its pitch and bank are both 0), and affix it to the western wall. Use this method to rotate the remaining torches and place them on the other walls. [Important Note: Some objects are actually complex composites of several smaller objects. The torch is a perfect example: its actually made up of the torch, the flame, and the smoke. When you move the torch, its important that you do indeed move the torchand not the other elements. When you move the torch, it may seem as if the flame and smoke are left behind. Dont worry - theyll naturally follow the object. So, when you enter into the game by pressing Alt+G, youll notice that the torch looks just as it should. When you return to DromEd and look at the 2D view windows, youll see that everything is back to where it should be.]
[Note: When you move light sources around, youll often need to use the Light function to update the lighting. To do so, go to the menu bar and click on Tools, and then click Light. This will update the levels light sourcing.]
Now that weve placed torches on the walls, lets place a table on the floor, in the middle of the southern room. Tables, like all objects, reside in the object hierarchy; but instead of fishing through the hierarchy tree, lets take a shortcut. If you know the name of the object, you can use the find_object command to instantly jump to its position in the hierarchy. Click on the command prompt, and enter in the command find_obj table. (without the period, of course) When you hit Enter, youll go directly to the standard table in the object hierarchy. You can either keep this one, or choose one of the available variations, like Cabinet Table. Create the table just as you did the torches, and place it in the game world. Chances are, the table will be hovering a few feet off the ground. Instead of manually moving the table, you can have it automatically grounded by clicking the Floor Me button, located at the bottom center of the screen. [Note: Floor Me only works if the object you wish to have grounded is hovering in the air over the floor you want to have it grounded to. If, for example, you place a street lamp in the world, its base is sticking through the floor, and you want to have it aligned perfectly with the floor, youll need to first raise the street lamp into the air and then hit the Floor Me button. Using the Floor Me button when an object is already sticking through a floor will have no (or worse, an undesirable) effect.]
Now, using the method you just employed for creating and placing the table, well create and place a guard in the northern room. [Important Note: If you try to create the default choice - guard - it actually places a white wedge in the game world. Thats because Guard is a merely a heading in the object hieracrchy, and not an actual object. DromEd interprets unknown objects using white wedges. In this case, you need to click the + sign next to the heading Guard to expand that part of the tree, and choose a specific kind of guard.] Find and create a sword guard (under guardsswordsmengrunts). Place the sword guard in the northern room. If you accidentally created a wedge, you can delete it by selecting it as the active object and hitting the Delete key. Note that you can use this method to delete any kind of brush, even entire rooms.
Now that youre an expert with the object hierarchy, do this: place a table somewhere in the center of the northern room; place the object BaffordScepter (the scepter from Thiefs Lord Bafford mission) in the room; and then rotate and move the scepter so that its lying, horizontally, on the table. Now youve actually got something to steal.
Heres a really helpful tip for creating multiple objects: instead of creating another table from the hierarchy, we can simply copy the existing table. To copy a brush (including operation brushes, objects and lights), simply highlight the brush in question and hit the Insert key. This will create a copy in the same exact position as the original brush, with the copy now highlighted as the active brush. So, while it may look as if nothing happened, youve actually made a copy of the existing brushits just that the copy is in the same exact place as the original. If you go to move the original brush, youll actually move the copy. So, use this method to copy the existing table and place the new table in the northern room.
Youll notice that the game world is still fully illuminated, because weve still got the light-bright command enabled. Now that weve placed some torches, we can disable this feature by typing in light_bright again and moving around in the 3D View window. Hit Alt+G to enter into the game to see the lighting effects more closely.
VIII. Bringing the Level to Life
The first thing we need to do is load in a script. A script is a basic set of commands, used by DromEd to activate different in-game elements, like specific AI behaviors (such as the factory workers in Cragscleft Prison.) Click on the command line and type script_load convict to load in the ConVict (Conditions for Victory) script. This is the script DromEd needs to activate victory conditions (mission objectives), doors, and weapons. If you forget to load the script, these and some other in-game elements will fail to function, so its good to get into the habit of loading in the script whenever you start a new map. The script will get saved with the level and you wont ever have to load it for this particular level again. Scripts are powerful tools, but since they are part of the games source code, script editing isnt available to the public. However, ConVict should be perfectly adequate for your level building needs.
By now youll have noticed that entering into game mode doesnt quite have the desired effect: Garrett doesnt have a health meter; there are no sound effects; and the guard you placed is just sort of standing there, with his arms out. Thats because DromEd recognizes the brushes youve created and the guard object youve placedbut doesnt yet recognize you as a player, or the brushes as rooms, and the guards AI is unable to function because the level hasnt been processed for AIs yet.
The first thing we need to do is place the Starting Point, and tell Dromed to start the player model there. To place a Starting Point, go to the object hierarchy and expand the branches under the fnord tree until you come to marker. (Dont expand past marker.) Place the marker object in the southernmost room, in the northwest corner, and make a note of its number, which will be located in parentheses, after the name A Marker (found at the bottom center of the screen). When the marker is in place, look at the bottom center of the screen and find the Properties button; click it. This will bring up a separate Properties dialog box, with the markers name - A Marker - already highlighted. Click the boxs edit button and change the name to StartingPoint. When the name has been changed, click the windows Done button to return to the main DromEd screen. Now, click the Links button at the bottom center of the DromEd screen, located directly below the Properties button. This will bring up the Links dialog box. Click the Add button, which in turn will bring up a small dialog box. This dialog box will have the following fields: Flavor, From, and To. Click the arrow next to the Flavor field and select PlayerFactory from the drop-down menu. [Note: Use the PlayerFactory without the tilde (~).] In the From field, enter the number of the Starting Point you created. In the To field, type in the name Garrett. Click the OK button when youre done, and then click the Links boxs OK button to return to the main DromEd screen. Press Alt+G to enter into the game. Notice that you now enter into the game world in the precise spot you placed the Starting Point, and Garrett now has a health meter, as indicated by the small shield icons in the lower left-hand corner of the screen. Go back to DromEd, and well turn the operation brushes into actual rooms, complete with sound effects.
[Note: If you get killed by the guard (or if you accomplish all your objectives, but well get into that later in the tutorial), youll need to exit the program and restart DromEd. To avoid this, place the line no_endgame (without quotation marks) in your user.cfg file. This will allow you to stay in game mode if you get killed or complete your objectives.]
To turn a brush into a room, at least as far as DromEd is concerned, you need to encapsulate that brush in a separate room brush. Look down at the bottom center of the DromEd screen, to the column of Create buttons. Click the last button - Room - so that its highlighted in violet. With the button active, go to one of the 2D view windows and create a violet room brush around the brushes youve already created. Make sure you expand the brush in the other views so that it completely surrounds the existing brush (if it doesnt already do so). While its okay to use this method for now, theres a more precise method of creating room brushes. Click on a brush in one of the 2D view windows so that its active. Then, press and hold the Shift key and hit the Insert key; this will create a room brush around the selected brush. What youre probably asking yourself right now is this: Why would I want to encapsulate all my individual brushes in separate room brushes, when I could just create one giant room brush around all the brushes Ive created? Well, room brushes serve to separate the spaces realistically, particularly where Thiefs sound effects are concerned. If you created a giant area, say one equivalent to the Bonehoard, and surrounded it in one big room brush, all of the sounds in that room brush would appear to be in one big room. By encapsulating each brush in a room brush, youre helping to channel the games sound effects in a much more natural way; sounds will appear to come from around corners; a guard at the other end of the map wont hear your footsteps; and so forth.
When youve created a room brush around the existing brushes, you need to build a room database so DromEd can examine the room/s and calculate sound propagation, etc. Go to the menu bar at the top of the screen and click Tools, then click Build Room Database. When this is done, hit Alt+G to enter into the game and walk around; notice that you can now hear sound effects, like the crackle of the torches and your own footstepsbut the guard is still standing motionless. Enter back into DromEd and well remedy that.
To activate AIs (guards, servants, monsters, etc.) you need to build a pathfinding database, which basically allows the AIs to find their way around the rooms youve created. Note that you must create room brushes and build the room database before you can build a pathfinding database. So, go back to the menu bar at the top of the screen; click Tools, and then click Compute Pathfinding Database. When thats done, enter into the game to see the Hammerite guard come to life. If you placed the Starting Point in the northwest corner of the southern room, and the guard in the northern room, youll be out of his field of view and therefore out of harms way. You way want to jump out, taunt him, and then run feebly around in circles before he bashes your brains in with that humongous warhammer. Yeah, youre right - thats not much fun. Lets give Garrett some weapons to even the odds. Go back to DromEd, and well equip the player model with a default inventory.
[Important Note: As you build more in-depth levels, there may be times when AIs cease to function as youd expect: they continuously walk into walls, cant climb stairs, and refuse to enter certain rooms. If that happens, its probably because you havent updated the pathfinding database. Whenever you add new terrain to your level, the AIs dont know its there unless you tell themand you tell them by clicking Compute Pathfinding Database under the Tools section of the menu bar. Get into the habit of updating the pathfinding database whenever you build new terrain.]
IX. Acoustic Settings
DromEd supports environmental acoustic settings using EAX, or Environmental Audio Extensions. This step is optional, but it will greatly enhance the games audio effects. EAX effects are supported in DromEds game mode, and in Thief version 1.33 or higher. Keep in mind, however, that you need and EAX-compatible sound card to benefit from these settings.
DromEd allows you to set individual acoustic characteristics for every room brush. Simply select a room brush in the editor, choose a pre-set room type from the table below, and use the hot-key indicated on the table to set the rooms EAX type. Thats all there is to it.
The following table lists the various EAX settings; while some of the names may seem a bit arcane, you should get a general idea of what kinds of sounds each setting will produce. The Small Dead setting, for example, would be suitable for any small room with very little reverb, such as a walk-in closet. Pick the room type that sounds closest to the thing you want, and feel free to experiment.
Ctrl-F1 Small Dead
Ctrl-F2 Small Normal
Ctrl-F3 Small Live
Ctrl-F4 Large Dead
Ctrl-F5 Large Normal
Ctrl-F6 Large Live
Ctrl-F7 Dead Hallway
Ctrl-F8 Normal Hallway
Ctrl-F9 Live Hallway
Ctrl-F10 Tunnels
Ctrl-F11 Caverns
Ctrl-F12 Sewers
X. Creating a Default Inventory
Creating a Starting Point basically creates an in-game representation of Garrett without any inventory. To start a mission with a default selection of items (weapons and powerups), you need to create those items and then link them to the Starting Point. Search through the object hierarchy or use the find_obj command to create and place in the game world a blackjack, sword, and broadhead arrow. [Note: The broadhead arrow is called simply broadhead.] After the objects are created, make a note of each ones object number.
Well start by linking the blackjack to the Starting Point. Select the Starting Point, and click the Links button, just as you did before. In the Flavor field, select Contains. In the From field, type in the number of the Starting Point (or just StartingPoint). In the To field, type in the number of the blackjack. Click OK and then click OK on the Links window to return to the main DromEd screen. You have just linked the blackjack to the player model, meaning you will start the game with that weapon. Dont worry about the blackjack appearing in the world as an actual object during the course of the game: when you create a contains link, the player contains that object in his/her inventory, and it no longer exists in the game world. Now that youve linked to the blackjack, use the same procedure to link to the sword (make sure you use the correct object number for each object you link to).
Linking the broadhead arrow to the player is a bit more complex, because we want to give Garrett multiple arrows, and not just the one we placed in the game world. Before we link the broadhead arrow to the Starting Point, we need to modify the broadhead object so that it gives the player multiple arrows. Click on the broadhead arrow, and then click the Properties button to bring up the Properties window. Then, click the Add button to bring up a list of possible properties. Choose Engine Features then Stack Count, and type in the number of arrows you want to start out with. Lets choose thirty (30) arrows. When youve finished changing the number of arrows, link the broadhead arrow object to the Starting Point just as you did with the sword and blackjack. Note that you dont actually have to equip Garret with a bow; once you acquire arrows, the bow is automatically available.
Anyones whos played Thief knows that one of the games coolest elements is the ability to extinguish torches using water arrows, to create your own beautiful, concealing darkness. Using the methods already described, give Garrett two water arrows. Its important to note that, for the purposes of creating levels with DromEd, water arrows (and the same is true for moss arrows, fire arrows, and gas arrows.) are actually referred to as crystals, and are found in the hierarchy under PhysicalTulzCrystal.
Now that youve got an inventory, go back into the game world and show that Hammerite whos boss!
[Note: If you use your two water arrows to extinguish the two torches in the guards room, that room will be plunged into complete darkness, as those two torches are the only sources of light!]
XI. Creating AI Patrol Routes
The AIs in Thief: The Dark Project, as evidenced by the guard we placed in this tutorial level, are very intelligent: although they remain stationary when nothings going on, they can hear your footsteps, hunt you down, and even run away when threatened. These are all behaviors that are inherent to the AIs, and you as the level designer dont need to worry about controlling them. And, while complex scripts are not available, you can modify AI behavior by assigning patrol routes. Basically, a patrol route allows an AI, lets say a guard, to walk a predefined circuit, by travelling from one marker (similar to a waypoint in a flight sim) to another, to another, and so on.
To define a patrol route, you need place a circuit of markers to indicate that route. In the object hierarchy, go to fnordMarkerTrolPt. Place four TrolPt markers (not LookBackPt markers) in a square pattern around the room; these are the markers the guard will follow on his route. Now, its important to know that an AI will start a patrol by heading to the TrolPt marker that is closest to him in 3D space. How do we make sure the AI starts the patrol at a particular marker? Simple: we create the first marker (or move it, if it was created somewhere else) directly inside of the selected AI. When placing markers, its important that they always exist inside in the game world (meaning, inside an air brush), close to the floor (up to around 4 feet) where the AI will walk.
Now that the markers have been created, we need to link them together. Click on all the markers and make a note of their object numbers. Then, click on the first one - it should be inside the guard - and bring up its Links box (were basically going to do something very similar to linking the default weapons to the Starting Point). Click the Add button to bring up the smaller dialog box. In the Flavor field, use the drop-down menu to select AIPatrol. [Note: Do not use ~AIPatrol. Names with the tilde (~) in front of them are return links, and well discuss them in just a bit.] In the From field, put the number of the currently selected marker. In the To field, put the number of the next marker you want the guard to travel to. We placed the markers in a square pattern around the room, so we want the guard to follow a square patrol route. So, in the To field, put the number of the next marker in the square patrol route. Use this method to link all the markers together. Remember that we want the guard to walk in a continuous loop, so, when you get to the last marker, link from it back to the first marker. That way, when the guard gets to the last marker, hell head back to the first marker and start his patrol all over again.
Theres one more thing we need to before the guard will follow the markers, however. When you first place an AI, it will remain stationary because thats its default position. Although youve placed the TrolPt markers, you havent told the AI to follow them. To change this, select the guard, and then bring up his Properties box. Click the Add button, and then select AI, Ability Settings, and Patrol: Does patrol. This will bring up a small dialog box containing a small, white, unchecked selection box. Click on the selection box to place a check mark there, and then click the OK button to close out the dialog box. Then, click the Done button on the Properties box to return to the main DromEd screen. By checking the box, you have enabled that AIs ability to go on patrol.
You can also enable an AIs random patrol, command, so that instead of following the TrolPt markers in order, the AI chooses a path at random. To do this for the guard, follow the same steps you used for enabling Patrol: Does patrol, but select Patrol: Random sequence. This will enable the guards ability to patrol at random. [Note: Patrol: Random sequence is found on the list directly underneath Patrol: Does patrol.] Its important to note that if you do decide to activate the Patrol: Random sequence ability, you still need to activate the Patrol: Does patrol ability so the guard knows hes supposed to patrol in the first place.
You may notice that when you open up a markers Links box and go to link from that marker to the next, theres already another link there. It looks similar to the one youre about to create, but theres a tilde (~) at the beginning of the Flavor name, and the From and To links are different. The links with the tilde are called return links. Basically, you as the level designer create a link from one marker to the next marker. But DromEd recognizes that one marker also links to a previous marker. While you may create three markers, numbered 23, 24, and 25, and link from one to the next, DromEd goes one step further by linking them backward as well. So, lets say you create a link from marker 23 to 24. Then, you create a link from marker 24 to 25. You have specified that marker 24 links to 25but DromEd has already linked marker 24 back to 23.
Return links are very similar to normal links except for the following: their flavor names begin with a tilde; they point in the opposite direction; and they have the opposite meaning. Say, for example, you have a chest, and a 'contains' link from the chest to a potion. What the link means is that, 'The chest contains the potion. The potion can't be seen in the game, but when someone opens the chest the potion goes into his or her inventory. At the same time the 'contains' link is created from the chest to the potion, a '~contains' link is created automatically from the potion to the chest. This link means, 'The potion is contained by the chest.' The important thing for you to remember about return links is that although you will see them frequently, their placement is a normal occurrence that gets managed automatically by DromEd. You don't have to worry about them at all.
Now that you fully understand the concepts of linking, enter into game mode and watch as the guard patrols around the room. See if you can sneak up behind him and knock him out with the blackjack before stealing the scepter. [Important Note: If you enabled the Patrol: Random sequence ability, you may notice that at some point the guard walks into the column, and just continues walking into it, instead of trying to go around. Thats because you need to update the pathfinding database, as mentioned earlier in the tutorial.]
XII. Creating Mission Objectives
If youve followed this tutorial all the way through, from beginning to end, you should now have the knowledge to make fairly detailed Thief maps. You can create terrain, place objects, give yourself weapons, and even define patrol routes for your AIs. Now we come to the most advanced (read: confusing) part of this tutorial: creating mission objectives. If you enter into the current level, you can kill the guard and steal the scepterbut then youre just sort of stuck there, hanging around with nothing to do. In other words, you have to pretend that stealing the scepter is your goal, because DromEd doesnt yet recognize that (or anything else) as an actual objective.
In order to assign objectives, you must specify a missions quest data. Go to the top of the screen, to the menu bar, and click Editors. Then, click Mission Quest Data. Dont worry - nothing is supposed to happen. Thats because you havent yet specified any quest data. When you have specified this information, clicking Mission Quest Data will bring up a small Quest Data dialog box, containing all the objective and difficulty information for that mission. So, we need to enter in this information. Understanding these concepts, at least for the purposes of level creation, is a bit trickybut this tutorial should at least teach you the basic principles needed for the creation of real missions, with real objectives.
In order to implement objectives, you must first understand how DromEd views those objectives. So, this section of the tutorial will first explain the concepts behind objectives and difficulty levels, and then teach you to actually implement them in your missions.
First and foremost, every objective you include must be given a number, and the first objective must be given the number 0. So, if you have three objectives, they would be numbered 0, 1, and 2. Again, they must be numbered in this way.
Next, each objective has a state, which indicates whether or not it has been completed or not. DromEd recognizes four states for objectives: incomplete, complete, inactive, and failed. If youve played Thief, you will have seen, on the Objectives screen, visible representations of each of these states: incomplete is marked by an empty box, meaning that objective has not yet been fulfilled; complete is marked by a green check mark, meaning that objective has been satisfied (like when you steal an objective item); inactive is marked by a red circle with a line through it, meaning that objective is no longer active or applicable; and failed is marked by a red x (though at that point, because of the failure of an objective, the mission will usually end before you can even notice this mark on the Objectives screen).
DromEd uses the following numbering convention for objective states:
0=incomplete
1=complete
2=inactive
3=failed
When making Thief levels with DromEd, each objective must be marked with a 0 (zero) for incomplete, meaning that at the beginning of a mission, each objective has yet to be accomplished by the player. These objectives will be marked either complete or failed according to the actions of the player.
The next thing a budding level designer needs to know is that in Thief, objectives can be either visible or invisible. Visible objectives are those the player can see on the Objectives screen right at the start of the game; so, when starting a Thief mission with visible objectives, the player knows exactly what he or she is supposed to do. A good example of a visible objective can be seen in Thief 2's Running Interference mission, where the player has to help Basso and Jeniver elope: Get Basso and Jeniver out of the mansion together with you. An invisible objective, on the other hand, is one the player is not aware of at the start of a mission. A good example of an invisible objective can be seen in Thief 2's Eavesdropping mission, where the player, after listening to Karras and Sheriff Truart, has to then make a copy of the Bank Safety Deposit Box Key. The objective to copy the key is an invisible objective, because it doesnt show up on the players Objectives list at the beginning of the mission; instead, that objective is added after the player listens to the conversation
For the purposes of designing Thief missions with DromEd, it is imperative that you realize something about mission objectives before you actually begin the creation process: the ConVict script only supports visible objectives! So, you could not create a mission with the complexity of Eavesdropping, because all of the objectives must be visible to the player at the start of that mission. So, you could easily create a mission that required the player to enter a certain building, steal a certain object, and then retreat to a certain locationbut the player would have to be aware of all of these objectives at the beginning of the mission. You could not, however, create a mission that required the player to steal a certain objectand then gave that player a new objective after the object was actually stolen.
DromEd uses the following numbering convention for objective visibility/invisibility:
0=invisible
1=visible
So, as stated, each objective must be numbered 1, for visible. [Important Note: By now, you may be wondering exactly where these numbers come into play. Dont worry - that will be explained shortly.]
You now know that, for the purposes of level design with DromEd, each objective has a state (incomplete, complete, inactive and failed) and a visibility (visible, invisible). Well, there are obviously different kinds of objectives as well. The public release of DromEd supports four different kinds of objectives, with the following numbering scheme:
1=Steal an object
2=Kill a creature
3=Get a certain amount of loot
4=Go to a location
[Note: Objectives are covered in more detail in the ConVict document. There are some variations of the objectives you see here. For example, you could easily have an objective that prevents you from killing a certain creature or creature type. Also, in order to learn how to create loot objectives (ie., steal 500 gold pieces on Normal level), you must refer to the ConVict document!]]
You could include just one or all four of these objective types in your mission. So, the player could be required to steal an objector the player could be required to steal an object, kill a creature, get a certain amount of loot, and go to a certain location.
You can even use multiple objectives of the same type, if you wish. For example, the player could be required to steal two different objects, kill three different monsters, and then go to a certain location.
So, how do you enter all this data into DromEd? The first thing you should do is write down on a piece of paper all the objectives you want, starting with the number 0. Using the sample level weve made, lets have two objectives: stealing the scepter and killing the guard. This would read as:
0=Steal the scepter
1=Kill the guard
Now, before we can tell DromEd what the actual objectives are, we have to indicate that each one will be incomplete, and visible, as already stated in the tutorial; each of these commands must be entered in separately. The command used for entering in objective data is quest_create_mis -- without the quotation marks, of course. Get used to this command, because well be using it quite often.
The command for entering in the state of an objective is goal_state_x, 0 - where x is a variable representing the number of that particular goal, and 0 is the number corresponding to the state we want - incomplete. So, the entire command you would need to enter (in the command line) is exactly as follows:
quest_create_mis goal_state_0, 0
[Important Note: The first number is always the number of the objective youre referring to, and the second number is always the number that corresponds to a specific DromEd command. Always use the above format: number, comma, space, number.]
After this line is entered in, go back up to the menu; go to Editors, and Mission Quest Data. Youll notice that the small Quest Data dialog box now comes up, and lists the info youve entered. Click the Cancel button to close the window.
[Note: You can use the Quest Data window to directly edit variables youve entered in. Just highlight the command, click OK, and you can change the commands Name and Value.]
Confused? Lets dissect that line to see what youre telling DromEd to do. Quest_create_mis is the standard command for entering in objective data. Then, you use a space and type in the rest of the command. Goal_state_0, 0 means that objective 0 (steal the scepter) is going to be marked with a 0, meaning it is incomplete. What all this means is that when you start the mission, the objective Steal the scepter will have an unchecked box next to it on the Objectives screen, because that objective has yet to be fulfilled.
Of course (now things get even trickier) the objective Steal the Scepter wont appear on the Objectives screen at all unless you mark that objective as visible, meaning the player can see it right at the beginning of the mission. To mark our first objective as visible, use the following command exactly as you see here:
quest_create_mis goal_visible_0, 1
Hopefully, by now you are gaining an understanding of how objective data is entered into the command line. With the above line, we told DromEd that objective 0 (steal the scepter) would be marked with a 1, meaning it is visible at the start of a mission.
[Important Note: So, in case you havent already figured it out, you must enter in the goal_state and goal_visible commands for every objective you have, and each one must be made incomplete and visible.]
Now that weve set the state and visibility of the first goal (steal the scepter), follow the examples above and set the state and visibility of the second goal (kill the guard).
[Important Note: If you screw something up and need to delete a comand youve entered in, use the command quest_delete and then the command you entered. So, if you wanted to delete the line quest_create_mis goal_state_0, 0 you would type in:
quest_delete goal_state_0
You would not use the comma and second number because youre not trying to set anything for goal 0 - youre simply trying to delete goal 0. So, you need only indicate the number of the objective (goal), which in this case is 0, for our first objective, Steal the scepter.]
Okay, weve told DromEd that weve got two objectives, and that each one will be visible and marked as incomplete at the beginning of the missionbut we havent yet told DromEd what those objectives are. For each objective, we must enter in two commands: one to indicate what the objective is, and one to indicate what the subject of that objective is. So, for the first objective - Steal the scepter - we need to tell DromEd two things: 1.) The player needs to steal an object; 2.) The object the player needs to steal is the jeweled scepter. To do this, we use the commands goal_type and goal_target.
Type in:
quest_create_mis goal_type_0, 1
The above line tells DromEd that objective 0 will require the player to steal an item.
Now, find the scepter object you placed on the table, click it, and make a note of its number. Then, type in:
quest_create_mis goal_target_0, x (where x is the number of the scepter)
The above line tells DromEd that the subject of objective 0 (which we just defined as steal an object) is the scepter.
Using the examples above, lets enter in the data for the second objective - Kill the guard. First, we would use the following command:
quest_create_mis goal_type_1, 2
The above line tells DromEd that objective 1 will require the player to kill a creature.
Then, we would use:
quest_create_mis goal_target_1, x (where x is the number of the guard)
The above line tells DromEd that the subject of objective 1 (which we just defined as kill a creature) is the guard.
Before you can get the objectives enabled, theres one more thing you must do, and that is to assign the VictoryCheck script to your Starting Point. Click on the Starting Point to select it, and then click the Properties button to bring up the Properties window. The, click Add, and choose S, and then Scripts. This will bring up a small Scripts box with a few different fields. In the Script 0 field, type in VictoryCheck (one word - without the quotation marks) and then click the OK button. Click the appropriate buttons to close out the windows and return to DromEd.
Now that youve actually got real objectives, enter into game mode by hitting Alt+G. Once there, hit the O key to bring up the Objectives screen. You should see two small, empty boxes to the left of the screen, with no text next to them. Those objectives are, in order from top to bottom: Steal the scepter; and kill the guard. The reason there are no text descriptions of the objectives is because this information hasnt been entered in yet. Dont worry - well come to that a bit later. For now, its enough to know that we have two objectives: the first requires you to steal the scepter; the second requires you to kill the guard. Hit the Done button on the Objectives screen to return to game mode. Then, kill the guard - either nail him with an arrow from a distance, or get behind him and backstab with the sword. [Note: If you knock the guard out with the blackjack, hell be merely unconscious, and not dead. To finish him off, youll have to hack away at his unconscious body with your sword.] When the guard is dead, return to the Objectives screen and note that there is now a green check mark in the second box. Thats because youve completed the second objective - Kill the Guard. Exit the Objectives screen and steal the scepter - the mission will end, meaning you also completed the first objective - Steal the scepter.
XIII. Creating Difficulty Levels
If youve made it this far, youre to be commended! Learning how to implement real objectives into your missions is the test of a true Thief level designer. And, if you can do that, you can take the objective formula even further and incorporate difficulty levels into your missions.
The first thing you need to realize when creating different difficulty levels is that you first need to create all the objectives, as discussed in the previous section of this tutorial. So, even if you have objectives that only show up on certain difficulty levels, those objectives need to be created before you do anything else. Since we already have two objectives in place, lets use those to illustrate the differences in difficulty levels. Right now, our objectives are: Steal the scepter and Kill the guard. Whenever we enter the game, we must accomplish these objectives. But lets modify things a bit, so that the Kill the guard objective is only required when we play the game on Expert difficulty level.
DromEd recognizes three different difficulty levels, with the following numbering scheme:
0=Normal
1=Hard
2=Expert
To tell DromEd which objectives will be available on which difficulty level, there are two different commands we can use: goal_min_diff and goal_max_diff. Goal_min_diff is the minimum difficulty that objective would be available. Goal_max_diff is the maximum difficulty that objective would be available. So, lets say the Normal and Hard difficulty levels required you to steal 300 gold worth of loot, and the Expert difficulty level required you to steal 500 gold worth of loot. The goal Steal 300 gold worth of loot would use the goal_max_diff command, set to the number 1, for Hard difficulty. So, basically, this would tell Dromed that the goal Steal 300 gold worth of loot would apply to all difficulty levels, up to the maximum difficulty level of Hard. We dont want to apply this objective beyond the Hard difficulty level because we want the Expert level to require stealing 500 gold worth of loot. To specify that objective, we would use the goal_min_diff command and set the number to 2, for Expert difficulty. This would tell DromEd that the goal Steal 500 gold worth of loot would only apply to difficulty level of Expert and above. Of course, there is no difficulty level higher than Expert, but thats okay. That just means the program will apply that difficulty level to just Expert, which is exactly what we want.
Lets get back to our tutorial level. Remember, we want the objective Steal the scepter to apply on all difficulty levels, and the objective Kill the guard to apply only on the Expert difficulty level. So, for the Steal the scepter objective, we wouldnt need to specify any conditions. For the Kill the guard objective, however, we would need to enter in the following command line:
quest_create_mis goal_min_diff_1, 2
The above line basically tells DromEd that objective 1 (Kill the guard) will be applied to the minimum difficulty level of 2, which is Expert.
[Note: Remember, Kill the Guard is objective 1, because objective 0 is Steal the scepter.]
Now its time to test out the difficulty levels. Normally (and this is something that will be covered in the next section), a person playing your mission would select a difficulty level through the pre-mission screen, just as they would when playing any Thief level. But during the course of level design, you need to be able to check your work in DromEd. You do this by using the difficulty level selection command. To play the mission on a particular difficulty, type in:
quest_create_mis difficulty, x (where x is the difficulty level you want to play at)
So, to play the tutorial mission on the Normal difficulty level, type in:
quest_create_mis difficulty, 0
Now, enter into game mode and hit the O button to bring up the Objectives screen. You should notice that there is now only one small boxmeaning there is only one objective. Thats because were playing on the Normal difficulty level, and we set the Kill the guard objective as an Expert difficulty level. So, on Normal difficulty, this objective wouldnt even be available. If we had wanted to play the mission on the Expert difficulty level, thereby enabling that second objective, we would have used the command:
quest_create_mis difficulty, 2
You should only use the set difficulty command to test out a particular difficulty level through DromEd. If you set a particular difficulty level, and then save the file, the mission will be stuck on that level, even if the player chooses another difficulty level on the pre-game screen. So, if we set the tutorial mission to Expert difficulty and then saved the mission, anyone who played the mission would be forced to do so at the Expert level. If you do save the mission while its set to a particular difficulty level, you must delete the difficulty command and resave in order for the mission to operate correctly. So, you would use this command:
quest_delete difficulty
XIV. Other Helpful Commands and Tips
If youve 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 programs 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.
Its 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 games 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.
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.
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.
no_endgame - This allows you to continue playing if youre 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, youll 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.
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 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.
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 dont like it (because you cant 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 objects 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
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.
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 cant 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 missions 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 dont 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.
Filtering - To the lower right of the Create button is a Filter button. Sometimes DromEds 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.
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 theres 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.
Dont 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.
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).
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.
Dont 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.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 3318
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved