TODO 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. - create Web repository for sources, patches,
  2. news, and pointer to doom-editing mailing
  3. list.
  4. - get DOOM Public License from id
  5. -----------------------------------------------
  6. - remove m_fixed, switch to floating point
  7. More stable, and prolly even faster.
  8. - make SCREENWIDTH/HEIGHT work at startup?
  9. Well, the HUD/STBar stuff is tied to the
  10. scales implied by the graphics. Rather do
  11. GLDOOM and use texture mapping.
  12. - fix aspect ratio?
  13. 320x200 is nothing viable nowadays.
  14. A 320x240 base (4:3) would be a lot better.
  15. See above on width/height.
  16. - limited look up/down by y-shearing?
  17. Prolly not worth it, rather switch to GLDOOM.
  18. - switch to C++?
  19. The action function pointers have varying
  20. argument lists (no parameter, one, etc.).
  21. C++ doesn't like that much. A major rewrite.
  22. - switch to doommain.c plus libdoom? Have
  23. libref, libgame etc.?
  24. Another major rewrite.
  25. - use XFree86 DGA, prolly not that much faster
  26. than MIT SHM, but allows for directly sampled
  27. mouse (and even freelook). Recommended for
  28. GLDOOM.
  29. - put together an accompanying developer toolkit
  30. source distribution: DEU, RMB, BSP for Linux/X.
  31. - move info.h, info.c, sounds.h, sounds.c and
  32. other data to a separate lump in the WAD,
  33. or into a libgame.so, to separate the
  34. generic stuff (refresh, I/O) from the
  35. DOOM specifics.
  36. - decide whether precaching all sounds is
  37. better than retrieving and releasing
  38. every so often. DOOM seems to do that
  39. frequently (8bit stuff, originally for
  40. DOS), and the Linux sound is 16bit
  41. (conversion in the mixing, requires
  42. some padding) - we prolly got the memory
  43. to spare.
  44. - 16bpp CLUT. The lightmaps and the
  45. framebuffer could be changed to switch
  46. to 64K colors. Prolly better to do
  47. GLDOOM right away.
  48. - remove checks for commercial etc., in
  49. non-essential issues (enabling PWAD's).
  50. - change (simplify) determination of
  51. sky texture (done by game version).
  52. Explicit?
  53. - remove all game version checks
  54. - different handling of Demo - don't
  55. exit on "different game version"
  56. - how about shareware/retail "You are here"
  57. intermission animation? Wasn't in
  58. commercial (DOOM 2).
  59. - double shotgun in DOOM1, all weapons with
  60. shareware
  61. - checks for required lumps. We need fallbacks
  62. for lumps that are not present, that is,
  63. default sounds etc. to be used instead,
  64. or removing THINGS w/o sprites etc.
  65. - client/server? I'd suggest ripping off some stuff
  66. from the abandoned IBM WebView project
  67. - Blockmap
  68. The BLOCKMAP lump might be (partly) redundant,
  69. as the BSP allows for clipping (except certain
  70. LineDefs that will not spawn Segs).
  71. - LOS
  72. REJECT and intersection based LOS checking could be
  73. done using the BSP. In case of REJECT, certain
  74. monster AI special effects would be lost, though.
  75. - correct handling of height in collision. This is
  76. not done, and the checks are scattered around in
  77. many places. It does require handling of "player
  78. on top of monster" situations, too - we have to
  79. make sure the players falls off far enough to
  80. avoid getting "stuck in monster".
  81. - remove obsolete menus (Detail. Music Volume?)
  82. - clip explosion range damage (and sprites) using
  83. REJECT? That is, if one Sector/SSector not
  84. visible from the other, do not apply damage,
  85. not render sprite if player in other sector.
  86. Hmmm - explosion behind small pillar might not be
  87. visible at all, but do we care?
  88. - Ungraceful and untimely demise of Linuxdoom (core
  89. instead of I_Error) will leave idle sndserver
  90. processes in your system, blocking /dev/bsp.
  91. A timeout on lack of input for "sndserver"?
  92. - threaded sndserver? SHM mixing buffer?
  93. Or internal, timer-based?