4 This is a list of tasks and issues that might be worth to implement or
5 fix. This list is however not an authorative list of things that must
6 be done, its a collection of random things that pop up during
7 development, therefore not everything in here might be well thought
8 out or worth to implement. Use your brain before implementing anything
9 on this list and always think about how useful a new feature would be
10 in the context of the whole game or if a potential performance
11 enhanchment, actually enhanchmes anything at all.
16 * make code clean: "-O2", "-g3",
27 "-Winit-self", # only works with >= -O1
28 "-Wno-unused-parameter",
30 * remove overuse of multi-inheritance
32 * remove overuse of friend'ship
34 * maybe mark interfaces as interfaces (ISerializable or SerializableInterface)
36 * split files with multiple classes into multiple files with one class each
38 * static vs anonymous namespace
40 * check the code with Valgrind
42 * use Vector in Physics for 'a' and 'v'
44 * replace random generator with mersene twister and/or move to external/
46 * write/finish scripts for include sorting and include guard checking that
47 can be run automatically
49 * md5.hpp and random_generator.hpp could go to external/
51 * write scripts to automatically check for:
53 - all includes are relative to top level dir
55 - include guards are proper
60 * GameObject::RemoveListenerListEntry: Ughs, somebody trying to
61 implement a list class within in the GameObject?!
63 * add --datadir DIR (data/) and --userdir DIR (~/.supertux/)
65 * make gravity a constant
67 * funky side effect of too much global variables: when having a
68 savegame with large or firetux and then starting that game, Tux in
69 the menu background will grow and be visible that way for a fraction
72 * rename Vector -> Vector2f
74 * get rid of global SDL_Screen* screen variable
76 * identify all global variables and make them ugly (g_ or globals::)
78 * get rid of SCREEN_WIDTH/SCREEN_HEIGHT
80 * is version.h actually needed?
82 * resolution menu entry moves the wrong way around
84 * having dictionary_manager in Lisp is extremely ugly
86 * enforce proper naming of files to match their class
88 * get rid of NDEBUG and conditional compilation, these should be
89 reserved for a few tiny cases, not spread all over the code
91 * split particlesystem_interactive
93 * Renderer::apply_config() needs to handle fullscreen switching
95 * collect all manager classe into globals.hpp
97 * more moving directories around?
110 for generic squirrel code
115 for scripting wrapper code
119 * implement PNG screenshot
121 * GL_ARB_texture_non_power_of_two returns 1 on MatroxG450, while it
122 returns "Missing" in glewinfo, something wrong
124 * having hitbox in Sprite is fugly
128 * implement surface and/or sprite scaling (MipMaps?)
130 * add code that compares the last Log line with the current, if they
131 are the same reject them and just output something like:
133 * last line has been repeated X times
135 * file naming is inconsistent: some times we use '_' to separate
136 words, sometimes we don't
138 * implement: http://standards.freedesktop.org/menu-spec/menu-spec-latest.html
140 * workaround for Ubuntu pulseaudio/OpenAL brokeness:
145 * peaking up/down doesn't work properly
147 * peaking left/right should make Tux look into that direction (up/down to, needs new sprites)
149 * add pipe graphics that makes a 90 degree turn
151 * keep possible future SDL1.3 upgrade in mind
153 * cleanup scripting interface
155 * remove cloud tiles, replace with decal
158 Subversion->Git/Mercurial/Bzr Move
159 ==================================
161 * right now a switch doesn't seem to be worth it
163 * core issue right now isn't SVN, but old SVN version on lethargik.org
164 (lacks merge tracking and issues with viewvc)
166 * cleanup SVN to make import into other version control systems possible:
168 - Should we merge trunk/supertux-milestone1 and trunk/supertux when switching to Git/Hg/...?
170 Mistakes: incorrect branch creation: r5201-5207
173 tags/supertux # unknown
179 branches/cobble # unknown
180 branches/milestone1 # unknown
181 branches/new-collision-detection # unknown
182 branches/README # documentation that will be lost in conversion
183 branches/supertux # unknown
184 branches/supertux_0_1_1_branch
185 branches/supertux-box2d # mathnerd (trash)
186 branches/supertux-editor-newdrawing # editor
187 branches/supertux-editor-newdrawing2 # editor
188 branches/supertux-milestone1-olpc # supertux-milestone1
189 branches/supertux-milestone2-grumbel # supertux
190 branches/supertux-nogl # supertux(?)
191 branches/supertux-sharp # another supertux editor
192 branches/unison-video # ???
193 branches/vendor # ??? CVS crap
195 trunk/cobble # some editor?
196 trunk/CVSROOT # ??? CVS crap
197 trunk/htdocs # htdocs
203 trunk/supertux-editor
204 trunk/supertux-milestone1
205 trunk/supertux-portable
213 * lack of sparse/narrow/shallow checkout, this means initial checkout
214 will be 200MB instead of 100MB
216 * no free hoster that allows >1GB repositories (haven't checked all,
217 but those I did came out way short) -> could use lethargik.org
219 * some free hosters that might allow >1GB repositories don't allow
220 having multiple repositories
222 * git submodule doesn't seem to be quite ready to replace our
223 trunk/supertux, trunk/supertux-editor, trunk/media/, ... layout as
224 it for example doesn't support automatic tracking of HEAD from the
225 remote repositories, it also feels rather hacky and not properly
228 * lack of metadata versioning, if you delete a branch in git that you
229 haven't merged, then its gone after the next gc/repack (+ two weeks
230 time limit it seems), in SVN on the other side you can checkout the
231 way the tree was at a specific date, its impossible to lose history
232 unless you hack the repository
238 * calculate the size of an background image:
240 (parallax - 1) * screen_size + level_size
241 ----------------------------------------- = image_size
244 * how to calculate the exact position of a background image so that it
245 looks correct on different magnifications?