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