
- Level editing for SuperTux -
http://super-tux.sf.net/

Last update: April 26, 2004

This document describes both the level format and
the level editor.

= LEVEL FORMAT =

The level format used to be pretty easy to understand, but it
is now more complex. Anyway, should be pretty useful to know
a bit of it, when you want to do stuff just as to just change
the author's name or something small.

It uses the Lisp syntax and is pretty intuitive. Here have a
look at a quotation:
(Comments can be made using ';')

; This is a comment!
(supertux-level
; some level info: version, author and the level's name
  (version 1)
  (author "Ingo Ruhnke")
  (name "Night Chill")
; number of tiles used (currently the height has to be 15)
  (width  515)
  (height 15)
; Tux's start position
  (start_pos_x    100)
  (start_pos_y    170)
; Background image; if none is specified, the color below will be used
  (background "")
; Music file
  (music "Mortimers_chipdisko.mod")
; Colors, as you can see you can have different colors in the top
; and in the bottom, thus creating a gradient
  (bkgd_red_top    0)
  (bkgd_green_top  0)
  (bkgd_blue_top   0)
  (bkgd_red_bottom    120)
  (bkgd_green_bottom  120)
  (bkgd_blue_bottom   0)
; Time (it is not in seconds!)
  (time  300)
; Gravity to be used (you should let it stay in 10 for ordinary levels)
  (gravity  10)
; The particle system draws images that simulate weather effects
; As of the writing of this text, both "snow" and "clouds" are supported
  (particle_system "snow")
; Theme is the tileset that is used
  (theme "antarctica")
  (interactive-tm
    ; here goes a lot of numbers that are the tiles places
  )
; Reset points; there can be more than one
; Reset points are positions where the player passes through and
; if he dies, he will be back to there. They are invisible
  (reset-points
    (point (x 6988) (y 222))
   )
; Objects include enemies, may include more stuff in the future
; just as moving plataforms...
  (objects
    (mriceblock  (x 13919) (y 384))
    (mriceblock  (x 14258) (y 366))
    (mriceblock  (x 12996) (y 248))
    (mriceblock  (x 13058) (y 250))
    (mriceblock  (x 12933) (y 245))
  )
   )


= LEVEL EDITORS =

USING THE BUILT-IN LEVEL EDITOR:
--------------------------------

When opening the leveleditor, a menu will appear. This menu
can be used to select or add level subsets. A level subset is
a collection of levels. Subsets can be chose during gameplay
when starting a game.

After selecting the subset, have a look at the level editor.
The button bar in the right is the place where you can control
the actions related with editing. You can select levels and add
throught there.

To select tiles (foreground or background) and enemies, the button
bar is the right place. There you can also save, test and setup
the level. It is also possible between two selection cursors! Give
a try to both. A right click in a button bar button will give you
a description and a shortcut for it.

To change a tile, just press the tile you want to change with a
left mouse click. The current tile will be used. Depending
on the selection behavior, you can or not select more
than one tiles.

To scroll, you just have to point over the two arrow buttons, or
use the right button click.

There is a small help that can be reached by pressing F1.

To go back to the menu, just press Esc.

The levels are saved under a .supertux/levels directory in
your home directory.


USING FLEXLAY:
--------------

FlexLay is an external project (it even uses different libraries)
that is developed by Ingo Ruhnke and supports a lot of different
games, including SuperTux (or else we wouldn't mention it :) ).

Anyway, it is pretty easy to use and is a lot more advanced than
the internal one. So, if you are considering doing a few levels
for us, it would be a good idea to check this out.

Its webpage is located at:
http://pingus.seul.org/~grumbel/flexlay/

It needs ClanLib and a few odd libraries... Anyway, it's worth
it ;)

The only cons it has is that you have to have an accelerated
videocard (with the drivers working, obviously). For linux,
we advise nvidia videocards with the use of nvidia's closed
drivers. ATI drivers should be enough to run this game though.


= CONCLUSION =

To sum up, go build lots of levels and HAVE FUN!!

Please, send your levels or any art, including sketches, you
have created to the SuperTux mailing list.


    - SuperTux developers
