This wiki has been moved to into the mediawiki branch.

Milestone 2 Design Document/Tasks

From SuperTux
Revision as of 10:40, 30 April 2009 by Sik0fewl (Talk | contribs)

Jump to: navigation, search

< Milestone 2 Design Document

Code Tasks

  • Empty top/middle/bottom background image string should be handled as transparent image (more paralax backgrounds)
  • write TexturePacker to place multiple images on a single texture (better use of texture space and fixes bug with tiles having junk on the edge)
  • Malformed UTF-8 sequences should not be handled as fatal error, just insert '?' instead (happens with German translation) (fixed? MatzeB)
  • properly GPL'ify the supertux-editor (COPYING file, GPL headers, etc.)

Graphics / Sprites

  • Crystallo dead/dying sprites
  • replace old bomb with new bomb sprite
    • Done? - sik0fewl 03:29, 20 June 2008 (UTC)
  • Create SuperTux idle animations (stage1: blinking with the eye, stage2: tipping with the food, stage3: scratching the head)
    • I've added the code for idle animations, we just need the graphics now. The blinking animation already exists, but it needs some tweaking - sik0fewl 06:25, 16 June 2008 (UTC)
  • remove pictures from credits, looks to uneven that way
Really? I like the pictures. --WolfgangB 19:00, 29 April 2008 (UTC)
I do too. --Mathnerd314 00:05, 6 July 2008 (UTC)
  • when Tux dies he can fly behind blocks instead of in front of them, drawing order bug
  • Tux isn't centered properly to his collision box
  • repair jump Tux sprite (to dark black) (Grumbel)
  • butt jump animation (Grumbel)
  • backflip animation (Grumbel)
  • draw a bigger arrow for when Tux is jumping out of the screen
  • do a 32x32 top-down water animation for the worldmap
  • finish canon graphics, also snowball graphics, death, etc (Grumbel)
  • try to fix white-lines around graphics problems (MatzeB)
  • snowman graphics (Grumbel)
  • some decor for ice tiles, cracks and stuff (Grumbel)
  • finish icecrusher graphics
  • deep snow tiles
  • icicle graphics for decoration purpose
  • animate minibomb
  • paint tutorial boards for grabbing, backflip and run-jump
  • think of a new way to represent the exit area (snow molted with smooth ground below or so)
  • background graphics glitch at non-800x600 resolutions (black line where background tiles), reason for this is that background gets copied to a 1024x1024 texture with a black border, at non 800x600 resolutions the right edge becomes blended with this black border, need to add 1px border around the texture to fix this blending bug (alternative: use GL_NEAREST instead of GL_LINEAR)
  • add turn-around animation for smart-snowball
  • add sprite scaling
  • remove border from menu screen or make it scalable for different resolutions

