This wiki has been moved to into the mediawiki branch.


From SuperTux
Revision as of 08:25, 15 January 2007 by Sommer (Talk | contribs)

Jump to: navigation, search

Milestone 2

Documents and ideas: Milestone 2 esp. World 2


Attention: Only developers should edit this page. Please add User ideas and Bugs to the end of their pages

High priority H: milestone goals that should be implemented for next milestone

Medium priority M: would be nice to have for next milestone, but should be secondary to high priority goals

Low priority L: things that should be fixed sometime

?: things that need to be discussed to determine whether or not they should be implemented

D: features that will be implemented but need further discussion on how to implement them

Apart from issues listed here, Category:Needs Code, Category:Needs Sound and Category:Needs Graphics list articles that describe content which still lacks one of the three.


Collision Detection

  • ?: Give tiles a configurable friction factor and make tux react to it. (for Icy tiles)
  • M Slope values aren't flipped if you flip tilemaps. THe collision code would need to be aware which tilemaps are flipped and then adjust the slope values to that. (The bug is only marked M as currently you can't die because of that anymore, and because you can simply avoid the situation in the levels)
  • L The collision detection code doesn't move tux completely out of the collision on slopes. All cases where this had bad effects should be worked around at the moment, so this bug has very low priority.
  • H That slide along code sometimes pushes you into a crush position (try in platforms.stl)
Not reproducable. At what location?

