added milestone 2 specifications document - see mailing list for details.
[supertux.git] / docs / milestone2.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4   <meta content="text/html; charset=ISO-8859-1"
5  http-equiv="content-type">
6   <title>SuperTux - Milestone 2 Specifications</title>
7 </head>
8 <body>
9 <div style="text-align: center;"><big>SuperTux Milestone 2</big><br>
10 <br>
11 <div style="text-align: left;"><span style="font-weight: bold;">Spoiler
12 Warning:<br>
13 </span><small style="font-weight: bold;">This document contains a very
14 detailed description about SuperTux milestone 2, including every new
15 feature, as well as the full story.</small><span
16  style="font-weight: bold;"><small style="font-weight: bold;"> If you
17 only want to play SuperTux and you are not interested in the
18 development process, you should not read any further, as it will give
19 away a lot of surprises; however, if you are involved in developing the
20 game, reading this is a requirement.</small><br>
21 </span></div>
22 <div style="text-align: left;"><small><br>
23 <br>
24 Worldmap:<br>
25 After finishing Antarctica by beating the worlds boss, a cutscene,
26 replacing the currently displayed text, will be shown. (For a detailed
27 description of cutscenes, see section "Story".) Tux will then advance
28 to world 2, the forest island. Its worldmap will be built using the
29 same, possibly enhanced, format that Antarctica uses. The worldmap will
30 be designed as follows: The island consists of four sections. A light
31 friendly looking forest where Tux starts his journey, a ghost forest
32 section, and a transition between them; in the center of the island,
33 surrounded by the ghost forest is the world's castle, called Dark
34 Forest Keep. Levels will be spread throughout the whole island,
35 distributed as follows: 50 per cent of the levels are inside the light
36 section, 30 per cent inside the haunted section, with one or two levels
37 inside the transition area. The remaining 20 per cent will take place
38 inside the castle.</small><small><br>
39 </small><small>Other than on the Antarctica worldmap, the levels should
40 be placed on different paths, so that there is always a choice between
41 at least two levels. Exceptions to this (i.e. levels with no
42 alternative to choose from) are<br>
43 a) the first level,<br>
44 b) levels on one path that are in some way connected by story,<br>
45 c) the (first) transition to the ghost forest section, and<br>
46 d) the castle levels.<br>
47 The primary goal of the forest world is to beat the boss at the final
48 castle level. In order to get there, Tux needs to collect five keys
49 scattered throughout the island which will open the door to the castle.
50 Thus, the paths on the worldmap should lead into five dead-ends that
51 hold the levels in which the key can be found. The path to the castle
52 is accessible from after the first level. However, when Tux tries to
53 enter the castle, he can't unlock the door without all five keys.<br>
54 </small><small><br>
55 <br>
56 Levels:<br>
57 Unlike Antarctica, forest levels can have variable sizes, both
58 horizontally and vertically. In addition to that, levels can have a
59 number of different sectors of variable size, connected by doors,
60 portals, script events and spawn points. Due to this variability, there
61 is no recommended level size anymore; the "perfect size" of a level
62 solely depends on its design.<br>
63 The three different themes on forest world -light forest, ghost forest
64 and castle- are each represented by a matching tileset. All forest
65 levels use one of these tilesets; a general rule should be not to mix
66 them.<br>
67 Levels in the transition area between light and ghost forest, however,
68 follow a different design: Those levels will have a light sector and a
69 very similar looking ghost forest sector. Troughout the level, Tux will
70 need to travel between the sectors to solve puzzles and find his way
71 through the level. Transition between the worlds can happen by either<br>
72 a) actively walking through a portal,<br>
73 b) being beamed into the other world without warning, using invisible
74 triggers, or<br>
75 c) being caught by special badguys that have the ability to carry you
76 over to the other world.<br>
77 </small><small>Levels have the ability to autoscroll in all four
78 directions. There is no fixed ending sequence like in Antarctica
79 anymore; level designers can use scripts to determine the ending
80 conditions of a level. These can include picking up an object, killing
81 a certain enemy or reaching a certain area.<br>
82 </small><small>For more general information on level design, read the
83 file "levelguidelines.txt" in the docs directory of the SuperTux
84 repository.<br>
85 Level events can be automated using scripts in order to create in-game
86 cutscenes.<br>
87 <br>
88 Scripting:<br>
89 Milestone 2 will feature a scripting system that can be used to
90 customize events and objects inside a level. </small><small>Any level
91 object and badguy can trigger a script; the language used for them is
92 Squirrel. </small><small>Scripts are embedded in a level object
93 definition inside the level file, macros can be defined in external
94 .nut files. </small><small><br>
95 </small><small>They can be used for the following actions:<br>
96 &nbsp;&nbsp;&nbsp; -Create cutscenes<br>
97 &nbsp;&nbsp;&nbsp; -Customize level objects and powerups<br>
98 &nbsp;&nbsp;&nbsp; -Transform a level<br>
99 &nbsp;&nbsp;&nbsp; -Manipulate levels by adding or removing objects and
100 badguys<br>
101 &nbsp;&nbsp;&nbsp; -Finish a level<br>
102 </small><small><br>
103 </small><small>Powerups:<br>
104 &nbsp;&nbsp;&nbsp; -Super Buttjump<br>
105 We are in desperate need of ideas and, most importantly, final
106 decisions on that topic.<br>
107 </small><small><br>
108 </small><small>Permanent Abilities:<br>
109 &nbsp;&nbsp;&nbsp; -Flapping<br>
110 &nbsp;&nbsp;&nbsp; -Butt Jump<br>
111 <br>
112 </small><small>Level Objects:<br>
113 &nbsp;&nbsp;&nbsp; -Coin - collect 100 coins to get an extra life.<br>
114 &nbsp;&nbsp;&nbsp; -Bonus Block - contains powerups.<br>
115 </small><small>&nbsp;&nbsp;&nbsp; -Message Box - a special bonus block
116 that contains a message. Implemented as telephones.</small><br>
117 <small>&nbsp;&nbsp;&nbsp; -Ambient Sound - plays a looping sound effect
118 inside the defined range.<br>
119 &nbsp;&nbsp;&nbsp; -Timer - adds a time limit to a level.<br>
120 &nbsp;&nbsp;&nbsp; -Particle System - adds background visual effects
121 like clouds, snow, and rain.<br>
122 </small><small>&nbsp;&nbsp;&nbsp; -Door - respawns Tux at a defined
123 spawn point when activated.<br>
124 </small><small>&nbsp;&nbsp;&nbsp; -Spawn Point - defines the place
125 where Tux appears after walking through a door.<br>
126 </small><small>&nbsp;&nbsp;&nbsp; -Bell - When touched, Tux respawns at
127 the bell after dying.</small><br>
128 <small>&nbsp;&nbsp;&nbsp; -Trampoline - Tux can jump on them for a very
129 high jump; can be carried around.<br>
130 &nbsp;&nbsp;&nbsp; -Falling Block - solid block that falls down shortly
131 after being touched.<br>
132 &nbsp;&nbsp;&nbsp; -Powerup - an object that represents a powerup, such
133 as egg, flower, star, extra life, or potion.<br>
134 &nbsp;&nbsp;&nbsp; -Message Trigger - display a message as soon as Tux
135 enters their range. Used to mark secret areas.<br>
136 &nbsp;&nbsp;&nbsp; -Sequence Trigger - executes a script on contact.<br>
137 &nbsp;&nbsp;&nbsp; -Moving Platform - <br>
138 &nbsp;&nbsp;&nbsp; -Camera Blocker - prevents the camera from scrolling
139 into a specific direction. Instantly kill Tux on contact.<br>
140 &nbsp;&nbsp;&nbsp; -Carryable Block - Blocks that can be carried around
141 and stacked.<br>
142 <br>
143 Badguys:<br>
144 &nbsp;&nbsp;&nbsp; Poison Ivy - Forest equivalent to Mr. Snowball.<br>
145 &nbsp;&nbsp;&nbsp; Mr. Tree - Large badguy that walks around slowly.
146 Needs to be jumped on twice.<br>
147 &nbsp;&nbsp;&nbsp; Mr. Rocket - Shot out of a dispenser and flies
148 straight into one direction. Explodes on collision.<br>
149 &nbsp;&nbsp;&nbsp; Dispenser - Frequently shoots rockets or drops other
150 badguys.<br>
151 &nbsp;&nbsp;&nbsp; Zeekling - Flies around straight left or right, and
152 straight towards Tux when he gets close.<br>
153 &nbsp;&nbsp;&nbsp; other badguy ideas: bird creatures, moles, ghosts<br>
154 <br>
155 Bosses:<br>
156 &nbsp;&nbsp;&nbsp; Yeti<br>
157 &nbsp;&nbsp;&nbsp; Forest Boss needed!</small><small><br>
158 </small><br>
159 <small>Engine:<br>
160 Apart from the code needed to create the game elements mentioned above,
161 one goal is to make it easier to add custom content. Though it will not
162 go as far as allowing total conversations of the game, it should be
163 possible to easily change or add game content like graphics, levels and
164 sounds without touching the code. This will be accomplished by using
165 the PhysFS library for data handling, as well as adding functions to
166 browse the data folders for custom levels, worldmaps and scripts. All
167 game data, except music files, will be stored in a .zip archive located
168 in the data directory. Additional data paths can be specified using
169 command line options.<br>
170 <br>
171 Graphics:<br>
172 &nbsp;&nbsp;&nbsp; Tilesets:<br>
173 &nbsp;&nbsp;&nbsp; Forest: light green and light brown, rain<br>
174 &nbsp;&nbsp;&nbsp; Ghost Forest: dead trees, dark brown, dark green,
175 dark grey, Fog, Ghosts<br>
176 &nbsp;&nbsp;&nbsp; Castle: add dead flowers and plants on the walls<br>
177 &nbsp;&nbsp;&nbsp; Tilable level backgrounds<br>
178 &nbsp;&nbsp;&nbsp; Portals<br>
179 <br>
180 Sound:<br>
181 &nbsp;&nbsp;&nbsp; Ambient sounds<br>
182 &nbsp;&nbsp;&nbsp; Sounds with added environment effects (echoes, etc.)<br>
183 <br>
184 Music:<br>
185 Musical themes will be added for the following events and environments:<br>
186 a) Two themes for the light forest world<br>
187 b) Two ghost forest themes<br>
188 c) One castle theme<br>
189 </small><small>d) Boss fight music<br>
190 e) Game-Over music<br>
191 </small><small>f) Credits theme</small><br>
192 <small>There might be different Boss fight and game over themes for
193 every world.<br>
194 An enhanced version of the main theme will be used.<br>
195 <br>
196 Story:<br>
197 Cutscenes at beginning and end of every world, maybe one interlude per
198 world.<br>
199 <br>
200 Level Editor:<br>
201 The in-game editor will be replaced by the external editor Flexlay.
202 With the release of milestone 2, Flexlay should support all newly added
203 features like new level objects, new badguys, and scripting. Binary
204 packages should be available for all platforms that run SuperTux.<br>
205 </small></div>
206 </div>
207 </body>
208 </html>