TODO update, MrTree behaviour improvements
[supertux.git] / TODO
1                                 TODO
2
3 Milestone 2
4 ~~~~~~~~~~~
5 Documents and ideas: http://super-tux.sourceforge.net/milestone2
6 Wiki: http://netpanzer.berlios.de/supertux
7         esp. http://netpanzer.berlios.de/supertux/index.php/Forest
8
9
10 Notes
11 ~~~~~
12 High priority [H]:   milestone goals that should be implemented for next
13                      milestone
14 Medium priority [M]: would be nice to have for next milestone, but should
15                      be secondary to high priority goals
16 Low priority [L]:    things that should be fixed sometime
17 ?: Things that need to be discussed to determine whether or not they should be
18     implemented
19
20
21 Programming
22 ~~~~~~~~~~~
23 --Scons--
24  * [H] Add an install target - done (however scons is creating stupid .sconsign
25                                      files at the install location :-/)
26  * [M] improve opengl check to work on win32 and eventually more strange
27    systems again
28  * [H] Make sure compilation on win32 and cross-compilation works
29  * [M] compile some test executables to test for SDL, SDL_mixer and SDL_image.
30    Also test for version of SDL_mixer and SDL_image
31  * [M] Create a distclean target
32  * [M] Create a dist target
33  * [M] Add instructions to the README
34  * [L] If all of the [H] and [M] issues are fixed, remove autoconf/automake
35  * [L] Take a look if it is possible to make it a bit more quiet. (Similar to
36      linux kernel, samba or jam output would be optimum, ie.
37        C++ build/linux/src/bla.o
38        C++ build/linux/src/blup.o
39        C++ build/linux/src/error.o
40           Error on line xx in error.o: This source contained an error
41
42        g++ -Wall .... -o build/linux/src/error.o src/error.cpp
43
44 --Collision Detection Rewrite (all [H])--
45  * enemies:
46     - implement fish
47     - implement flyingsnowball
48     - implement wingling
49     - implement tree (really?)
50     - bring back stay on platform flag
51  ** implement ability to cary mriceblock (and other objects) around - delayed
52     for  after big commit...
53  * smoke clouds are too fast
54  * rethink slopes collision feedback... tux becomes too slow when walking up
55     and starts jumping when walking down
56  * think about an attachement mechanism for moving platforms
57  * implement paths for the moving platform, implement simple moving platforms
58  * fix bullet speed/behaviour
59  * check if unducking is actually possible or if something is in the way
60  * fix flapping
61  * what to do when stuck under tiles (after using duck-sliding)
62  * do we want multi hit scores again?
63  * tux doesn't stop at igloo anymore
64  * buttjump is deactivated
65  * implement quadtree or grid to speedup collision detection
66
67 --Code Refactoring/Cleanup/Optimisation--
68 [H] make the title using GameSession instead of reimplementing all the stuff
69 [L] rename gameloop.* files to gamesession.*
70 [L] rename GameObject::action to GameObject::update()
71 [L] use physfs for loading files
72 [L] change physics class y-velocity-coordinate to be like all other
73     y-coordinates again (positive y to go down)
74 [M] harmonize to 1 single gameloop that switches between title, worldmap,
75     ingame mode and eventually leveleditor mode
76 [H] introduce a special mode in DrawingContext for objects that want to draw
77     themselfes. This could speed up rendering of tilemaps.
78 [M] Make the gamelogic run in a fixed logical framerate
79
80 --Miscellaneous--
81 [?] think about how to implement scripting, and how to make a simple and easy to
82   use api for the scripting interface
83   (language will probably be lua - just have to figure out how well we can do
84    without OO support in the scripting language.
85    Other candidates are python, ruby and less likely java, mono/.net,
86    surely no own invention, perl or 1 of these c-like scripting languages)
87 [H] Create a "sound object" that is an object or area, that can be placed on the
88     map and constantly plays a .wav file to improve game athmosphere.
89     Good examples would be a water sound which can be placed at waterfalls,
90     a kuckoo sound that can be placed into the wood, bubling sound for lava,
91     ...
92 [?] Create a falling leaves particle system. (I.e. slowly falling leaves in the
93     background) along with nice leaves graphics.
94         - the problem here is that leaves don't fall of the sky and fir trees
95         don't have leaves :-/
96 [H] Add a simple rock object that can be carried around
97 [H] Add a rope object on which tux is able to climb, also add a ? block that
98     emits a rope when hit
99 [H] redo trampolines
100 [H] Buttjump related things
101      - Should kill enemies with a certain range
102         - Done--now needs to be tweaked
103      - Animation (need images)
104      - Should be a powerup item (still to be discussed)
105      - Should break bricks if Tux is on top of bricks, otherwise it should
106        kill enemies within a close range.
107         - After enemy-kill is used, powerup should be removed from Tux
108 [H] Icebullet related things
109      - we should decide on specifics
110 [H] Tux should fall while walking in tiles that have a space between.
111      - Possible solution: reduce Tux's width when checking collision with tiles
112 [H] Graphics
113      - New forest tileset
114      - Badguy sprites
115      - Tux's buttjump animation
116 [M] Save score on per-level basis to make high-score
117 [M] Save time on per-level basis to make low-time-score
118 [M] Add bonus score for extra time left when finishing a level
119 [M] when bumping a special with 2 blocks at once, it won't change direction
120 [M] tux get killed if he kicks a iceblock while at the same time bouncing on
121 [L] The camera does some nasty little jumps if you jumped up on a higher place
122     where the camera didn't completely follow yet and you fall down directly
123     again. This will suddenly raise the camera up.
124 [L] Allow any object to be inside of a [?] box, ie. trampoline or badguy
125     - Not sure if this would be gameplay wise.
126
127 Graphics
128 ~~~~~~~~
129
130 [H] Graphics+Animations for the Yeti
131         (see also http://netpanzer.berlios.de/supertux/index.php/Yeti)
132 [H] Graphics for the 5 keys in the forest world, graphics for the castle door
133     with 5 key holes
134 [H] New tiles for the forest worldmap
135 [H] Create a graphics to visually present reset points. (Maybe a bell that
136     starts swinging once tux touched it?)
137 [M] Add graphics for ropes
138 [L] Create graphics for bubbles and soap (not necessary for milestone2)
139
140 -new enemies need to be designed and added
141
142 Beyond Milestone2
143 ~~~~~~~~~~~~~~~~~
144 - More things than just levels on the worldmap (similar to SMB3)
145 - if we have a logical framerate we could record/play demos by simply storing
146   the pressed keys in each frame...