This wiki has been moved to into the mediawiki branch.


From SuperTux
Revision as of 22:24, 8 May 2006 by RavuAlHemio (Talk | contribs)

Jump to: navigation, search

Milestone 2

Documents and ideas: Milestone 2 esp. Forest world


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.
  • ?: There are collisions with the flame sprite while invincible. Tux can then actually stand on 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)
  • H: Buttjump:
    • re-enable buttjump
    • should kill enemies with a certain range (needs to be tweaked)
      • eventually, enemies in a given radius should only be stunned
    • animation (need images)
    • should only be available when tux is big
    • should break bricks if Tux is on top of bricks.
  • H: Flapping:
    • should be modeled after Yoshi's Island flapping
    • ?: check if this doesn't heavily affect gameplay
    • animation (need images)
  • H: Blowflyer:
    • should be temporarily active for a single sector or time-limited (i.e. countdown)
    • D: we don't know yet how Tux could gain that ability; probably some non-movable objects in the level (helium bottles were rejected, should be something more "abstract")
  • ?: 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: create a (squirrel) script for the intro cutscene
  • H: extract translatable strings from the scripts
  • H: easy means of skipping and/or fast-forwarding cutscenes
  • ?: tux walk from the level goal into his igloo looks like he's breakdancing


  • ?: render Badguys that could move through tiles (flames, ghosts, dead badguys) on a higher layer so they won't disappear behind e.g. grass patches only to reappear in front of solid ground again
  • M: create more and better Badguys, see Badguys for ideas
  • H: Badguys should only respawn outside the current screen rect when they were disabled (there is code that should do this, but it doesn't seem to work)


  • H: Check/Fix bullet speed/behaviour
  • H: Don't simply duplicate code in the following objects: PoisonIvy, SnowSnail, 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
  • M: redo trampolines
  • 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)


  • 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).


  • H: When going up/down really fast, the camera sometimes can't keep up and tux goes out of the screen on the top
  • 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: Work when no OpenAl support is available
  • L: Create a global random number generator class and use that everywhere in supertux. Also record random seed in demos to make playback reproducible. IMO we shouldn't have random elements in gameplay anyway.
  • M: There are still some mainloops left outside the MainLoop class left, esp. the stuff in src/video/screen.* is annoying, add the concept of a Transitional screen or something which gets added to the mainloop to do the fadeout/shrink or whatever transitions.
  • 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.
  • ?: Show total count of coins collected in all levels on the worldmap


  • 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
  • D: What to do with Coins and Badguys when Tux warps back to the most recent Firefly?
    1. replace all coins and badguys, restart counters from zero
    2. keep track of collected coins, restart level with collected coins removed
    3. restore level snapshot (taken when firefly was activated)


  • H: Support for paths
  • H: Support for moving platforms


  • H: create 10 or more new levels of different size and complexity, using the new features of milestone 2.


  • H: add more forest tiles; some of the current ones need fixing.
  • H: Create a ghost forest tileset.
  • H: animations for the Yeti
  • 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)


  • ?: 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
  • ?: Will-o-wisp ambient, warping, vanishing
  • ?: Dart Trap loading, firing
  • ?: Dart flying, hitting wall
  • ?: Sound when tux drinks a magic potion that flips the level around (that old sound from the flower? or better not ;-)