Update TODO list, release targets
[tennix.git] / TODO
blob51e82eb64b0c0561d053250a8a4a61f9c3b1804f
1 Todo and Idea List for Tennix
2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 Tennix 2009 Edition (2.0)
5 ~~~~~~~~~~~~~~~~~~~~~~~~~
7 Target release date: 19.02.2009
9 RELEASE-CRITICAL
11  3. Always save running game and allow to restart later
12     (fwrite GameState, BUT check for input issues and pointers!)
13  4. Make AI player a bit more intelligent & beatable
14 10. Clean-up the menu appearance / style to be more consistent
15     (remove buttons as much as possible and replace with gfx)
17 HIGH-PRIORITY
19  1. Proper collision detection for ball <-> racket
20     (Different sound + random movement when edge hit)
21     Maybe: make racket less visible until power value is reached
22  7. Allow navigating menu with joystick / keyboard in addition to
23     mouse ("cursor" state that is modified instead of directly
24     using the mouse my mx coordinates)
25  8. Flip coin to determine which player serves
26     (Using the Animation framework + some inkscape'd pictures)
28 LOW-PRIORITY
30  2. Give a visual clue where the ball goes when serving (blinking)
31     (Only when power reaches a certain level)
32  5. Rain moves ball in the negative direction (z -= RAINSPEED)
33  6. Reduce current "power" value when moving in Y direction
34  9. Retrieve the ball when it goes offscreen or into the net
35     (Either via Balljunge mode, long referee hand or "hand of god")
38 ==================================================================
39 ANIMATION FRAMEWORK
40 ==================================================================
42              FROM --------------> TO
43                position (grav+x/y)
44                        zoom
45                      rotation
46                     opacity (??)
49                + "tween functions" (sin, 1-p, exp, ...)
51 ==================================================================
52 MENU AND NAVIGATION (COSMETIC)
53 ==================================================================
55  -> Make options menu same style as main menu
56  -> add picture to left side of main menu
57  -> NICE TO HAVE:
58     Physikalischer Tennis-ball im Hauptmenü zum herumspielen
60 ==================================================================
61 PHYSICAL PROPERTIES
62 ==================================================================
64 GROUND
65   * Restitution
67 RACKET
68   * Restitution
69   * "power"?
71 BALL
72   * (maximum) Speed (or: speed curve)
73   * Restitution
74   * Elasticity (???)
76 ==================================================================
77 PARTY MODE AND INPUT ISSUES
78 ==================================================================
80 Input selection like Fifa 96 (left / right)
81 Proper gamepad axis support (can we do this in general?)
82 Tournament config / setup / frontend (GTK+/Qt/[...]?)
84 read keyboard input mappings from config file and generate bindings
85 dynamically or even allow new bindings configured in the UI
88 ==================================================================
89 CAREER MODE
90 ==================================================================
92   * Ball + racket buying/selling/upgrading
93   * Schläger: upgrades [name, verbesserung, kosten, haltbarkeit]
94   * Person, Training: Laufgeschwindigkeit, Vorhand/Rückhand
95   * add wear (abnutzung) to ball and racket, so one has to buy new
96     stuff every now and then ("design charge" vs "current charge")
99 ==================================================================
100 LOCATIONS
101 ==================================================================
103   * Weather-verlauf pro location gegeben über W-vtlg. mit anschl.
104     berechnung des wetterverlaufs über simulierte stichprobe
107 ==================================================================
108 IN-GAME FX
109 ==================================================================
111  * Grafische Darstellung der hit points des Balles am Ground
112  * Wind (modifies the ball movement)
113    Wind darstellen über die rot-weiße "Windfahne"
114  * Snow (christmas edition?)
115  * Sunshine (=current, normal behaviour)
117 Schiri spannt Schirm auf, wenns es regnet
119 Shadow computer-generiert?? (und für schläger zusätzlich?)
120 Shadow x2/x4 wenn Nacht-Modus (weil scheinwerfer!!)
122 Kleinere Schläger, dafür mehr Sprites für die Animation
123 Schläger einfärben per SDL möglich? (HUE-verschiebung)
125 Sound effect groups: Group the same types of sounds (e.g. voice,
126 racket, ground) in one sound "GROUP" that shares a channel.
128 Trainings-Modus mit Zielscheibe
130 Möglichkeit, ans netz zu gehen, aber dann kann man sich nur mehr
131 einen kleine bereich auf- und abbewegen (by mario).
133 ==================================================================
134 TECHNICAL DETAILS
135 ==================================================================
137 librsvg for rendering the SVG source files in-game instead of
138 shipping pre-rendered PNG files (would allow us to modify XML)
140 "Satz vom sportlichen Statistiker" (add statistics features to AI)
142 Garbage collector für c/c++?
144 umsteigen auf c++?
146 ==================================================================
148 CC-Licensed photos from Flickr:
149 Public Tennis Court: http://flickr.com/photos/dan4th/1387725497/
150 Tennis mit Palmen: http://flickr.com/photos/a2gemma/251846846/
151 Melbourne Tennis-Stadium: http://flickr.com/photos/snips/32925154/
152 Tennis Court Nightly: http://flickr.com/photos/exfordy/394570878/
154 Tennis in der wueste: http://flickr.com/photos/mthird3rd/471720012/
156 click sound: http://freesound.iua.upf.edu/samplesViewSingle.php?id=34099
157 rain: http://www.freesound.org/samplesViewSingle.php?id=34067
159 MAEMO WISHLIST
160 ~~~~~~~~~~~~~~
161 Fix sounds (wav, mp3? - ogg doesn't seem to be supported)
162 Widescreen support - 800x480 (make "outer areas" input-accepting)
165 Brainstorming
166 ~~~~~~~~~~~~~
167 Make sound deactivatable (or sound volume settings?)
168 User-settable "sets to win" (2 or 3)
169 Highscore list
170 Setting player names
171 Change between full screen and windowed mode in Windows
172 Implement tie break
173 Implement "hit in the right area on serving"
174 Correct serve repeat when serving into the out