SuperTux Milestone 2
Spoiler
Warning:
This document contains a very
detailed description about SuperTux milestone 2, including every new
feature, as well as the full story. If you
only want to play SuperTux and you are not interested in the
development process, you should not read any further, as it will give
away a lot of surprises; however, if you are involved in developing the
game, reading this is a requirement.
Worldmap:
After finishing Antarctica by beating the worlds boss, a cutscene,
replacing the currently displayed text, will be shown. (For a detailed
description of cutscenes, see section "Story".) Tux will then advance
to world 2, the forest island. Its worldmap will be built using the
same, possibly enhanced, format that Antarctica uses. The worldmap will
be designed as follows: The island consists of four sections. A light
friendly looking forest where Tux starts his journey, a ghost forest
section, and a transition between them; in the center of the island,
surrounded by the ghost forest is the world's castle, called Dark
Forest Keep. Levels will be spread throughout the whole island,
distributed as follows: 50 per cent of the levels are inside the light
section, 30 per cent inside the haunted section, with one or two levels
inside the transition area. The remaining 20 per cent will take place
inside the castle.
Other than on the Antarctica worldmap, the levels should
be placed on different paths, so that there is always a choice between
at least two levels. Exceptions to this (i.e. levels with no
alternative to choose from) are
a) the first level,
b) levels on one path that are in some way connected by story,
c) the (first) transition to the ghost forest section, and
d) the castle levels.
The primary goal of the forest world is to beat the boss at the final
castle level. In order to get there, Tux needs to collect five keys
scattered throughout the island which will open the door to the castle.
Thus, the paths on the worldmap should lead into five dead-ends that
hold the levels in which the key can be found. The path to the castle
is accessible from after the first level. However, when Tux tries to
enter the castle, he can't unlock the door without all five keys.
Levels:
Unlike Antarctica, forest levels can have variable sizes, both
horizontally and vertically. In addition to that, levels can have a
number of different sectors of variable size, connected by doors,
portals, script events and spawn points. Due to this variability, there
is no recommended level size anymore; the "perfect size" of a level
solely depends on its design.
The three different themes on forest world -light forest, ghost forest
and castle- are each represented by a matching tileset. All forest
levels use one of these tilesets; a general rule should be not to mix
them.
Levels in the transition area between light and ghost forest, however,
follow a different design: Those levels will have a light sector and a
very similar looking ghost forest sector. Troughout the level, Tux will
need to travel between the sectors to solve puzzles and find his way
through the level. Transition between the worlds can happen by either
a) actively walking through a portal,
b) being beamed into the other world without warning, using invisible
triggers, or
c) being caught by special badguys that have the ability to carry you
over to the other world.
Levels have the ability to autoscroll in all four
directions. There is no fixed ending sequence like in Antarctica
anymore; level designers can use scripts to determine the ending
conditions of a level. These can include picking up an object, killing
a certain enemy or reaching a certain area.
For more general information on level design, read the
file "levelguidelines.txt" in the docs directory of the SuperTux
repository.
Level events can be automated using scripts in order to create in-game
cutscenes.
Scripting:
Milestone 2 will feature a scripting system that can be used to
customize events and objects inside a level. Any level
object and badguy can trigger a script; the language used for them is
Squirrel. Scripts are embedded in a level object
definition inside the level file, macros can be defined in external
.nut files.
They can be used for the following actions:
-Create cutscenes
-Customize level objects and powerups
-Transform a level
-Manipulate levels by adding or removing objects and
badguys
-Finish a level
Powerups:
In Milestone 2 in general, the favourite way of enhancing Tux'
abilities will be through level objects that temporarily grant Tux
special abilities (see Level Objects section for more details), rather
than permanent powerups like fire and ice shots. Those will still be
there, but they'll remain relatively weak, so they don't get in the way
of level design. An ice shot will be implemented, the fire shot's
behaviour will be improved [need more detail here]. The fire shot gets
a new ability to burn through specific tiles to reveal paths. These
paths, however, should contain only bonus items like coins; it must be
possible to finish a level without needing the fire powerup.
-Ice shot
-Fire melts ice, ice freezes water
-Super Buttjump (timed)
General idea: More level objects than powerups, they can be placed
where they are needed.
Powers like fire must not get in the way of level design
Permanent Abilities:
-Flapping
-Butt Jump (permanent for big tux)
Always big Tux in forest world?
Level Objects:
-Coin - collect 100 coins to get an extra life.
-Bonus Block - contains powerups.
-Message Box - a special bonus block
that contains a message. Implemented as telephones.
-Ambient Sound - plays a looping sound effect
inside the defined range.
-Timer - adds a time limit to a level.
-Particle System - adds background visual effects
like clouds, snow, and rain.
-Door - respawns Tux at a defined
spawn point when activated.
-Spawn Point - defines the place
where Tux appears after walking through a door.
-Bell - When touched, Tux respawns at
the bell after dying.
-Trampoline - Tux can jump on them for a very
high jump; can be carried around.
-Falling Block - solid block that falls down shortly
after being touched.
-Powerup - an object that represents a powerup, such
as egg, flower, star, extra life, or potion.
-Message Trigger - display a message as soon as Tux
enters their range. Used to mark secret areas.
-Sequence Trigger - executes a script on contact.
-Moving Platform - [still needs to be defined.]
-Camera Blocker - prevents the camera from scrolling
into a specific direction. Instantly kill Tux on contact.
-Carryable Block - Blocks that can be carried around
and stacked.
-Bubble Dispenser - Releases bubbles that Tux can
use to travel upwards.
-Ice Cube/Straw Block - a block that can be
destroyed by the fire shot. Appearance depends on the world it's used
in.
Badguys:
Poison Ivy - Forest equivalent to Mr. Snowball.
Mr. Tree - Large badguy that walks around slowly.
Needs to be jumped on twice.
Mr. Rocket - Shot out of a dispenser and flies
straight into one direction. Explodes on collision.
Dispenser - Frequently shoots rockets or drops other
badguys.
Zeekling - Flies around straight left or right, and
straight towards Tux when he gets close.
other badguy ideas: bird creatures, moles, ghosts
Bosses:
Yeti
Forest Boss needed!
Engine:
Apart from the code needed to create the game elements mentioned above,
one goal is to make it easier to add custom content. Though it will not
go as far as allowing total conversations of the game, it should be
possible to easily change or add game content like graphics, levels and
sounds without touching the code. This will be accomplished by using
the PhysFS library for data handling, as well as adding functions to
browse the data folders for custom levels, worldmaps and scripts. All
game data, except music files, will be stored in a .zip archive located
in the data directory. Additional data paths can be specified using
command line options.
OpenGL only.
Graphics:
Tilesets:
Forest: light green and light brown, rain
Ghost Forest: dead trees, dark brown, dark green,
dark grey, Fog, Ghosts
Castle: add dead flowers and plants on the walls
Tilable level backgrounds
Portals
no more pipes
Sound:
Ambient sounds
Sounds with added environment effects (echoes, etc.)
Music:
Musical themes will be added for the following events and environments:
a) Two themes for the light forest world
b) Two ghost forest themes
c) One castle theme
d) Boss fight music
e) Game-Over music
f) Credits theme
There might be different Boss fight and game over themes for
every world.
An enhanced version of the main theme will be used.
Story:
More focus on the story
Cutscenes at beginning and end of every world, maybe one interlude per
world.
Level Editor:
The in-game editor will be replaced by the external editor Flexlay.
With the release of milestone 2, Flexlay should support all newly added
features like new level objects, new badguys, and scripting. Binary
packages should be available for all platforms that run SuperTux.