TODO 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. Before doing any non-trivial, please discuss it first in the IRC channel
  2. (channel #sc2 at irc.freenode.net), or the mailing list
  3. (sc2-devel@lists.sourceforge.net). Be sure to be in agreement with the
  4. people actually working on the project; it would be a shame if you put a lot
  5. of effort into something, and then having to find out it won't be accepted
  6. into the cvs tree. Note that v1.0 will pretty much be a straight port,
  7. with no gameplay-altering features added.
  8. Serious bugs (crash the game, high priority):
  9. - Communication screens nonrepeatably but inevitably hang the system. This
  10. is probably a deadlock issue.
  11. - Often more probable when heavy color table transformations are going on
  12. - Load/save code doesn't work perfectly, hangs sometimes when after loading
  13. trying to enter some star first time etc
  14. - OpenGL mode might cause lockups when entering a star system, while
  15. pure SDL mode does not; can others confirm this?
  16. Glitches (don't crash the game, medium priority):
  17. - The melnorme don't charge for fuel when you ask "fill 'er up"
  18. Instead, they pay you a Credit.
  19. - Autopilot indicator keeps blinking when entering combat, when autopilot
  20. was on.
  21. - momentary slowdown of scrolling in hyperspace about once per second
  22. You can see this if you look very closely, or increase the resolution of
  23. the frame counter to 10 times per second and start with -ttl.
  24. - When landing to planet surface, crossfaded image is wrong compared to
  25. landing position (and so 'flashes' when crossfade ends)
  26. - Flashing rects aren't perhaps always exactly the size of actual 3do version,
  27. it should be checked (for example when selecting ship in fullgame battle)
  28. - In melee, after battle, the game crashes.
  29. The ship icon is used when already freed. This happens because the old
  30. 3DO code used to save the entire selection window as one image, while
  31. Chris' new code redraws after each round.
  32. Possible solutions:
  33. - revert to the old behaviour
  34. - delay the free until the memory is really no longer needed.
  35. Make sure that the memory is always freed, so no memory leak is
  36. introduced.
  37. - reload the icon when needed
  38. It looks like the same bug is present for the full game, though it isn't
  39. fatal there (the memory is freed but not yet overwritten).
  40. Addition 2002-10-23: I commented out the free, so that the game wouldn't
  41. crash anymore. This means the memory will not be freed until after the
  42. complete battle (not just one fight). There's no permanent memory leak
  43. though.
  44. - OpenAL sound code problems:
  45. - Some unimplemented functions (for oscilloscope and dialogue seeking)
  46. - Linux OpenAL implementation sucks, so for now we are using SDL_mixer
  47. on that platform.
  48. - Volume levels aren't maybe exactly as they should
  49. - Crashes if no audio device available
  50. - Color table transformations are very slow.
  51. - We should try to get rid of excessive creation of new threads
  52. - Circles of influence aren't shown the first time (after load?) a player
  53. examines the starmap.
  54. - Selling bio data gives an incomplete message: 'The 1000' [nothing].
  55. - When out of fuel: "Fill all my fuel tanks to maximum capacity" ->
  56. "Your ship's capacity is insufficient to hold that much fuel"
  57. - Melee zooming may bug a little, ship sometimes flashes as big and then
  58. small again (some 3DO owner should check does this happen in original)
  59. - Earth color can vary between different runs, it should be always blue
  60. when not being near of it
  61. - In Linux, when the audio device isn't available, you can play the game,
  62. but it will hang on termination
  63. - Subtitles in conversation will sometimes hang off the end (e.g. the
  64. Ilwrath reacting to the Ur-Quan Drone) or not appear at all (e.g. the
  65. Yehat).
  66. - ZFP graphics synchronisation messed up when fast forwarding speech
  67. - Melee menu's 5x5 ship selection grid doesn't show up always
  68. - On win32, works with release build, not debug
  69. - On linux, works with SDL_mixer, not OpenAL
  70. - When entering to star system, graphics might go wild
  71. (doesn't draw background so leaves trails, etc)
  72. - Currently some sound effects are perhaps from PC version.. 3DO ones should be
  73. extracted to check/fix this
  74. Implementation bugs (low priority):
  75. - Scaling code problems:
  76. - sai, supersai doesn't work for >16bpp
  77. - bilinear is only implemented under opengl
  78. - opengl misses all other modes than bilinear
  79. - do them with software and/or pixel shader hw?
  80. Stuff still to do (large):
  81. - add a Key Jamming program
  82. - add some way to configure your keys
  83. - add some way to configure the PC/3DO/other choices.
  84. - music should be selectable track by track
  85. - Actually implement the differences between PC and 3DO versions, including
  86. the alternate scripts (even the basic dialogue is not identical)
  87. - make stuff endian-safe
  88. In particularly 24-bits scaling is known to be unsafe.
  89. Furthermore, saving and loading games uses cread and cwrite, which is
  90. not endian-safe, and which is writing out values of heap pointers. This
  91. really should be cleaned up just in general and made endian safe to boot.
  92. - 3d planet view when entering orbit
  93. - some packaging system for resources. zlib looks like something
  94. which is suitable for this.
  95. - reconcile all of the differences between the voice (3DO) script and the
  96. text script, then do it all again for the PC version. This will involve
  97. extensive poking around the 3DO game to make sure that the Human Captain's
  98. lines are all correct, too.
  99. - Match timing between subtitles and speech clips
  100. - Intro and end credits (both 3DO and PC version ones)
  101. - add an install program (in particularly for Windows).
  102. How to handle the libraries?
  103. - Configuration and saved games should be written at ~/.sc/ for example, so that
  104. game can be installed globally for many users.
  105. Stuff still to do (medium size):
  106. - oscilloscope
  107. - loading teams in melee
  108. - pixel-perfect collision checks
  109. - remove libtool dependancy
  110. This will probably mean the empty dummy.c files can be removed too.
  111. (note that src/sc2code/dummy.c DOES contain data)
  112. - lines and colouring of planet surface display when scanning.
  113. Its speed isn't correct either.
  114. - get all code to compile without warnings, when the most strict
  115. checks are performed (not just -W -Wall in gcc)
  116. - try to speed up resource loading. It looks to be much slower now
  117. than it needs to be.
  118. - Convert bulky media files into more compact representations
  119. - planet surface smoothing
  120. - Proper uninitialization of everything when quitting
  121. - Currently pretty nonexistant, got only some atexit callbacks
  122. Stuff still to do (small):
  123. - make sure save files are independant of endianness, so that Mac savefiles
  124. can be used on the pc (and the other way around).
  125. - Also remove the values that are pointers into the heap, since those get
  126. cached and restored by the load routine anyway.
  127. - make a file types.h, which defines non-confusing integer types.
  128. There are at the moment 3 systems: int16, DWORD, and Sint16.
  129. I suggest we keep int16, as 'word' is confusing. Sint16 is an SDL define
  130. and should only be used in SDL calls.
  131. Questions:
  132. - remove src/sc2code/test.c?
  133. - Is there some way to automatically do CRLF translations on commits,
  134. with the -t and -f options in cvswrapper disabled by sourceforge?
  135. - What is the displist stuff for? Is it needed at all?
  136. - are there still threads killing themselves instead of just exiting?
  137. Answer: "find . -name \*.c | xargs grep Killthread" says "no."
  138. - w_memlib used (now commented out) MS Windows functions to show messages
  139. when memory couldn't be allocated. If we want to have those return, some
  140. work will have to be done. If not, there's some dead code to remove.
  141. - The functions like HMalloc don't guarantee success, so checks should be
  142. done, and are even done in some places. But it might make more sense to
  143. let HMalloc abort the program if it fails (there's little to do anyhow),
  144. so we can rely on HMalloc returning a non-NULL value.
  145. If we want, we could allocate a block of reserve memory at the start,
  146. which we can free when no more memory is available, to allow an emergency
  147. save.
  148. - How about an ISO image for a self-contained linux CD which boots into SC2?