home *** CD-ROM | disk | FTP | other *** search
/ 4-Ever Doomed / 4-everdoomedcypresssoftware1994.iso / utils / d1_d2 / edmap / builder.txt < prev    next >
Text File  |  1980-02-11  |  8KB  |  187 lines

  1.  
  2. This is the README file for IDBSP10.ZIP - a port of id's BSP builder to 
  3. DOS. The package consists of two programs, IDBSP.EXE and WAD_DWD.EXE; 
  4. source for both is included.  Be warned that my source is VERY UGLY.  This
  5. was literally a "quick and dirty" port.  But, owing to the efficiency of
  6. id's algorithm, the BSP builder is pretty fast!
  7.  
  8. Programs were compiled by DJGPP v1.11m5; that's "DJs port of GCC to
  9. DOS" version 1.11 maint 5, which means GCC v2.5.7.  The programs have the 
  10. DOS extender (GO32) prepended to them, so no support files (other than 
  11. EMU387 if you need coprocessor emulation) are required.
  12.  
  13. Send comments, requests, etc. to Ron Rossbach at
  14. ej070@cleveland.freenet.edu
  15.  
  16. Thanks to:
  17.   Tom Neff (tneff@panix.com) for developing the WIF format
  18.   Matt Fell (matt.burnett@acebbs.com) for the "Unoffical DOOM specs" v1.3
  19.   Colin Reed (DYL@CIX.COMPULINK.CO.UK) and Raphael Quinet for providing 
  20.   the first BSP builder....BSP11x
  21.   DJ Delorie for porting GCC to DOS.
  22.   All the WAD authors and level editor authors out there....keep up the
  23.   great work!
  24.   And of course, John Carmack and the guys at id for releasing the source 
  25.   to their BSP builder!
  26.  
  27. Please use the source code in your own levels editors, utilities, etc.  
  28. Please credit id and myself if you use the code in your programs.  Feel 
  29. free to re-distribute this package, as long as you distribute the WHOLE
  30. package, including source and README, and give credit where credit is due.
  31.  
  32. You may not use these programs or source to create modified levels for the
  33. shareware version of DOOM.
  34.  
  35. DOOM is a registered trademark of id Software, Inc.
  36.  
  37. =========
  38. IDBSP.EXE
  39. =========
  40.  
  41. IDBSP.EXE is a straight port of the NextStep Objective-C source uploaded 
  42. to ftp.uwp.edu in April, 1994 by John Carmack of id.  The program takes a 
  43. DWD file as input and builds a PWAD file which can then be used with the 
  44. -file command line parameter for DOOM.  A DWD file is basically an "ASCII
  45. WAD" file; it is a text file containing descriptions of the vertices, 
  46. linedefs, sidedefs, sectors, and things on a level.  IDBSP takes this 
  47. information and automatically generates the remaining resources needed for
  48. the level - SEGS, SSECTORS, NODES, REJECT, and BLOCKMAP.
  49.  
  50. For this port, I've added two extensions to id's original DWD format:
  51.  
  52.   1) A "level:E?M?" (where ? is the episode and level) directive marks the
  53.   beginning of each map level.  Multiple levels can be included in a 
  54.   single DWD file.
  55.  
  56.   2) Any other WAD resource (demos, pictures, etc) is "included" into the 
  57.   DWD file by a directive "resource :size" (note the space between the end
  58.   of the resource name and the colon), where "resource" is the resource 
  59.   name (like DEMO1, CREDIT, ENDOOM, etc) and size is the total size in 
  60.   bytes the data for the resource will occupy.  When IDBSP encounters this
  61.   directive, it looks for a file called "resource.lmp" (where resource is
  62.   the resource name) in the current directory.  It then pulls this file
  63.   into the PWAD.  No data conversion is performed.  The feature is
  64.   provided mainly for re-building existing PWADs.  Use DMAUD, DMGRAPH, etc.
  65.   to perform data conversion.
  66.  
  67. For more information on the DWD file format, see the WIF spec by Tom Neff
  68. (tneff@panix.com).  IDBSP currently supports id's original DWD format, 
  69. with the two extensions listed above.
  70.  
  71. The command format for IDBSP is:
  72.  
  73.                 IDBSP dwdfile [wadfile]
  74.  
  75. where "dwdfile" is the name of the DWD file, and "wadfile" is the name of 
  76. the PWAD to be created.  If you do not specify "wadfile", TMP.WAD will be 
  77. created. If you specify the name of an existing WAD file, IDBSP will ask 
  78. if you want to overwrite the file.  If you say no, IDBSP will append the 
  79. new information to the existing WAD file.  This lets you build a single 
  80. PWAD from many DWD files.
  81.  
  82. Since I'm new to the DJGPP environment, I'm not sure I got the math 
  83. coprocessor emulation right.  The program works with a coprocessor, but I
  84. don't have a machine to test it with the coprocessor emulation library 
  85. (EMU387).  If you don't have a coprocess on your machine, and want to give
  86. IDBSP a try, you need to set up an envionment variable called "GO32" to 
  87. point to the emulation library.  The command looks like this:
  88.  
  89.             SET GO32=emu library
  90.  
  91. where "library" is the path to the EMU387 library.  For example,  EMU387 
  92. is in the C:\GCC\BIN directory on my machine, so I would use the 
  93. following:
  94.  
  95.             SET GO32=emu c:\gcc\bin\emu387
  96.  
  97. I haven't dived completely into the BSP algorithm used by IDBSP, but the
  98. resulting PWAD files are smaller and somewhat faster than those created by
  99. BSP11x.  As Matt Fell said in the specs, this is probably due to id's BSP
  100. algorithm being tuned to generate a BSP tree with the fewest splits, 
  101. rather than trying to fully balance the BSP tree.  Also, IDBSP provides 
  102. automatic building of the REJECT resource, which will speed up all those 
  103. line of sight calculations the DOOM engine does.  BSP11x currently doesn't
  104. do this.  Of course, the amount of speed-up provided by REJECT depends on
  105. the level creator using the proper linedef attributes (like "blocks 
  106. sound") handle when the monsters are "activated".
  107.  
  108. ===========
  109. WAD_DWD.EXE
  110. ===========
  111.  
  112. WAD_DWD.EXE is a program which takes a WAD file as input and generates a
  113. corresponding DWD file.  The DWD file can then be used as input to IDBSP.
  114. WAD_DWD is necessary since no available DOOM editors create DWD files on 
  115. their own.  For resources other than map levels, WAD_DWD will create a 
  116. file called "resource.lmp" where "resource" is the resource name, in the 
  117. same directory as the DWD file.  All of these files are input for IDBSP.
  118.  
  119. The command format for WAD_DWD is:
  120.  
  121.                 WAD_DWD wadfile [dwdfile]
  122.  
  123. where "wadfile" is the name of the WAD file, and "dwdfile" is the name of 
  124. the DWD file to create.  If you do not specify a DWD file, TMP.DWD is 
  125. created.  All .LMP files are written to the current directory.
  126.  
  127. WAD_DWD does not do any floating point math.  If you have problems running
  128. it on a machine without a coprocessor, see the discussion on the emulation
  129. library and GO32 enivornment variable above.
  130.  
  131. =======================
  132. USING WAD_DWD and IDBSP
  133. =======================
  134.  
  135. To use WAD_DWD and IDBSP to build your own PWADs, do the following:
  136.  
  137. 1) Use any level editor to create your level, and save to a WAD.  You 
  138. don't need to have the editor perform any BSP building.
  139.  
  140. 2) Use WAD_DWD to translate the WAD from the level editor to a DWD file.
  141.  
  142. 3) Use IDBSP to create a new WAD from the DWD file containing all BSP
  143. information.
  144.  
  145. You can also re-build complete PWADs supplied by others, but see CAVEATS 
  146. below.
  147.  
  148. =======
  149. CAVEATS
  150. =======
  151.  
  152. There is one limitation to IDBSP and WAD_DWD that I know of:
  153.  
  154. 1)    DEMOs recorded on levels built with another BSP utility (like 
  155. BSP11x) won't work correctly after the level is re-built by IDBSP.  I 
  156. think this is due to some BSP information (related to enemy/player 
  157. position) being stored in the demo file;  obviously this information is 
  158. invalidated when a different BSP algorithm is used.  This is should only 
  159. be an issue when you re-build PWADs supplied by others.
  160.  
  161. Otherwise, PWADs build with another BSP utility (like BSP11x) re-build 
  162. fine with WAD_DWD and IDBSP.  If the PWADs don't include DEMOs, there are
  163. no problems.
  164.  
  165. To quote John Carmack of id, referring to his BSP builder:
  166.  
  167. "BTW, there IS a bug in here that can cause up to a four pixel wide
  168. column to be drawn out of order, causing a more distant floor and
  169. ceiling plane to stream farther forward than it should.  You can
  170. sometimes see this on E1M1 looking towards the imp up on the ledge
  171. at the entrance to the zig zag room.  A few pixel wide column of
  172. slime streams down to the right of the walkway.  It takes a bit of
  173. fidgeting with the mouse to find the spot.  If someone out there
  174. tracks it down, let me know..."
  175.  
  176. I haven't tracked it down, so the bug has been ported with the rest of the
  177. program.  I haven't actually seen the problem on any levels I've built, 
  178. though.
  179.  
  180. Please send me an e-mail if you uncover any other problems.  Also, source 
  181. is included for those with strong stomachs.  :-)
  182.  
  183. I hope you enjoy these programs....hopefully they will help with 
  184. incorporating complete BSP functionality into the level editors.  
  185. Happy DOOMing!
  186.  
  187.