Code Refactoring/Cleanup

  • L: Implement a remove_listener function, so that you can keep track when GameObject get added/removed to the Sector.
  • L: name files according to the classes they contain, e.g. tile_manager.* to TileManager.* because it contains a class named TileManager and not tile_manager
  • L: Refactor worldmap code to run like a normal GameSession with some special GameObjects
  • L: There are still some mainloops left outside the MainLoop class.



  • H: extract translatable strings from the scripts
  • L: Useful error messages. Report line and command that caused error.


  • M: create more and better Badguys, see Badguys for ideas
  • D: add visual indication of Yeti's hitpoints (three small heads in the upper-left corner?)


  • H: Don't simply duplicate code in the following objects: Snowball/PoisonIvy, UnstableTile/SkullTile
  • H: Infobox: Don't show scroll arrows if the text is smaller than the box. Try pixelwise smooth scrolling instead of 1 line per keypress. Try to avoid scrolling textboxes anyway, players are bored if they have to read so much. Try to avoid infoboxes where possible, the game is played by lots of kids who either can't read yet or don't know english, they'll just be confused by text they can't understand.
    • Infoboxes are really the only effective way to introduce gameplay elements. For example, the run sign in "Welcome to Antartica" and the associated barrier are impassible for those who haven't figured out yet that the action key is the run key too. Info boxes are not as evil as reading a manual, and gives information out at just the right time. Manuals can expose spoilers. -- tuxdev
    • I agree. (Short) infoboxes are OK for tutorials. Regular levels should avoid them, though. --delta
  • L: add a rope object on which tux is able to climb, also add a ? block that emits a rope when hit
  • L: add a "geyser" object: It's a fountain of water that raises in certain intervals. It can be used as jump-pad as the water gives tux and up-boost when standing on it.
  • ?: Doors that execute a script when Tux enters them


  • L: Combine tiles into bigger images (worldmap and the waterfall tiles come to mind). This should improve load time and opengl speed a bit (because we need fewer texture changes).


  • M: Make sure levels for version 0.1.2 still work. Currently this isn't the case because some files have been renamed and other small stuff... Our levelmaking fans will be happy if they don't loose the ability to play their old levels.
  • M: Tux did go up/down 1 or 2 pixels each step when walking around in the 0.1.x releases which made the walk look a bit more natural. I don't know if this was done intentionally or why it doesn't work anymore, but it would be nice to have this effect again.
  • L: the camera does some nasty little jumps if you jumped up on a higher place where the camera didn't completely follow yet and you fall down directly again. This will suddenly raise the camera up.
  • M: Support multiple tilesets per level. This way users/modders can easily extend the tileset with by simply adding new .strf files into the data directory. Proposed format:
    (name ...)
      (import (tileset "images/tilesets/snow.stts") (start 0) (end 50))
      (import (tileset "images/tilesets/stone.stts") (start 51) (end 102))
        (ids 1 5 58 101 2 ...)
  • D: think about icebullet specifics
    • Dev mailing list: we're debating the behavior right now.
  • L: Try to avoid all random stuff in the game. There should be no calls to RandomGenerator in gameobjcts (at least the result shouldn't affect the gamelogic at all)
  • M: Option to delete or overwrite existing savegames.
  • L: Add line-editing functionality to Console
  • D: Discuss timeout effects.
  • D: Discuss collision behaviour while Tux is carrying a portable.


  • L: save score on per-level basis to make high-score (this means coins/time)
  • M: Show statistics on level completion.
  • ?: Show total count of coins collected in all levels on the worldmap
    • initial implementation is there, however the screen should fade in (preferably a little later than the endsequence start)
    • the screen should be displayed until the player presses a key (or a longer period of time like 15 seconds) is over
    • statistics counting also doesn't seem to be correct yet
      • coins in bonus blocks are not counted
  • load/save statistics


  • H: Check/Fix bullet speed/behaviour
    • Please elaborate - what exactly needs to be checked or fixed?
    • (Just compare it with what bullets did in milestone1, the reason the stuff is different now is because the code there is not coded in a framerate independent way)
    • In MS1 Tux is spitting the bullets in svn version he is throwing them. Thats the difference I notice, maybe there is also more subtile framebased stuff. --WolfgangB 15:36, 9 Jul 2006 (BST)
    • Checked and (presumably) fixed in r4143 --Sommer 00:11, 10 Aug 2006 (BST)
  • L: It seems like we get non-UTF8 strings from Windows error messages. SuperTux expects UTF-8 encodings.
    • Correctly convert strings we get from PHYSFS_getLastError() and SDL_GetError() to UTF-8
    • PHYSFS_getLastError() returns the exact string it got from calling std::strerror(), so it uses the encoding implied by LC_MESSAGES. On Windows, this might be everything from Windows-1250 or ISO-8859-15 to Big5.
  • L: Playback of a demo stops at sector transitions. Controller is back to keyboard then...


  • H: add more forest tiles; some of the current ones need fixing.
  • H: Create a ghost forest tileset.
  • H: image for castle door with 5 key holes
  • H: new tiles for the forest worldmap
  • L: graphics for ropes
  • L: graphics for bubbles and soap (not necessary for Milestone 2)
  • ?/D: new enemies (first need to be designed)
  • ?: for most level backgrounds, create three tileable image parts that tile like this:


(The editor is not release critical therefore no ratings for these TODOS)

  • Scroll TileList with middle mouse, Get different Tilegroups
    Isn't that the way it is atm? --WolfgangB 18:23, 7 Aug 2006 (BST)
    Only if one tilegroup is selected, with default group (empty string) you can't scroll, once you have set it to "All" or anything else oyu can. Should be bug (or feature) in GTK, it's not controlled by program.
  • Create an overview widget (where to place this in the GUI?)
    Overview for what? -- Penguinmaster 15:46, 4 Oct 2006 (CEST)
    The sector. Like a minimap.
  • Grab Mouse Pointer when scrolling so that we can scroll as much as we want (and the mouse is still where it was before scrolling)
    I don't think that would be a good idea. I at least found that applications that does that are hard to use. --AnMaster 10:46, 13 Nov 2006 (CET)
  • More custom property editors:
    • Texts
    • Scripts (we had a very good gtksourceview based editor which is disabled at the moment, maybe split the editor to a separate dll and load different editors on demand?)
      Why was it disabled? --WolfgangB 16:45, 13 Jul 2006 (BST)
      Because it crash the editor on Windows, and because it add lots of extra deps. --AnMaster 23:27, 20 Jul 2006 (BST)
      "lots of extra deps" anything that is not part of every serious distro? Why not fix the crash instead of removing features?
  • Layer switching on keys 1,2,3,...,0 CTRL+1,2,3,...,0 to switch visibility, key 0 for objects
  • Editor has strange behaviour when you select a tile in the middle, right-click select and move the mouse too much to the right
  • Tool not working after loading new level
    Added a workaround for this by reseting to the Select tool when loading new level. --AnMaster 20:25, 8 Sep 2006 (BST)
  • Windows builds seem to silently crash when loading huge levels
    huge as in 100x100 or more like 10000x10000?
    the level old world2/airkey.stl crashed both editor and the game itself on windows. --AnMaster 17:56, 30 Jun 2006 (BST)
    the old airkey was 300x300. It makes the editor slow on my linux box but it's working--WolfgangB 00:14, 6 Jul 2006 (BST)
  • Make the right click menu from sector tab a normal menu so that users can easily find it
    Maybe add them to a toolbar? that could be useful. --AnMaster 23:27, 20 Jul 2006 (BST)
  • Add a new way to copy parts of one level to another.