Solarus quests
1.6
Quest maker's reference
|
We explain here how a quest is built.
A quest is a data package that may be run by the Solarus C++ engine (either by the solarus-run
executable or by the Solarus GUI).
When you run the solarus-run
executable file, it needs the path of the quest to launch. It can be a folder or a file. This can be done at runtime by specifying the path as a command-line argument: solarus-run path/to/your/quest
. If the quest path is not specified, the current directory is considered by default, unless you compiled Solarus with another default quest path.
When you run the Solarus GUI (the solarus
executable file), you can select graphically the quest to run and you can change some settings.
In both cases, the quest may have one of the following two forms:
data
and containing all data of your quest. This form is handy when you are developing your quest. It is also the only possible form to edit your quest with Solarus Quest Editor. In fact, when you modify a map in the editor, you don't even need to restart the game.The data files represent all resources used by both the engine and the quest, such as sounds, musics, images, sprites, dialogs, maps and Lua scripts. We specify here the details for all those files.
Here is the full structure of the data
directory / zip
archive of a quest and the syntax of each file.
*
.lua: other Lua scripts, possibly organized in subdirectories.logos/logo.png
: a 200x140 logo of your quest.logos/icon_*
.png: icon of your quest with various possible sizes.sounds/*
.ogg: your sound files.musics/*
.{ogg, it, spc}: your music files.text/*
.{ttf, ttc, fon, png, ...}: your font files.languages/
: contains the language-specific files."xx"
."xx"
."xx"
.languages/xx/images/*
.png: your language-specific images.sprites/
: contains all animated sprites, possibly organized in subdirectories."xx"
.sprites/*
.png: images used by your sprites (except the tileset-dependent ones).maps/
: contains all maps of your quest."xx"
and all its entities."xx"
.tilesets/
: contains all tilesets available to maps."xx"
and all its tile patterns."xx"
.items/
: contains all equipment item Lua scripts."xx"
.enemies/
: contains all enemy Lua scripts."xx"
.entities/
: contains all custom entity Lua scripts."xx"
.shaders/
: contain all shaders and their description files."xx"
.shaders/*
.glsl: Vertex shaders and fragment shaders in GLSL or GLSL ES language.