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