This wiki has been moved to into the mediawiki branch.


From SuperTux
Revision as of 12:30, 18 June 2006 by (Talk)

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


Collision Detection

  • M: Solve problems with Tux getting stuck in (and consequentially moved out of) unisolid tiles if they are at the apex of his jump
  • L: Stacking some objects doesn't work nicely. Examples: Multiple badguys above each other, multiple rocks above each other. It might be possible to solve this by doing collision detection against old object positions instead of the new ones.
  • ?: Solve problems with "solid" objects, e.g. Tux being propelled through bonus-type invisible blocks or Tux sometimes being thrown off platforms
    • This doesn't seem to happen when the separate-axis collision detection for solid objects is replaced by the default algorithm
  • ?: Trigger collision callbacks for multiple solids that get hit at the same time, not just the "first" one

Code Refactoring/Cleanup/Optimisation

  • L: implement quadtree or grid to speedup collision detection
  • L: Implement a remove_listener function, so that you can keep track when GameObject get added/removed to the Sector.
  • L: change physics class y-velocity-coordinate to be like all other y-coordinates again (positive y to go down)
  • 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


  • H: what to do when stuck under tiles (after using duck-sliding)
    • How about hurting Tux when he tries to stand up and cannot. Sooner or later he will become small and be able to leave on his feet...
  • ?: the currrent grow-up animation pauses the game for too long. Either pausing for a shorter time or letting the game run while growing up might be better.


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


  • M: create more and better Badguys, see Badguys for ideas


  • H: Don't simply duplicate code in the following objects: PoisonIvy, Spidermite?, Hatch, 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.
  • M: Make moving platforms crush tux when pressed against a wall
  • L: add a rope object on which tux is able to climb, also add a ? block that emits a rope when hit
  • L: redo trampolines
    • maybe we could instead introduce areas that accelerate Tux, Badguys and Particles in an arbitrary direction (i.e. wind). This could also replace unisolid tiles.
  • L: add a "geysir" 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.
  • ?: Give tiles a configurable friction factor and make tux react to it. (for Icy tiles)


  • M: Add some more sound_manager->preloads into object constructors
  • 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: save score on per-level basis to make high-score (this means coins/time)
  • 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.
  • L: Add an option to tilemaps to fade away if tux stands behind tiles. (This is usefull to hide secret ways and entrances)
    • For starters, being able to set a tilemap's opacity to 50% would suffice. Layering this semitransparent tilemap on an opaque one would achieve a similar effect
  • 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
  • L: create more sound effects, see User_ideas#Sound_Effects for ideas
  • L: ability to jump back at a specific position in a music file on loop (add .music files that describe the behaviour)
  • L: Ability to run scripts that drive the music (ability to jump around the music file)
  • 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)

  • L: There are still some mainloops left outside the MainLoop class.
  • ?: Show total count of coins collected in all levels on the worldmap
  • M: Option to delete or overwrite existing savegames. My five slots are all in world 2, Have to delete one to go back.


  • M: Show statistics on level completion.
    • 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


  • ?: Seems like a SoundSouce that was stopped cannot resume playing. Further investigation necessary.


  • H: Check/Fix bullet speed/behaviour
  • H: when finishing worldmap levels on a T-way tux starts running in a direction, while he should simply stay because he has several possibilities to continue. Also at the T-way that goes up, left, down tux doesn't seem to stop.
  • H: In Scripts started by script_triggers the set_pos call has no effect because the scripts run during collision detection phase. We should somehow queue them and run the scripts next frame during the update phase.
  • L: Move fish behind interactive water tiles


  • ?: Move all path nodes at once when moving the platform object
  • ?: Fix crashes when resizing sectors
  • ?: Track "changed" status of files and ask for confirmation when exiting


  • H: create 10 or more new levels of different size and complexity, using the new features of milestone 2.
  • H: Test existing Levels if they still work.


  • 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:


  • ?: See World_2#Atmosphere for more ambient sound ideas
  • H: make some sound when the player dies and looses coins. So that you get some feedback what is going on.
  • ?: Wind (ambient) for high plateaus, over-the-clouds action, fast platforms, ...
  • ?: Ticking for Mr. Bomb
  • D: Short "Nolok" and "Tux" themed sound effects(?)
  • ?: Flapping for flying creatures (e.g. the Zeekling)
  • ?: soft "hop" sound for creatures like Jumpy or SkullyHop
  • ?: Crushing ice (Stalactite or breakable Ice tile)
  • ?: Warp sound for Hatch-style Dispenser
  • ?: Wooden "click" for Walking Totem
  • ?: Splash when jumping into water
  • ?: Sound when tux drinks a magic potion that flips the level around
    • that old sound from the flower? or better not ;-)
  • ?: Ambient sound for lava pits