DMapEdit v3.0 - a doom map editor! Section Title [1] Legal stuff [2] About DMapEdit [3] New stuff since v2.1 [4] New stuff since v2.0 [5] New stuff since v1.1 [6] Future expansion [7] Introduction [8] How do I play a map I made? [9] Keyboard commands [10] Pop-up windows [11] Thing display filter [12] Thing editing [13] Line editing [14] Sector editing [15] Marking [16] Making maps from scatch [17] Misc. notes [18] Alternate video modes [19] Thanks Note: if you are viewing this with a decent text file viewer, then you can get to the section you are interested in with the "search for" command. All sections will start with it's number surrounded by []'s, as shown above, so search for that. --------------- [1] Legal stuff --------------- DMapEdit is my trademark Doom is a trademark of id Software Inc. Vesa.bgi is copyright (C) 1991 Jordan Hargraphix UniVesa - Universal VESA TSR is copyright (C) 1993 Kendall Bennett. Ms-window is a trademark of Microsoft Copyright (C) 1994 Jason Hoffoss. All rights reserved. You may freely distribute this program, as long as it is distributed intact (all 8 original files) and unmodified. You may not sell this program, for profit or other consideration. id Software's "data utility license": "DOOM(tm) is a trademark of id Software, Inc. The Doom(tm) characters and the id Software logo are trademarks of id Software, Inc. Doom(tm) Copyright(c) 1993. id Software, Inc. All rights reserved. This utility product is not a product of id Software, Inc. and has not been approved by id Software, Inc. id Software will not provide technical support for this product. The purchaser of this utility product may not distribute for money or other consideration any software data created and/or modified by the use of this utility product." This Editor is not a product of id Software and id Software cannot and will not provide support it, nor for maps created with it, nor for DOOM itself if you modify the DOOM.WAD (IWAD) file. ------------------ [2] About DMapEdit ------------------ Welcome to DMapEdit. DMapEdit is a true, full-featured map editor, and not just a thing editor. DMapEdit can now generate Nodes, Sectors and Blockmaps. I've decided to make this product shareware. Therefore, this is the shareware 'demo' version. It is currently limited to saving only small maps (4k subfiles) to allow the user to verify this editor's functionality. The registered version can be obtained directly from me by sending a $5 check, money order or whatever to my address. My address is: Jason Hoffoss 10321 110th st. N. Stillwater, MN 55082 When I receive your order, I will send you your registered version, either through the mail on a diskette, or uuencoded to your internet email account. If you want it via email, be sure to give me your email address. I recommend typing it, just in case I can't read your handwritting, by the way. If you would like me to send you a diskette via postal mail as well as via email, be sure to say so, and I'll do so. When later versions become available, I will distribute patch files electronically through the Internet and Bulletin Board systems. If you can't get the patches through these methods, or don't want to wait for it to show up on your BBS's, you can register for $10 and I will send you the next 2 upgrades by postal mail. If you want me to send it by some special method (Express Overnight or whatever), then make sure you send me enough money to cover such mailing methods (one dollar from the $5 registration fee goes to mailing costs. You supply any additional money required for mailing). I have bubble-lined mailing envelopes I use, by the way, so you don't need to send me an envelope to use. And hey, send me a letter if you want. Tell me you love/hate this editor, or whatever. I don't have unlimited ideas, and many improvements and idea for DMapEdit come from the users. Tell me how to make it better for you! E-Mail can be send to me on these BBSs: The Death Cookie: (612) 773-0646 (In wildcat part) The Express Lane: (612) 422-3707 or 422-1585 My internet account is hoffo002@gold.tc.umn.edu for anyone wishing to leave me email there. ------------------------ [3] New stuff since v2.1 ------------------------ * memory usage has been drastically altered. You should be able to use it with less memory now, and with larger files, as long as you have memory for it all. The old limits I had for everything are now gone. It still uses base memory, and not EMS or XMS. Until I know how to use these memories, it will stay this way. If your map gets too big to for DMapEdit, it's probably too to play with Doom without it being slow on the average pc. Split into a few missions instead! * texture picklists! No need to try and remember/figure out all the wall texture names. If you become familiar with the names, though, and know just what texture you want, you can still just type it in, (for power users like myself), by clicking with the right mouse button instead. * zooming, roundoff, and the grid has been changed around. Zooming has "half-steps" now. The grid now displays to the scale of the roundoff level, unless the space would fall below 7 pixils between lines. In this case, every other line/fourth line, eighth/etc is drawn instead. * made a new hilight method, which is now the default. If you liked the old way better, though, it is still possible to use that. Just put "flash mode=old" in the INI file. Which brings us to: * INI file support. You change all sorts of default settings in the "dmapedit.ini" file. Take a look at it. A list of all INI file variables and values is discussed in "dme_ini.doc". * There is now a crosshare that shows where adding things, etc will be put. With roundoff values greater than 1, this position can be different from the mouse hotspot. ("roundoff" is know and "snap-to grid" in some other editors) If it gets on your nerves or something, you can turn it off with the 'x' key. * node generator has been improved to eliminate the "sliver" effect it used to produce. The "sliver" effect is a very narrow vertical line that you can see through while playing doom. The speed hasn't been changed from v2.1. This will be worked on for the next version, hopefully. * loading/saving to a working datafile is no longer supported. Such files are obsolete, and PWADs should be used instead. The new load/save routines have been greatly improved as well. "L" and "S" are now used to load/save to/from a PWAD, which is first prompts your for. "Alt-L" and "Alt-S" will also load/save to/from a PWAD, but it doesn't prompt you for the name first, unless this is the first time it has asked you. * ability to re-configure the mouse buttons. Key to do this is . Then just click the function button with the whatever mouse button you wish that button to be used for. * ability to mark objects (an object is a Thing, Vertex, Line, Sidedef, or Sector). Except for Things, all marked objects affect the marking of the remaining object. Thus, if you mark a sector, it also marks all the lines touching the sector, all sidedefs facing the sector, and all vertexes involved. Once you have marked object(s), you can do several things with them as a group. See the appropriate section below for more information. * Ok and Cancel buttons have been added to the relevent windows. The key simulates the Ok button, and for Cancel also. * Most of the edit modes have been changed around a little to be more intuative and useful. * More error checking routines have been implemented. * many bugs have been corrected from v2.1, including: change level bug, which reported inability to open "", display filter buttons wouldn't light up, "sliver" bug in node generator, creating 'donut sectors.' That's all I can remember offhand. Ok, so this isn't at it's full potential yet, but it's been a long time since the last version, so I figured it was time to get this version out, even if it is a little hap-hazard. The next version should be a little better organized and less rushed. I figured you'd rather have this version as it is, then just use v2.1 instead. But, if that what you want to do, you still can. If you do, though, you are wierd. There is still plenty of things needing improvements, but I'm not going to sit on this version any longer. I'll have a follow-up version v3.1 or v3.2 a little later with these improvements. Anyway, let me know if you have any wishes in this area. Look at the future expansion section first, though. I have worked hard (along with joost schuur) to try and insure this version is bug free. Well, I beleive it is, though some things could be a little better. Anyway, enjoy. ------------------------ [4] New stuff since v2.0 ------------------------ * Shareware version will allow you to save maps of limited size now. A map such as E1M1 is too big. In fact, all the original maps are too big. This has been done so that people can test it out and verify that it does actually work (with the distrust of current node generations lately, I needed to provide this save ability) * Bug fixes. Ok, so I guess I didn't get all the bugs. I planned to, but forgot to do so with everything else on my mind. Sorry. Got them now, though. I'm sure this time, because unlike last time, I fixed them before I am writting this. :) * Ability to flip lines now, (and flip line & sidedefs). Because of dooms pickyness with a sidedef on the right side, you can do this. I really don't think it will be needed anymore, though. DMapEdit will automatically handle these problems for you, but in case I'm wrong (I didn't write Doom, so I can't be sure what will and will not cause problems), this options is here. Note: Be sure to line error-check any map from other editors or previous versions of DMapEdit. Can't hurt anything, and it will fix any minor problems a map may have. (such as a map causing doom to hang or reboot when it loads the map, which happened to me, and thus I was able to fix DMapEdit to repair them) ------------------------ [5] New stuff since v1.1 ------------------------ * Fix of all know bugs! If there's still any around, then let me know, since I can only fix bugs I know about, and if there still are any in there, I don't know about them. * Sector edit mode has been improved. You can add/delete sectors with the proper add/delete mouse buttons (or ins/del keys). There is also a sector blend/copy function now (requested by Rod McCabe, in the first postal letter I have received of 2 total to date :) For information about this function, see below under 'sector editing'. * A new misc/advanced functions menu (F9 key), with several options: * Error checking options: Use these to check over a new map to identify any errors that might exist (and fix some of them). If you get a new PWAD from somewhere, you should error check it before you start messing around with it in DMapEdit. Strange thing might happen if you start editing a map with errors. * Line Fixer: This option will correct any errors or inconsistancies it detects with the lines/sidedefs. It may change things that are meant to be the way they are (the less common special effect type things), so it should probably be used mainly for a major overhaul, or to setup sidedefs for a new map that you have laid out the lines for (easier than doing it by hand!) * Sector generator: This options will reconstruct, from scratch, all the sectors. This should really only be used for a major overhaul, or on a new map without any sectors yet, since any existing sector information will be lost, replaced with a standard sector definition. * Fix sectors: Not yet available, this will attempt to correct any problems with existing sectors, and create new sectors in any empty polygons. The result will be pretty much the same as with the sector generator, except the current sector info will not be trashed, but incorperated. * Node generator: Before a new or line changed map can be played, a node structure must be generated. That is what this option will do. I have fixed all the bugs in it, and tested it out on several maps, and it has worked fine on them all. * Blockmap generator: When you complete a new map, or finish changing an existing map around, the last two steps are to create a Node BSP tree, and a blockmap, before you can play it. The blockmap generator works flawlessly, but the node generator..you know.. * Working PWAD/datafile name and editing mode is now displayed at the bottom of the screen. * Picklist now is scrollable in 2 directions. The old selection is also in the middle of the displayed list now, instead of the top. (for example, the current thing is an ammo clip, and you select picklist, then the ammo clip will be in the center of the displayed list). -------------------- [6] Future expansion -------------------- What can you expect from future versions of DMapEdit? I plan to add in the rest of the routines that are currently not available in the advanced/misc options menu. I plan to add template support, so you can add standardized wall formations (doors, columns, staircase, etc.) easily, without having to make them all yourself. Since DoomCad beat me to this idea, I'll support templates created with it, and make DMapEdit's templates usable by DoomCad. This isn't really a problem, since his method of doing it turns out to be very close to how I had planned to go about it. (I think this 'TWAD' idea was a little overboard, though) I plan to add help information to explain whatever you are dealing with at any perticular time. Thus, if you come across something you don't understand, you can request help about it. I plan to add a menu and toobar at the top of the screen. Also, to have a new way to display information currently selected (something more like deu has, instead of the 1 or 2 lines of text at the top). I plan to add 2 new editing modes: sidedef and all. These are really only needed for doing marking and marking related functions. All mode will also make template generation simpler. I plan to add a function to analyze a map and report a difficulty rating for it in each difficult level and in multiplayer mode. So, please send me your ideas on how you think I should rate all the Things (i.e. weighted values) since I really don't have any ideas for this yet. (any authors for other editors wanting to also inplement this idea, let me know and we'll work on it together.) And if anyone has any other great ideas for anything to put in, go ahead and send me your ideas. Just make sure you explain it good. Try to be specific. Sometimes I just can't figure out what you mean when you explain something to me, so try and be specific. ---------------- [7] Introduction ---------------- So, what all can you do with this editor? Well, you can edit Things, vertexes, lines and sectors, etc, in order to create a new and unique map that can then be played in Doom. You can also generate the internal structures that doom needs to operate (Nodes, Sub Sectors, Segments and a Blockmap), which will all need to be made (or remade) in order to play any new or modified map with Doom. You can edit (or just examine) existing maps (from doom, or from PWADs created by other people). Be sure to follow the pwad's author's copyrights for such maps. (Doom doesn't want any modified maps made from their original doom levels to be distributed. In fact, they don't want their unmodified maps to be distributed either, except for with the shareware doom package.) Map making is rather a complex task. There is a lot that goes into making a map, and being able to just 'slap a few lines down, make the nodes and run' really isn't possible. All any editor really does is make the task of creating maps easier, by doing a lot of the stuff for you. This can cut down on what the user is required to know, but there will still be much that he/she will still need to know. Furthermore, the more you know about making maps, the better your maps will tend to be. Therefore, I strongly recommend reading through this whole file. My goal in writting DMapEdit is to make map generation as simple as possible, while still having the ability to do everything you could possible want to do. Having the ability to do exactly what you want is the main goal. If you think you can't do something, you probably can, but just don't know exactly how to go about it. In such a case, read through this file, and if you can't find it here, contact me and I will help you. Please check this file first, though. If it's not in here, and you need to contact me, I will add it to this file (correcting the oversite). At present, I feel that this editor is easier to use than any other out there, while still being nearly equally powerful, and becoming more powerful with every release. If you disagree, and have ideas on how I can make it better (or can just point out what some other editor does better), please let me know. So, just what do all these technical terms mean? Things: Things are all objects in the game, such as barrels, dead bodies, guns, ammo, monsters, player starting points, etc. Walls, doors, elevators, windows, etc are not objects. They are lines.. Lines: Lines are straight line segments from one point to another. They are usually walls, or semi-walls, but not always. Sometimes they represent the edge of a lighted area, or a trigger to activate something elsewhere when crossed by a player. A line is always present where ceiling or floor heights change, such as stairs, windows, etc. Vertexes: All lines run between 2 vertexes. A vertexes is simply a point. Sidedefs: All lines have 2 sides to them, a left and a right side (even though they have no width). A sidedef determines what you will see when you look at the line from that side. It also tells the sector it's facing. Sectors: A sector is the open area between the (lines). You can think of this as a room, too. Sectors describe the floor and ceiling heights and textures, and the lighting conditions of the space. Anytime any of these characteristics changes, a new sector must be created for it to describe it. All sectors must form a closed polygon, and the "outside" area of a map can't be a sector. Blockmap: This is an internal structure that Doom uses to detect wall collisions. Once you make a new map, a blockmap must be generated before it can be played. Nodes: This is another internal structure (a Binary Space Partition tree) used by Doom to figure out what walls are behind what walls, so it knows it doesn't have to draw them. I have no idea how anyone could use such a structure for this purpose, but Doom does seem to work.. :) Segments: A segment is simply a piece of a line (because nodelines often cut a line). This is also internal, and something you don't need to worry about. Sub Sectors: Again, an internal structure of a piece of a sector, in the shape of a convex polygon (less then or equal to 180 degrees bend between all lines, measured on the inside of the shape). PWAD: A PWAD (also known as a 'working wad file'), is a collection of data files all combined into one file, with extention WAD. The file DOOM.WAD is an IWAD file, however. IWAD probably stands for Initial WAD, while PWAD stands for Patched WAD. The first 4 bytes of a WAD file will be IWAD or PWAD, thus identifying it's WAD type. Basically, when you play doom with a PWAD file, it will try to get any data it need from the PWAD, and if it can't find it, it will then load it from the IWAD. E1M1: This is just map notation for the episode and mission numbers. (episode 1, mission 1 in this case). This happens to be the way a header looks in the wad file, and is just an abbriviation, really. Object: An object is a Thing, Vertex, Line, Sidedef, or Sector. Objects are the building blocks the user has to make maps with. ------------------------------------------------------------------------ Ok, running this program is pretty easy. All the files that DMapEdit comes with should all be in the same place. You can run it without it being in the current directory, if you wish. If Doom.wad or Doom1.wad isn't in the current directory, you will need to tell DMapEdit where it can find this file. This is done by giving the path to it with the -i switch, like so: dmapedit -i/doom/doom.wad or c:\wherever\it\is\dmapedit -ic:\and\doom\is\here\ or by adding a line to the INI file like: doom path=c:/doom Note that either '/' or '\' can be used. Also note that there is no space between the '-i' and the path itself or the '='. This path that you give should either point to the directory the IWAD can be found (an IWAD is what the file 'doom.wad' is) or point to the IWAD itself. Dmapedit defaults to VESA SVGA 640x480x256 colors. If you don't have a VESA card but you do have SVGA, run univesa to create a VESA interface for your card. If you don't even have SVGA, why not? A 386+ without a SVGA card? If you want to use a different graphics interface, or resolution, read about the -v switch at the end of this file. Once the program is up and running, you should see a map of episode 1, mission 1. The program defaults to thing edit mode at startup. At this point, you can move things around by pressing the left mouse button on a thing and dragging it to it's new location. Pressing the left mouse button while not on a thing will add a new thing (using the defaults) and placing it when you releast the button. The right mouse button is used to delete a thing. The middle button (if you have one) is used to change the information about a thing, or the default thing if you are not on a thing at the time you press the button. This is the standard mouse interface I use for this program, and editing vertexes and lines works the same way. ------------------------------- [8] How do I play a map I made? ------------------------------- Once you have made a map, you must save it to a PWAD file. Then you start doom from dos like so: doom -file pwad1.wad [pwad2.wad] [pwad3.wad] [...] In this example, you would have saved your PWAD with the name 'pwad1'. If you used the name 'new', you would type: doom -file new.wad Another thing to note about the first example, you can use more than one PWAD file at once. This would be done for files that have different information in them. If they both use the same information (like both having E1M1 in them), you probably shouldn't do it this way, and really don't have any reason to. You would use this for something like pwad1 having E1M1, pwad2 having E1M2, and pwad3 having new sound effects. (by the way, files is [] are optional, if you havn't figure this out yet. You wouldn't actually type the '[' or ']') --------------------- [9] Keyboard commands --------------------- These are all the keyboard commands: (global commands - available in all edit modes) ?: display key commands Arrow keys, home, end, page up, page down: These keys will scroll the map around.. =, +: zoom in -: zoom out _: re-center map alt-q, alt-x, esc: quit and exit editor ins: add (same as left mouse) (see note1) alt-ins: sticky add (see note5) del: delete (same as right mouse button) (see note1) space: change/edit (same as middle mouse button) (see note1) m: mark/unmark selected object alt-m: sticky mark (stretch-box marking) (see note5) 1 - 5: change displayed vertex point size 0: turn off vertex point display t: change displayed things icon size: big, small, off (see note2) \: change displayed lines size (thickness) F1: select thing edit mode F2: select vertex edit mode F3: select line edit mode F4: select sector edit mode F9: misc/advanced options (build nodes, error check, etc) tab: re-configure the mouse buttons s: save map to a PWAD, promting for name first l: load map from a PWAD, promting for name first (see note3) alt-s: save map to a PWAD alt-l: load map from a PWAD (see note3) alt-w: write map to original Doom WAD file (IWAD) alt-r: reload map from original Doom WAD file (IWAD) c: change episode and mission f: change thing display filter (see next section) r: change roundoff level: 1, 8, 16 (default), 32. (see note4) g: change grid display intensity level ., >: increase roundoff level (grid drawn to roundoff level) ,, <: decrease roundoff level n: start a new map from scratch (erase currently displayed map) z: show current statistics (totals, and memory usage) Note1: These are the default mouse buttons. The mouse buttons can be re-configured with the key. Note2: Thing icons can't be turned off while in thing edit mode. There is also a setting that shows circles. This represents the size of the object and is useful to see if monsters overlap, are stuck in walls, etc. Note3: It will try to load a map from the current PWAD. If that map doesn't exist in that PWAD, however, it will load the map from the IWAD. Note4: This is used to round off all map coordinates, so things can be placed with a more symetrical feel. This is also called "snap-to Grid" in some other editors. A value of 1 will not produce any roundoff. The crosshare shows the rounded-off position. The grid display intersections also show the roundoff positions, unless the spacing drops below 8 between the lines, in which case every other line/4th line/8th line/etc will be displayed to meet this condition. This is to not clutter up the screen. Note5: These keys simulate the effect of holding down the equivelant mouse button while moving the mouse around (called dragging). It will remain "stuck" until another key is pressed, or a mouse button. (Thing edit mode) ----- ---- ---- enter: Copy selected Thing to default Thing (Line edit mode) ---- ---- ---- f: flip line (swap left and right sides) (see note6) alt-f: flip line and sidedefs (see note6) Note6: In actuality, the sidedefs are swapped too, so that they seem to be where they were before. In other words, since the left side of the line is now the right side, (and the sidedef hasn't been swapped yet) it will look like, from the users perspective, that the sidedef switched sides, though it didn't really. Thus, alt-f will not swap the sidedefs, but only the vertexes it runs between. (Inside of a window) ------ -- - ------ enter: same as clicking Ok button (if there) alt-q, alt-x, esc: exit out of window (same as clicking Cancel button) tab: move mouse pointer to next button position page-up, page-down: in windows with 2-way scroll buttons, scrolls list ------------------- [10] Pop-up windows ------------------- Pop-up window manipulation has become a little complex, so I figured I should put in a section to cover it. Pop-up windows are rectangles with a yellow boarder that appear with information inside it. There are 2 basic types. The first doesn't have an Ok or Cancel button. This is an informational window, and just gives you information. Pressing any key or clicking the mouse anywhere on the screen will make it go away. The second type is the interactive window (also called edit window window), and will have a Cancel button, and usually an Ok button. To close this type of window, you must click on the Ok or Cancel button. If an Ok button isn't there, making a selection from inside the window will automatically to an Ok operation. The Ok button will exit the window, using the window's current information. Selecting Cancel, however, will ignore anything that occured in the window. Another function these buttons can be used for is for confirmation of some operation you selected. In this case, you must select Ok to proceed. A similar sort of button you may see is the 'big button'. This button also has text inside it, but is white, and is always inside the window. Selecting such a button will perform the action the text describes. Usually, edit windows will have small, circular buttons, which is the main form of doing any 'editing' in the window. Just click the button next to what you are interested in changing. These 'radio' buttons do one of 2 things: switch states ('on' or 'off' condition), or select item. Buttons that select an item will never be filled in. Inactive radio buttons will be displayed as dimmed (dark gray instead of white). This doesn't always mean you can't select them, however. Try clicking on it to see. When editing a group of marked items, only the non-dimmed items will be changed when you select Ok. So, this being the case, you need to be able to change what's dimmed and what isn't. To do this, you can select the button normally, and it will activate automatically, or you can click on the button with the middle mouse button (spacebar) to toggle the active status of the button. Only buttons that can logically be toggled will be allowed to be toggled. ------------------------- [11] Thing display filter ------------------------- Things are not always on every difficulty level. Generally, harder difficulty levels tend to have more monsters running around. The thing display filter is to allow you to display only what you want to display, such as only level 1 things. Using this filter is a little tricky, however. There are 5 different flags used by all things in doom: flag 1: skill level 1 & 2 flag 2: skill level 3 flag 3: skill level 4 & 5 flag 4: deathmatch mode flag 5: deaf monster Skill level 1 being "don't hurt me" and 5 being "Nightmare". If a skill level flag is set, then this thing will appear to a player playing on that skill level. If the deathmatch mode flag is set, then this thing will only appear when playing a deathmatch mode game. Note that this flag is in addition to the skill level flag. If you just set the deathmatch mode flag and leave all three skill level flags cleared, then the thing will never appear in any deathmatch mode game. The deaf monster flag is only useful with monsters. If it is set, then monster will only "activate" (come alive) upon spoting a player or being attacked. If the monster isn't deaf, then it will also "activate" whenever it hears a players weapon being used (even punching air will do it). There are 2 switches for each of these flags in the filter. There are a total of 4 possible combinations for these 2 switches. The first switch is used as a matching state. The second switch is set if you want to force the first switch to match a flag exactly. This may be confusing, so I will detail the 4 possible switch combinations.. Combination 1: both switches off (O O) With this combination, the flag is ignored and not displayed. If all 4 flags have this combination, nothing will be displayed. Combination 2: first switch on, second off (* O) This will display the thing if the flag is set. If the flag isn't set, the thing may still be displayed if another flag with this combination is set. This is a basic OR situation between flags. Combination 3: first switch off, second on (O *) For a thing to be displayed with this combination, the flag must be off. If the flag is on, the thing will not be displayed, regardless of the other flag settings. This is used to hide what you don't want displayed. combination 4: both switches on (* *) With this combination, similar to combination 3, the flag must be on to display this thing. Unlike combination 2, a thing will not be displayed if the flag is off, period. Other flags have no effect on it. Common filter settings: O = off, * = on Display level 1 & 2 things: Skill level 1 & 2: * O Skill level 3: O O Skill level 4: O O Deathmatch mode: O O Display only level 4 things, non-deathmatch mode: Skill level 1 & 2: O O Skill level 3: O O Skill level 4: * O Deathmatch mode: O * Display all things: Skill level 1 & 2: * O Skill level 3: * O Skill level 4: * O Deathmatch mode: * O Display only Deathmatch mode things: Skill level 1 & 2: O * Skill level 3: O * Skill level 4: O * Deathmatch mode: * O Display only things unique to level 4: Skill level 1 & 2: O * Skill level 3: O * Skill level 4: * O Deathmatch mode: O O Personal note: I think it would be an excellent idea for id to have made another flag for 'respawn'. This way you could make certain monsters respawn (appearing at their original starting location), instead of either all monster respawn or none. It would also avoid such things as a second cyber-demon appearing, which really ruins the whole idea behind having respawn in the first place. You could also have different amounts of monsters respawn at different difficulty levels. (for example, 5 at ultra-violence and 15 at nightmare). I can't beleive that adding this would be very hard programming-wise. You have a bunch of empty flags, you have already written the respawn routines.. Wish I knew how to get this idea to id . ------------------ [12] Thing editing ------------------ Editing things is very easy. If you want to move a thing to somewhere else on the map, just click on it with the left mouse button, and drag it to it's new location while holding the button down. To delete something from the map, click on it with the right mouse button. And, to add a new thing to the map, click the left mouse button while the mouse isn't on a thing. (it will be placed when you release the button, so you can drag it around too.) You can tell if you are on a thing by a box around the thing. If you see this box around it, then that is the thing currently selected. Information about this currently selected thing is displayed at the top of the screen. To change the currently selected thing, press the middle button (or the spacebar). This will bring up all information about the thing. To change any of this information, simply select the proper button. If you press the middle button (or the spacebar) while a thing isn't selected, then you can change the default thing's information. The default thing is used whenever you add a new thing to the map. Lastly, pressing the Enter key will scan the selected thing's information into the default thing. ----------------- [13] Line editing ----------------- I have tried to make the line editing mode as useful and intuative as possible. I have also tried to put as many abilities in this one mode as I could. As a result, you shouldn't need to use vertex edit mode very much, if at all. To use this mode effectively, however, you need to know how to use it properly. So, here goes.. When you move the mouse cursor around the screen, it will lock onto the closest line, and the closest vertex, if it's not too far away. If you have a line selected, you can use the spacebar (middle mouse button) to edit that line's characteristics, and it's sidedefs. Also, when a line is selected, information about it is displayed at the top of the screen. Sidedef info is also displayed. Each line has 2 sidedefs (or possible sidedefs, anyway), a left sidedef and a right sidedef. Whichever side of the line the mouse cursor is on is the sidedef that is displayed. When editing the selected line, a small dot will mark this sidedef as well. Note: When a linedef that triggers an event is hilighted, the effected sector(s) are also hilighted, using a dotted lines. Adding a line (left mouse button): A line is added by pressing the left mouse button at the starting point, and releasing the button at the ending point. Pressing the button when a vertex is selected (hilighted) will start the line at this vertex. If a vertex is not selected, a new vertex is added, and becomes the starting point for the line. Releasing the button when a second vertex is selected will make that vertex the ending point. Otherwise, a vertex is added and is used for the ending point. One last possible situation is having a line selected, but not a vertex. When you press the left mouse button here, a vertex is added, spliting the line into two parts. Deleting a line (right mouse button): Simply select the line you wish to delete, and press the button. Doing this will leave a gap where the line was. If you use the vertex edit mode to delete a vertex, it will reroute all the line that went to that vertex to the closest vertex along that vertexes lines (deleting a line in the process). Please note that lines may switch sides from time to time. This is because Doom is very picky about having the 'important sidedef' on the right side. This means that if you only have one sidedef, it must be on the right side, so DMapEdit will flip the line around if needed to make it so. Also, if a line has two sidedefs, and only one sidedef has any textures, it must be on the right side. Again, DMapEdit will make this so. You don't have to worry about these details, just edit your map however you want to, and DMapEdit will make these changes as needed. ------------------- [14] Sector editing ------------------- Once you have all your lines in place, all forming closed polygon shapes, you need to make sectors. Any location (polygon) a player or monster is allowed to be in needs to be a sector. A sector definition tells doom what heights the floor and ceiling is at for the polygon, as well as how much light there is there. If you are making a new map, and have put in all the lines, but have done nothing with the sectors yet, select "generate sectors" from the advanced options menu. This will examine your map and automatically assign a sector to every polygon that needs one. (be sure your lines are set up correctly, however. Use "fix lines" or "error check lines" first) Then, you can simply edit the various sectors to your liking. Sector edit mode is selected with the F4 key. In this mode, the mouse will hilight whatever sector the mouse is in (if the sectors aren't damaged). Information about the sector is displayed at the top of the screen. The spacebar or middle mouse button will let you edit this sector information. Note: When you hilight a sector that is triggered with a linedef(s), the linedef(s) will be hilighted too, using a dotted line. If you want to make a new sector where there currently isn't one (no lines hilight), or want to fix a damaged sector (only some lines hilight), simply press the left mouse button (or insert key) to create a new sector there. It will remove whatever sector(s) were there, if any. The sector will have the characteristics of whatever sector most of the lines seemed to be linked to. If it was totally empty, it will assume the standard sector definition. If you want to remove a sector (making a pillar solid, for example, so a player can't be inside it) simply press the left mouse button (or delete key) while the sector is hilighted. If a sector is damaged for some reason, you should remake it first (left mouse button) and then remove it. In order for a player or monster to fit inside the sector, there must be a different of 7 between the floor and the ceiling. This is the minimum. A difference of 6 will make it impossable to enter the sector. Also, a floor height difference of 3 can be climbed, but a difference of 4 is too high a step to climb. The player can fall down a step of any height. Another option available in sector edit mode is the blend/copy function. You press "B" while in sector edit mode to get the blend/copy setup screen. Information from the hilighted sector is used to fill in information on this screen. You can change the initial sector information to be used, though, on this screen. You will also see adjustment factors to the right. This is how much it will change the initial values by each time. For example, having a floor height of 4, and an adjustment factor of +2 will make the first sector floor height 4, the next 6, the next 8, etc.. Using an adjustment factor of zero will basically perform a copy operation (the initial value never changes). This can be useful to set a bunch of sectors to one light value, or ceiling height, or whatever. If you select the button that's already on, you will turn it off, so that no adjustment factor is selected. When you do this, this Sector characteristic is ignored, and thus not changed when you blend/copy. This can let you change only the floor heights, for example, and not the light or ceiling levels. Or, you can simple change the ceiling to the sky texture for a group of sectors without changing anything else about the sectors. As you can see, this can be quite handy. Once you have the setup set properly, select the Engage button. You will now be in blend mode. The top line will display what values you are currently at. To set a sector to these values, simply click on the sector, and the sector will be updated. This will also adjust each value by it's adjustment factor, and you are now ready to update the next sector. This is very useful for making stairs. Simply click on each stair, in order, until you are done. To get out of blend mode, simply press escape, or the right mouse button (or delete key). To get back to the blend mode setup screen, press "B" again, or the middle mouse button (or spacebar). ------------ [15] Marking ------------ Objects can be marked to perform an operation on them as a group. Marking is done using the 'm' key, or clicking on an object with the marking mouse button. By default, there isn't a mouse button for this, so you will have to reconfigure the mouse buttons with the key. You can also mark objects with a stretch-box by dragging with the mouse button, or pressing 'alt-m'. Objects that you mark will also mark other objects that they affect. For example, if you mark a sector, it will also mark all the lines, sidedefs, and vertexes that sector uses. Thus, you can mark objects in one mode, and then switch to another mode to do an operation on it, such as marking a sector, and then switching to line edit mode to change the lines of that sector. The backspace key will unmark all objects currently marked. With a group of objects selected, you can move the whole group with the add button. You can delete the group (effect depends on the edit mode you are in) with the delete button. After you do a delete, there will not be any objects marked. And finally, you can edit the group of objects (vertexes can't be edited, since they have no properties). You would edit the objects just as if you were editing a single object, except changes will be made to all of the marked objects. To tell what will and won't be changed, the buttons will be normal or dimmed. If it is dimmed, this property will not be changed (changing only occurs when you exit the edit window). If you change something, but then decide you don't want to change this after all, you can toggle the button dimming with the middle mouse button (spacebar). copy. ---------------------------- [16] Making maps from scatch ---------------------------- Map generation starts with putting vertexes and lines where you want them. This lays the foundation for everything else. Once all the lines are in place, you need to make sidedefs for these lines (unless you do so along the way while you are creating the lines). The easiest way to do this is to select the "Fix Lines" options from the advanced options menu (F9). If you already have sidedefs setup, then you should at least error check the lines, just to make sure it's all ok. Once this is done, you need to make all the Sectors. If you have all the sidedefs where you need them, you can use the "Generate Sectors" option from the advanced options menu. This will put make sectors for every polygon on the map. Another method you can use is to simply enter sector edit mode and add sectors manually to each polygon. One advantage to this method is that you don't need to have the sidedefs in place. It will create the sidedefs if it needs to for lines as it goes along. At this point, you have the vertexes, lines, sidedefs, and sectors all created. However, they are all most likely set to standard values (walls are all brown1 texture, sectors are all the same heights and textures, etc), so you will need to go in and set them to the values you want them to be at. By the way, Things can be added at any time along the process of making a new map. It's usually better to do so after the lines are drawn, though, so you know where to put them, but you are the boss. When you have everything set the way you want it, it's time to generate Nodes, and a Blockmap. Making a Blockmap is fairly quick, so you might want to do this first. I also recommend you save your map before you generate these two structure. In fact, I recomment you save your map often! Anyway, once you have made your Blockmap and Nodes, save your map, and enjoy playing your new map! Notes: Maps must have all areas enclosed by lines, forming a polygon. A map with only 3 lines, for example, in an open ended box shape, isn't complete. Keep in mind that a line doesn't have to be a wall. Lines are required anywhere you wish to: change floor or ceiling height change lines angle change wall, floor, or ceiling patterns change lighting change floor hurt-player damage Also, every map should have a starting point for all four possible players. You should also have, minimum, 4 deathmatch mode starting points. And, of course, you should have an exit. ---------------- [17] Misc. notes ---------------- Changing a map's episode and mission number: Suppose you want to change a map from E1M1 to E2M2. How does one do this? Simple. Just press 'C' to 'change map'. Now, select the episode/mission you want it to be. Once you do this, just click outside the window (or press Esc) and now your map has a new episode/mission value. At this point you can save it to a PWAD or whatever. This can be useful for taking several one-map PWADs and putting them all into one big PWAD. -------------------------- [18] Alternate video modes -------------------------- DMapEdit defaults to 640x480x256 colors, vesa svga. If this is a problem, you can try setting up another video mode and/or driver. This is all done with the -v switch. dmapedit -v[driver,]mode Driver: This data is optional. With it, you can tell DMapEdit you want to use another bgi driver, if you have one. Be sure to use only a 256 color mode driver, as this program will not work with any other amount of colors. Also, 640x480 is the recommended minimum resolution. Though you can use lower resolutions (such as 320x200), doing so will have the side effect of everything not fitting on the screen, and it will look very stupid indeed. If you can live with that, however, then knock yourself out. Mode: This is a number, from 0 to however many modes the driver selected has. With vesa.bgi, the following modes are available: 0: 320x200 (VGA/MCGA) (Mode not usable with DMapEdit) 1: 640x400 2: 640x480 (default) 3: 800x600 4: 1024x768 All modes are in 256 colors, since this is required for DMapEdit to work. * vesa.bgi is copyright (c) 1991 Jordan Hargraphix. ----------- [19] Thanks ----------- I'd just like to say thanx to the following people: Paul Hagstrom: for being my internet contact for this product. Now go try it out and see what it's like! James Sterrett: For the very first registration I received. Alistair Brown: For finding that insanity-causing bug in the node generator. I'm recovering quite nicely now.. Rod McCabe: For his letter and ideas. (quite a while ago, though) Pierre Fournier: For tracking down that intermittent bug in the picklist so well for me. I'd see it from time to time, but couldn't figure out how to re-create it, until Pierre came along. DEU authors: For making their editor's source available. I learned a few tricks from it. PWAD creators everythere: For making fun PWADs for me to play when I get bored! My personal favorites at the moment are: Forest13, Deadbase, Fortress, Registered users: For registering! :) Camaron Booth: Beta tester and idea suggestor. joost schuur: Beta tester and idea suggestor. id: For creating Doom in the first place. Great game guys. :)