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 Subversion->Git/Mercurial/Bzr Move
156 ==================================
158 * right now a switch doesn't seem to be worth it
160 * core issue right now isn't SVN, but old SVN version on lethargik.org
161 (lacks merge tracking and issues with viewvc)
163 * cleanup SVN to make import into other version control systems possible:
165 - Should we merge trunk/supertux-milestone1 and trunk/supertux when switching to Git/Hg/...?
167 Mistakes: incorrect branch creation: r5201-5207
170 tags/supertux # unknown
176 branches/cobble # unknown
177 branches/milestone1 # unknown
178 branches/new-collision-detection # unknown
179 branches/README # documentation that will be lost in conversion
180 branches/supertux # unknown
181 branches/supertux_0_1_1_branch
182 branches/supertux-box2d # mathnerd (trash)
183 branches/supertux-editor-newdrawing # editor
184 branches/supertux-editor-newdrawing2 # editor
185 branches/supertux-milestone1-olpc # supertux-milestone1
186 branches/supertux-milestone2-grumbel # supertux
187 branches/supertux-nogl # supertux(?)
188 branches/supertux-sharp # another supertux editor
189 branches/unison-video # ???
190 branches/vendor # ??? CVS crap
192 trunk/cobble # some editor?
193 trunk/CVSROOT # ??? CVS crap
194 trunk/htdocs # htdocs
200 trunk/supertux-editor
201 trunk/supertux-milestone1
202 trunk/supertux-portable
209 * lack of sparse/narrow/shallow checkout, this means initial checkout
210 will be 200MB instead of 100MB
212 * no free hoster that allows >1GB repositories (haven't checked all,
213 but those I did came out way short) -> could use lethargik.org
215 * some free hosters that might allow >1GB repositories don't allow
216 having multiple repositories
218 * git submodule doesn't seem to be quite ready to replace our
219 trunk/supertux, trunk/supertux-editor, trunk/media/, ... layout as
220 it for example doesn't support automatic tracking of HEAD from the
221 remote repositories, it also feels rather hacky and not properly
224 * lack of metadata versioning, if you delete a branch in git that you
225 haven't merged, then its gone after the next gc/repack (+ two weeks
226 time limit it seems), in SVN on the other side you can checkout the
227 way the tree was at a specific date, its impossible to lose history
228 unless you hack the repository