From e07ce5808bea5e461b845e9b40002187d89e6dc0 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Wed, 27 Aug 2014 22:31:22 +0200 Subject: [PATCH] Deleted TODO and merged it into http://supertux.lethargik.org/wiki/TODO-List --- TODO | 231 ------------------------------------------------------------------- 1 file changed, 231 deletions(-) delete mode 100644 TODO diff --git a/TODO b/TODO deleted file mode 100644 index b0e77e4eb..000000000 --- a/TODO +++ /dev/null @@ -1,231 +0,0 @@ -SuperTux TODO -============= - -This is a list of tasks and issues that might be worth to implement or -fix. This list is however not an authorative list of things that must -be done, its a collection of random things that pop up during -development, therefore not everything in here might be well thought -out or worth to implement. Use your brain before implementing anything -on this list and always think about how useful a new feature would be -in the context of the whole game or if a potential performance -enhanchment, actually enhanchmes anything at all. - -Coding Standard Stuff -===================== - -* remove overuse of multi-inheritance - -* remove overuse of friend'ship - -* maybe mark interfaces as interfaces (ISerializable or SerializableInterface) - -* split files with multiple classes into multiple files with one class each - -* Decide what to do with magic constants of objects (static vs anonymous namespace vs lisp property) - -* check the code with Valgrind and profilers - -* use Vector in Physics for 'a' and 'v' - -* replace random generator with C++11 stuff - -* md5.hpp and random_generator.hpp could go to external/ - -* write/finish scripts to automatically: - - - make all includes relative to top level dir - - - sort includes (.hpp file, then system includes, then other project files) - - - include guards proper and of the form HEADER_SUPERTUX_${PATH_TO_FILE}_HPP - - - remove trailing whitespace - -TODO -==== - -* implement a system that allows to attach comments to specific regions in a level - -* implement a tool to "screenshot" a complete level - -* GameObject::RemoveListenerListEntry: Ughs, somebody trying to - implement a list class within in the GameObject?! - -* make gravity constant - -* rename Vector -> Vector2f - -* get rid of SCREEN_WIDTH/SCREEN_HEIGHT overuse, give them a proper name at least - -* resolution menu entry moves the wrong way around - -* having dictionary_manager in Lisp is extremely ugly - -* enforce proper naming of files to match their class (SomeClass -> some_class.?pp or so) - -* file naming is inconsistent: some times we use '_' to separate - words, sometimes we don't - -* more moving directories around? - -addon/ -audio/ -control/ -gui/ -lisp/ -math/ -physfs/ -sprite/ -util/ -video/ -squirrel/ - for generic squirrel code -supertux/ - worldmap/ - trigger/ - scripting/ - for scripting wrapper code - badguy/ - object/ - -* implement PNG screenshot - -* having hitbox in Sprite is fugly - -* add code that compares the last Log line with the current, if they - are the same reject them and just output something like: - - * last line has been repeated X times - -* implement: http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html - -* peaking up/down doesn't work properly - -* peaking left/right should make Tux look into that direction (up/down to, needs new sprites) - -* cleanup scripting interface - -* replace cloud tiles with decals - -* add support for automatic scrolling backgrounds - -* add direct reading of Vector2f to Reader/lisp - -* refactor Camera code, break ugly long functions into pieces and such - -* allow fully custom magnification levels from command line (maybe GUI - to if there is a proper/easy way to let the user enter numbers) - (--magnification or -g WIDTHxHEIGHT:ASPECTX:ASPECTY@MAGNIFICATION) - -* use AnchorPoint in Background instead of Alignment - -* allow gradients to parallax scroll like Background (make it optional) - -* add multicolored gradients (see Windstille source code, which can deal with Gimp gradients) - -* fix alpha blending in the SDL renderer, currently all sprites (Tux, - etc.) appear transparent - -* shadow font glyphs bleed into other glyphs - -* sprite/sprite.cpp: frame should never get out of range: - - if((int)frame >= get_frames() || (int)frame < 0) - log_warning << "frame out of range: " << (int)frame << "/" << get_frames() << " at " << get_name() << "/" << get_action() << std::endl; - -* Surface::hflip() is used exactly once, should probally be part of the constructor - -Scenegraph and Physics Engine Restructuring -=========================================== - -* random idea to restructure engine stuff (might lead to nicer code - and easier scriptability (and a need to rewrite lots of stuff...): - -class SomeBadGuy : public PhysicsCallbackListener // or use boost::function -{ -private: - PhysicsPtr box; - SpritePtr sprite; - -public: - SomeBadGuy(Engine& engine) - { - box = engine.physics().create_box(Rectf(0,0,32,32)); - box->register_listener(this); - sprite = engine.graphics().create_and_add_sprite("Foobar"); - } - - void update(float delta) - { - // not much to do, as most stuff is done internally in the engine - if (dead) - { - sprite->replace_with("Foobar_dead"); - } - else - { - sprite->hide(); - sprite->set_pos(box->get_pos()); - } - } - - // no more draw(), done by the scene graph - - void on_collision(CollisionData data) - { - // respond - } -}; - -Random Notes -============ - -* calculate the size of an background image that should fill the screen: - - image_size = (1 - parallax_speed) * screen_size + level_size * parallax_speed - -def calc(parallax, screen, tiles): - return (1 - parallax) * screen + parallax * tiles * 32 - - -Supported Resolutions -===================== - -SuperTux shall support resolutions from 640x480 to 1280x800 at a magnification of 1x. -For resolutions higher, such as 2560x1600, upscaling will be used. -For resolutions smaller, like 320x240 downscaling will be used. - -Higher resolution graphics for 2x maginification might be provided. -Lower res graphics for 0.5x maginification might be provided as well. - -Resolution and magnification can be freely configured by the user within the given limits. - -In tiles this means we have 40x25 (=1280x800px) tiles per screen. - -Graphic Tasks -============= - -* animate cave background torch: data/images/tiles/background/backgroundtile3.png - -* do parallax tiles - -* remove lightmap tiles - -* redraw/replace data/images/tiles/waterfall/ - -Music Recode -============ - -Currently the music makes up a large chunk of the total tarball -size. Compression could fix this: - - ,-- Size of data/music/*.ogg - V -40MB - Current quality in SVN -24MB - Default oggenc quality (3) -14MB - oggenc at 0 quality -10MB - oggenc at -1 quality - -No audible difference on my sound setup. -- grumbel - -# EOF # -- 2.11.0