Editor / Developer Conveniences

  • create some playable test levels for new stuff
    • Anything in particular? - sik0fewl 20:07, 15 June 2008 (UTC)
    Try these, since they're probably most noticable to Milestone1 users: --Mathnerd314 04:23, 7 September 2008 (UTC)
    1. Slopes and background tiles
    2. Moving platforms (ice platforms haven't been used yet...)
    3. Climbable ladders and directly accessible powerups
    4. New unisolid snow tiles
    5. Parallax backgrounds
    6. Sector/Scripting use
    7. Crystallo and IceBlock badguys
    8. Add-ons + manager (To distribute these new levels, of course!)
  • reorganize the editor to something more like this SuperTux-Editor MookUp
  • Editor: show tile attributes in editor, especially for non-solid and unisolid there is often a very similar solid tile. Either add special editor-images for unisolid, some overlay icon for the tile selector or at least a hint in the status bar.(status bar done)
  • finish editor improvements (MatzeB)
  • editor doesn't align canon and icecrusher properly (grid is wrong)
  • add 'recent files' to level editor

Meta / Organization

Menu System / Game Configuration

  • add an cmd option --default and/or a menu entry "Reset to Default" to reset any changes to resolution or aspect ratio (or something along those lines) (cmd done, WolfgangB)
  • add gamma control to the option menu, see: int SDL_SetGamma (float redgamma, float greengamma, float bluegamma);
  • make aspect ratio option menu thing work
  • need to properly auto-detect and set aspect ratio on games first startup (i.e. on a 1280x1024 screen aspect must be set to 5:4, not 4:3)
  • option menu entries are currently not in sync with gameconfig
  • add scale-with-window option to magnification or something like that
  • make left/right change an option in the menu, let enter apply it (needed for fullscreen)

Levels / Scripting / Gameplay

  • can't run while carrying an object, but should be able to
No, that is on purpose: Tux can't run when carrying heavy objects. So you can control where the player can not bring eg. the trampoline without a artificial "no stuff behind this line" object. Any reason why Tux should be able to run when lugging objects almost as big as himself? --WolfgangB 01:22, 25 May 2008 (UTC))
With *large* objects I might agree, but an Iceblock or any other 32x32 one isn't a large object, it just robs the gameplay from being dynamic. -- Grumbel 17:13, 28 May 2008 (UTC)
  • replace "you found a secret area" with a special sound (Wansti)
  • level startup needs a fade-in, so does game startup, level abort and a few other places
  • add all fade-in/out effects to DisplayEffect
  • peeking should stick instead of jumping back or jumping back should be limited to normal range that the camera can do
    • I think this is fixed or at least better now? - sik0fewl 18:34, 30 April 2009 (UTC)
  • bug: can't walk left and jump while pressing ctrl, when going right the same works, might be keyboard specific (Microsoft Natural Ergonomic Keyboard 4000 USB suffers from it, on the same PC a PS/2 keyboard works, maybe kernel driver bug), capslock is bound to ctrl and ctrl is bound as action key, using space for action works as workaround (Grumbel)
  • camera vertical scroll doesn't work properly in a small window (i.e. it doesn't move at all)


  • add PNG support for screenshots, BMP support currently broken
    • What's wrong with BMP support? It seems to work for me - sik0fewl 06:11, 13 June 2008 (UTC)
  • at large resolutions frame rate starts to sucks, but CPU usage continues to stay very low, is that a artifact of GPU use or something wrong with our timing/frameskipping code?
  • aspect ratio init code (Grumbel)
  • think about peeking in relation to large screen size
    • Maybe disable peeking if the resolution is at a certain size or greater? Tux would just be centered. sik0fewl 18:34, 30 April 2009 (UTC)


  • fix and cleanup all the enemy names - see Milestone 2 Design Document/Enemies for new names
  • AngryBonusBlock: Have a bonus block type that comes to life when tux jumps against it and then chases Tux
