home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 27 / amigaformatcd27.iso / -websites- / amidoom / doomsrc.txt < prev    next >
Text File  |  1998-02-11  |  4KB  |  79 lines

  1.  
  2. Here it is, at long last.  The DOOM source code is released for your
  3. non-profit use.  You still need real DOOM data to work with this code.
  4. If you don't actually own a real copy of one of the DOOMs, you should
  5. still be able to find them at software stores.
  6.  
  7. Many thanks to Bernd Kreimeier for taking the time to clean up the
  8. project and make sure that it actually works.  Projects tends to rot if
  9. you leave it alone for a few years, and it takes effort for someone to
  10. deal with it again.
  11.  
  12. The bad news:  this code only compiles and runs on linux.  We couldn't
  13. release the dos code because of a copyrighted sound library we used
  14. (wow, was that a mistake -- I write my own sound code now), and I
  15. honestly don't even know what happened to the port that microsoft did
  16. to windows.
  17.  
  18. Still, the code is quite portable, and it should be straightforward to
  19. bring it up on just about any platform.
  20.  
  21. I wrote this code a long, long time ago, and there are plenty of things
  22. that seem downright silly in retrospect (using polar coordinates for
  23. clipping comes to mind), but overall it should still be a usefull base
  24. to experiment and build on.
  25.  
  26. The basic rendering concept -- horizontal and vertical lines of constant
  27. Z with fixed light shading per band was dead-on, but the implementation
  28. could be improved dramatically from the original code if it were
  29. revisited.  The way the rendering proceded from walls to floors to
  30. sprites could be collapsed into a single front-to-back walk of the bsp
  31. tree to collect information, then draw all the contents of a subsector
  32. on the way back up the tree.  It requires treating floors and ceilings
  33. as polygons, rather than just the gaps between walls, and it requires
  34. clipping sprite billboards into subsector fragments, but it would be
  35. The Right Thing.
  36.  
  37. The movement and line of sight checking against the lines is one of the
  38. bigger misses that I look back on.  It is messy code that had some
  39. failure cases, and there was a vastly simpler (and faster) solution
  40. sitting in front of my face.  I used the BSP tree for rendering things,
  41. but I didn't realize at the time that it could also be used for
  42. environment testing.  Replacing the line of sight test with a bsp line
  43. clip would be pretty easy.  Sweeping volumes for movement gets a bit
  44. tougher, and touches on many of the challenges faced in quake / quake2
  45. with edge bevels on polyhedrons.
  46.  
  47. Some project ideas:
  48.  
  49. Port it to your favorite operating system.
  50.  
  51. Add some rendering features -- transparency, look up / down, slopes,
  52. etc.
  53.  
  54. Add some game features -- weapons, jumping, ducking, flying, etc.
  55.  
  56. Create a packet server based internet game.
  57.  
  58. Create a client / server based internet game.
  59.  
  60. Do a 3D accelerated version.  On modern hardware (fast pentium + 3DFX)
  61. you probably wouldn't even need to be clever -- you could just draw the
  62. entire level and get reasonable speed.  With a touch of effort, it should
  63. easily lock at 60 fps (well, there are some issues with DOOM's 35 hz
  64. timebase...).  The biggest issues would probably be the non-power of two
  65. texture sizes and the walls composed of multiple textures.
  66.  
  67.  
  68. I don't have a real good guess at how many people are going to be
  69. playing with this, but if significant projects are undertaken, it would
  70. be cool to see a level of community cooperation.  I know that most early
  71. projects are going to be rough hacks done in isolation, but I would be
  72. very pleased to see a coordinated 'net release of an improved, backwards
  73. compatable version of DOOM on multiple platforms next year.
  74.  
  75. Have fun.
  76.  
  77. John Carmack
  78. 12-23-97
  79.