This wiki has been moved to https://github.com/SuperTux/wiki into the mediawiki branch.
Milestone 3 Design Document
About this Document
This document is meant to give a reasonably detailed guide on what shall and shall not happen in Milestone 2. It is also intended as a complete replacement of other, incomplete or otherwise flawed, Milestone 2 documents floating around in this Wiki. This design document is written by Grumbel, question and comments are welcome, use the Talk page or the IRC channel for that. At the moment this document is a work-in-progress, meaning goals might change as time progresses. This document as not yet been approved by any other member of the SuperTux development stuff.
- 1 About this Document
- 2 Overview
- 3 Story
- 4 Intro/Credits
- 5 Shop
- 6 General
- 7 Actions
- 8 World 1 - Icyisland
- 9 World 2 - Forest
- 9.1 Ghost Forest
- 9.2 Color Castle
- 9.3 Game Elements
- 9.4 World 2 Enemies
- 9.4.1 Snail
- 9.4.2 Fluffy
- 9.4.3 Greeny
- 9.4.4 Spitter
- 9.4.5 Eater
- 9.4.6 MrTree
- 9.4.7 Leafman
- 9.4.8 Colory
- 9.4.9 Owl
- 9.4.10 Canon
- 9.4.11 Spider
- 9.4.12 Ladybug
- 9.4.13 Mini Bomb
- 9.4.14 Stony
- 9.4.15 Walking Bush
- 9.4.16 Oak
- 9.4.17 Flamey
- 9.4.18 Water Droplet
- 9.4.19 Ghosts
- 9.4.20 Angry Stone
- 9.4.21 Carnivorous Plant
- 9.4.22 Lava Animal
- 10 Editor
- 11 Open Questions
- 12 Disfavored Features in the current Development Version
- 13 Disfavored Practices in Current Development
- 14 Tasks
- 15 Miscellaneous
The goal of Milestone 2 is to add another island/theme to the world of SuperTux, namely the forest island, as well as improving on the short commings that where present in Milestone 1. Together with the forest island the game will provide additional enemies and items that fit the forest islands look and setting. New actions for Tux might be provided as well, namely the backflip, butt-jump and the iceflower powerup.
The SuperTux game starts with Penny, Tux's girlfriend, getting captured by Nolok. After those events are shown in the intro the player takes control over Tux and has to guide him through around two dozen levels on a snowy island. At the end of the path on the island is a castle, which however doesn't contain Nolok, instead a Yeti will be provided as a final boss battle. After Tux has defeated the Yeti and received a secret letter from Penny explaining where the got taken, Tux continues his journey over the sea to another island, one filled with forests, grass and green stuff.
On arrival on the forest island Tux will be welcome by the Granitos, which happen to be the native inhabitants of the island. They explain Tux in a cutscene that Nolok has taken control over their island and its magic castle, thus turning a large part of the island into a ghost world. To enter the magic castle five keys are needed, those are however scattered across the island. After hearing their story Tux tells them that he will help and proceeds deeper down into the forest world. On his journey through the forest island Tux will meet both more friendly Granitos as well has a salesman in the form of a walrus which will either tell some more story or help Tux with extra items or guide him through a level (Granitos can walk over spikes, while Tux can't).
After having collected the five keys Tux is able to enter the magic castle where he will face the final boss in form of a magic Totem. After defeating the Totem, Tux will yet again receive a letter from Penny telling him on how to continue his journey.
The text based intro and credits shall be replaced with cutscenes, showing the events that are described in the text. Instead of auto-scrolling text the game shall provide text that doesn't scroll, but instead only continues up on user interaction (i.e. press action button to see the next page of text). Text in cutscenes shall get printed letter by letter to the screen to provide a sense of 'motion'. Voice over from a story-teller might be consideration, while Tux, Penny and Nolok itself shall remain without speech.
The shop is a little house accessible via the worldmap, it provides the player with items, mini-games or other useful things. The shopkeeper is an old walrus with a beard. Different islands might provide different looking shopkeepers, all walrus, but adopted to the local environment.
- Tux run animation shall be rolled back to the single-sprite on that was used in Milestone 1, the current split-image animation is far inferior
- uni-solid tiles shall be provided for all tilesets
- multi-layer paralax scrolling background tilemaps shall be used in all levels
- menu system should be replaced/reworked
- save system could need a rework as well
- language shall be changeable via the option menu, LANG environment variable shall only be used as default setting
- worldmap Tux sprite should get animations for left, right, up, down directions, not just a single one as now
FIXME: How high, how is it influenced by running?
FIXME: How fast, how does it influence jump, how long is acceleration?
The backflip is a special jump which gives Tux some extra height compared to a normal jump.
The Butt Jump is activated by pressing down while in the air. It causes Tux to crush down on the exact spot over which he currently is. The butt jump provides additional force that allows him to crush blocks and some kind of armored enemies.
By flapping his wings Tux is able to get a short amount of additional time in the air as well as gain a tile in height.
Tux body catches a lot of hot air and thus starts to float. This action is triggered by objects in the game world and automatically terminates after some amount of time.
Since Tux is a penguin he has a good ability to swim. Water will not harm him. Swimming works by basically having two modes:
- 'standing': Tux stands still in the water, via the directional controls he can move up/down/left/right, this mode is very slow, but exact
- 'swimming': by pressing a button Tux can go into swim mode, in this mode he swims at fast speed, can crush blocks with ramming them and perform jumps out of the water
World 1 - Icyisland
World 1, the icyisland, was released with Milestone 1, the intend of Milestone 2 is to adapt it to the new engine features as well as improving it by adding new enemies and new gameplay elements. While level structure might be recyclable in many places, it will often need structural improvements to provide real use of vertical and horizontal scrolling, instead of just locking the player in a horizontal-only scrolling level. Things that need to be done:
- Jumpy shall be replaced with an enemy that fits better into the snow landscape, Jumpy himself shall be reused in a lava-like setting or in the bosses castle
- the walrus salesmen shall be added to the island
- some levels shall be separated out into optional paths, to provide a less linear path
- the old Milestone1 worldmap shall be used, not the one currently present in SVN
- an additional type of snowballs shall be provided to signal stay-on-platform behaviour (a bandana or something like that)
- a snowman enemy shall be added, a snowman is build out of a base body combined with a snowball head, if the body is destroyed, the snowman turns into a snowball
- iceblocks which will melt on contact with fire shall allow to lock paths in a level or lock secrets
- balanced platforms that start to rotate or move when Tux stands on them shall be provided
- water, in its simplistic tile form, shall be removed from all levels
- uni-solid/half-tiles shall be used to enhance the levels and provide optional paths
- bottom-less pits shall be either replaced by pits with spike at the bottom or allow Tux to climb back out of the pit
- there shall be auto-scrolling levels that force Tux to run by having a avalanche coming down behind him, the avalanche might either be simple snow or a large group of enemies
- the castle tileset shall be replaced with something that looks colder and features both snow and ice
- cave tileset shall be replaced with something that has a larger pattern, thus looks less ugly when tiled
- tiles picturing deadly spikes build out of ice shall be created
The Yeti is the boss that awaits Tux in the first castle. After entering the throne room Tux will find a letter in which Nolok tells Tux of the other castles in other worlds (see Milestone1 extro.txt). In the background there is a window. While reading the note one will see a shadow approaching the window and soon after the Yeti jumping through the window. The normal boss battle starts instantly after the jump.
World 2 - Forest
The forest island is split into different section, one being a classical forest, one being tree-tops, then a stone based section, followed by a dark ghost forest and finally the boss castle. Each section might feature separate tilesets for above or below ground action.
- enemies: owl, snail, greeny, plant, eater, spitter, mr tree, leafman, canon, spider, ladybugs, stony, walking bush, drop-down oak
- boss: totem
The ghost forest is a world that exists in parallel to the normal forest. Instead of a living forest, it as a dead one. Instead of cute little enemies, it has ghosts and skeletons. Portals connect the ghost forest with the normal one, both on the worldmap as well as in the levels themself.
The worldmap shall exist in both the ghost as well as the normal mode, paths might differ, so that walking around might require to transit from one world to the other.
The water or lava that will be in some levels will be able to rise. Rising will either be automatic or triggered by switched. The rising lava will lead to drastic increase of danger and force Tux to make it quickly through some areas before the lava reaches him. While water will allow Tux to swim up to places which would otherwise unreachable.
Allows Tux to climb up.
Status: Implemented as GameObject, not via TileMap, which has its advantages (easier to z-sort) as well as disadvantages (harder to handle in editor)
World 2 Enemies
When jumped up on the snail rolls into her house and thus becomes invincible as well as portable. Snail is a slow moving enemy. Snail might come in different sizes, especially larger ones then the standard 32x32 enemies.
Fluffy is a small enemy that moves around via little hop motions, jumping on him will kill him.
Basic forest enemy, for most part just a simple snowball replacement.
The spitter acts as walking dispenser, the enemy type that he can spit out might be limited to mini-bombs and similarly small enemies.
The Eater is a very small enemy, half the size of a snowball, he can however expand a lot. If Tux gets to close to him the Eater will open his mouth wide enough that he can devour Tux or even other badguys. He his not defeatable by jumping onto him, since he will then just eat Tux. Throwing stuff at him won't work either, since again he will just eat them.
In its basic version MrTree behaves similary to the Iceblock and thus acts as its replacment in the forest world. He might however also come in stacked-versions, movment stays the same, but its height varies. When jumped up-on a stacked MrTree only the top most one is killed, the others stay untouched. Another variant to MrTree is the toupee one, he has 'green stuff' on its head which might protect him against a single jump, after that jump his green protection is destroyed an he becomes a basic MrTree.
A last version of MrTree might come in large size.
A basic enemy which however gets near invisible when walking. Every few steps he stays still and thus becomes visible. He might interact with wind.
A enemy specifically for color castles, it can glow in different colors and thus influence the color-tiles. It might also be influenced by lamps itself.
A flying enemy that can land on trees and carry things around to throw at Tux.
The canon can be mounted on either static or rotatable pedestal. It shoots angry looking canonballs.
The Spider hangs at the side of a tilemap, either a hard one or an unisolid one. At regular intervals the Spider 'charges up' and performs a jump. After the jump it falls back to the tilemap and attach back to it. The spider can walk on the side of the tilemap, but can't walk on normal ground like a Snowball.
The Ladybug is a simple flying enemy that flies in a sinus-curve motion.
The Mini-Bomb is an small version of the normal bomb, it approaches in groups most of the time and is aggressive, it however is non-lethal to Tux and only works to either distract him and throw him back.
Stony hides himself in stone walls and is invisible, only when one gets closer he becomes alive and drops down. Multiple Stonies might come as group and drop down at irregular intervals.
The Walking Bush is an enemy that looks just like an background object, when inactive it also behaves like one, i.e. neither can Tux kill it nor can it kill Tux. When active it might change its color a bit and have eyes, it will walk around a bit to then become inactive again. Jumping on it when active will kill it.
The Oak hangs in trees and doesn't move until Tux approaches, once Tux gets close enough the Oak drops down and slowly floats to the ground.
Flameies are little enemies build out of fire. They are invulnerable against jumping and when to small ones collide, they turn into a large one. Flameies stays near its starting position and moves a bit around to the left or the right, they don't do walks into one direction like many other enemies. After a while Flameies might shrink and die automatically.
Special Flamey dispensers (volcano, pot with fire) might throw new Flameies onto the playfield at regular intervals.
Flamey might react special to the ice-flower.
Water Droplet might behave similarly like Flamey, only instead of fire, they are build out of water. Ice-flower might turn them into an ice-enemy. Multiple water droplets can merge and they can be dispensed from a leaking pipe.
How they interact with Tux is open for discussion.
Basic ghosts float around on a fixed path in a sinus-wave like pattern. There may be different kinds of ghosts that follow different patterns as well as ghosts that are inflatable and grow in size on specific events.
Angry stone is attached to the roof of a level, once Tux gets close to him (one tile to the left or right, he crushes to the ground, trying to kill Tux. Soon after he lifts back up to the ceiling for another attack. Angry stones might come in different sizes, from really small ones, 32x32, to very large ones, 256x256. Angry stones are always a multiple of the tilesize large so that they fit into the tilemap properly.
Plant is fixed on the ground, when Tux gets close it starts to reach for him. When walking slowly it might be possible to walk by a plant without waking her and thus getting killed.
A creature that lives in the lava and jumps at Tux every now and then.
- editor needs a minimap, like Flexlay
- editor needs a grid, like Flexlay
Do we need a tree-top setting? Does it fit into the forest world (deciduous forest vs coniferous forest)?
Should stone tiles be separate from the rest or merged into the main forest tileset (as unisolid tiles)?
What contrib levels contain ideas that might be worth to recycle?
Disfavored Features in the current Development Version
- Pogonia graphics: simply don't look as if they are dangerous, shall be removed or ignored for official M2 level
- Scripting: scripting shall be limited to cutscenes (intro/credits), boss fights, normal levels shall not feature scripting. If scripting is used it should be invisible, i.e. no "I push this trigger, watch that stupid cutscene and then move on stuff", instead use scripting for rising water/lava, creatures with pseudo intelligent behavior or whatever, make it so that scripting doesn't interrupt gameplay, make it so that scripting provides gameplay
- Enemies: plenty of them look pretty poor and should get removed/ignored
- bitmaped backgrounds: shall be replaced with parallax scrolling ones.
- main menu: could use some serious polishing, simply fill-rect background looks ugly
- save system: very counter intuitive to get asked for a new save state for contrib levels
- Tux rap in the intro: must not make its way into Milestone2
- Coin handling as extra life: punishes the weak, doesn't add any gameplay and for most part just doesn't feel good, Tux should simply have infinitive lives
- Reset Points: they don't look good and for most part don't do anything good, instead of having reset points levels should simply be made small enough so that they don't need reset points
- Tux superpowers: hat is really ugly and shall go, even old red-Tux was way better
- Tux split sprite: shall be rolled back to the single-image one of Milestone1
- Level flipping: It might have some place in a ghost castle, but in the end I prefer it to not be used much at all.
Disfavored Practices in Current Development
- Bug fixing: while some is obviously necessary, to much time is spend fixing bugs in levels or code that might be removed later in the development of Milestone2
- Feature addition without discussion first
- Disorganisation: hard to figure out who workes on what, when and how. Hard to get enough people together to have a meaningful discussion
- Mailing list often overrun by non-development people, making it hard to discuss core game features
- Discussion over details, while leaving the whole game totally out of the picture
- nobody ever uses News
- develop two showcase levels, one for the ice world another for the forest world, that demonstrate graphics, enemy and objects that will be featured in Milestone2