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