Break the "only good stuff from bonus blocks" and "same look same behaviour" rules? --WolfgangB 01:27, 25 May 2008 (UTC)
Secret Maryo has a poisonous mushroom... if they break the rules, why not us? Also, bonus blocks already have varied behaviors. --Mathnerd314 04:23, 7 September 2008 (UTC)
  • create an enemy type that doesn't just walk straight into one direction, but does something different depending on Tux direction (ninja)
    • Is this a dupe of the Crystallo proposal for week 4? - sik0fewl 19:58, 15 May 2008 (UTC)
  • General: Get rid of bouncing snowballs killing normal snowballs and other unintended behaviour
  • General: Get rid of enemies stacking on top of each other
  • General: Have particle throwing starting enemies (fireflower like)
  • General: Do something about the walking speed, feels wrong at the moment, maybe a bit slower
  • Bomb: Roll back to behavior of Milestone1, get rid of particle effects
  • Bomb(normal): let the fuse burn after one touched it
  • Bomb(crazy): new bomb type (crazy pink bomb) that runs around after being touched
  • Flying Snowball: Add acceleration/deceleration instead of linear up and down
  • Flying Snowball: smoke effect for the motor seem to be to seldomly triggered
  • FlyingSnowball: Remove randomness, should be periodic and predictable
  • Icecrusher: gravitation instead of linear, facial expression, maybe screen shaking
  • Icecrusher(big): add a larger version of the icecrusher, twice the size
  • merge AngryStone and Icecrusher, both do the same thing, just with different graphics (actually they don't, maybe they should?)
  • Iceblock: transparency looks shit on dark backgrounds, Wiki had a better looking version floating around

Postpone to Milestone 3

These are items that can be postponed until milestone 3, but are still welcome for milestone 2.

Code Tasks

  • separate lisp reader, tinygettext and other libraries properly out of SuperTux
    Is this necessary for milestone 2? - sik0fewl 20:54, 15 June 2008 (UTC)
    Probably not. -- Mathnerd314 00:05, 6 July 2008 (UTC)

Editor / Developer Conveniences

  • optimize the build process, building SuperTux currently takes ages (I don't see how we could speed it up..., MatzeB)

Levels / Scripting / Gameplay

  • SuperTux should stand on the ground when a level starts, not fall down
  • fix console command set_game_speed() so that it doesn't slow down the console


  • create SuperTux .xo Activity for OLPC (Grumbel)


  • change game back to use Milestone1 single-sprite SuperTux (done)
  • switch supertux-editor over to CMake? (done, is now a simple Makefile)
  • when BigTux ducks, the camera moves/jumps, but should stand still (fixed, MatzeB)
  • there should be an script command to change the game speed (i.e. run in slowmotion)
  • Tux isn't animated when he dies (caused by "grow-right" and then "gameover" being set over and over again, so framecount is always 0) - sik0fewl
  • bring back single-sprite SuperTux (done)
  • jump with keyboard up (done, WolfgangB)
  • figure out a Jumpy replacement (Grumbel)
  • rename trunk/supertux-sharp to trunk/supertux-editor to make it clear that it is the primary editor (MatzeB)
  • Stay-on-platform snowball (done, WolfgangB)
  • snowball-launcher (done. WolfgangB)
  • integrate snowjumpy
  • use pink snowball for stay on platform, use normal snowball for straight forward walk
  • add a "scan for joysticks" to the "No Joysticks found" in "Setup Joystick" to allow hotplugging (done, WolfgangB)
  • peeking should work in in both X and Y at the same time (for use with second analog stick on todays gamepads) (done, WolfgangB)
  • add a way to enable the console from within the game
  • the menu should shrink instead of just disappear - sik0fewl
  • add a set_gamespeed() so that the game can run in slow motion for debugging [done]
  • fix default peek keybindings, seem to be wrong
  • Esc should pop the current menu (ie, back), not escape the entire menu - sik0fewl
  • bomb can't be carried, but should be able to - sik0fewl
  • make F10 toggle print-fps - sik0fewl
  • Spiky: Shouldn't alway sleep, either make it an option or better make a new enemy type for sleeping behaviour (Thats already done that way, there is Spiky and Sleeping Spiky).
  • Spiky: Walkcycle animation looks broken, there is a frame missing
  • Snowball(normal): Animation ruined
  • Snowball(stay-on-platfrom): Replace with female snowball graphic
  • Bomb: Replace graphic with new bomb graphic
  • fix editor so that it works without a mouse wheel (done, WolfgangB)
  • Translations for Chinese and Russian (Cyrillic)
  • InfoBox crashes when Text doesn't start with a marker character
  • create ice-spikes graphics (Grumbel)
  • create ice-tiles graphics (Grumbel)
  • create angry ice-block graphics (Grumbel)
  • Editor: sort (new) layers by z-value
  • peeking up/down keys seem to be unbound by default
  • fix/add/cleanup menu entry names and descriptions to be better understandable - [done, but should probably be reviewed before release]
  • create mountain and night background
  • create proper background tiles for level22 - all you need are the blue bg tiles and maybe some unisolid ones
  • new enemy type with more interesting walking pattern (follows Tux as long as Tux doesn't look, walks forward and backward, etc.), see Crystallo for a possible sprite