Created how-to guide about singleplayer missions.
authoralmikes@aol.com
Tue, 28 Jul 2015 14:45:30 +0000
changeset 566 dc9a1250fe28
parent 565 55d662a30467
child 567 17cf8a0c007f
Created how-to guide about singleplayer missions.
Missions.wiki
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Missions.wiki	Tue Jul 28 14:45:30 2015 +0000
@@ -0,0 +1,68 @@
+#summary How to create singleplayer missions
+
+= Missions =
+== Introduction ==
+Missions can be played in singleplayer mode and are selected from the single player menu in the mission menu (the hedgehog at the blackboard).
+
+== Mission files ==
+Only the Lua script is needed, the other files/data are optional. But it is still recommended to create them.
+
+=== The mission's Lua script ===
+This is the heart of your mission. Here you will set up the mission and define the entire game logic of the mission.
+
+See [LuaGuide], [LuaAPI] and [LuaLibraries] for more information about scripting.
+
+This file needs to be saved in `Data/Missions/Training`. The file name must end with “`.lua`”. Remember the file name, you will need it for the other files.
+
+==== Hints ====
+In mission scripting, some patterns appear often, so here are some hints for your convenience (Refer to [LuaAPI] for a full documentation):
+
+ * Start with `onGameInit` to set up the most basic environment parameters, teams, hedgehogs, etc.
+ * Important set up functions: `AddTeam`, `AddHog`, `AddGear`, `SetGearPosition`.
+ * You probably almost always want to call `ShowMission` at the beginning of the game (`onGameStart`) to show the objectives of your mission.
+ * Enable the game flag `gfOneClanMode` if you need only one clan for your mission.
+ * Normally, the game ends when all hedgehogs are dead or one clan is remaining (unless `gfOneClanMode` is set). You can call `EndGame` to end the game manually.
+ * Call `SendStat` to customize the statistics screen.
+ * Use the [LuaLibraries#Locale Locale] library to make your mission translatable. Enclose the human-readable texts in `loc`.
+ * When making your mission translatable, use Lua's `string.format` to insert numbers and other strings instead of just concatenating everything together.
+ * If you want to create complex animations and/or cinematics, include and use the [LuaLibraries#Animate Animate] library.
+
+=== Preview image ===
+The preview image is displayed in the mission menu when you have selected the mission.
+It must be a PNG image of size 314px×260px.
+
+The file must be saved in `Data/Graphics/Missions/Training`. The file name must follow this pattern:
+
+`<mission name>@2x.png`
+
+Where `<mission name>` is name of the mission script without the file name suffix.
+
+For example, the preview image for the mission script `User_Mission_-_Teamwork.lua` must have the name `User_Mission_-_Teamwork@2x.png`.
+
+=== Mission title and description ===
+The mission title and its description as shown in the mission menu must be edited in the missions files in `Data/Locale`. The file name is `missions_<language code>.txt`. There is one file per language. I.e. `missions_en.txt` for English, `missions_de.txt` for German, etc. Note that these files are supposed to contain the titles and descriptions of *all* missions on your computer. This makes these files unsuitable for sharing or inclusion into [HWPFormat HWP files], for example.
+
+To add the title an description for your mission, just add these 2 lines into the file according to this syntax:
+
+{{{
+<mission name>.name=<mission title>
+<mission name>.desc=<mission description>
+}}}
+
+ * `<mission name>` is the file name of the mission script without the file suffix.
+ * `<mission title>` is the mission title as shown in the mission menu.
+ * `<mission description>` is a short description of the mission, also only shown in the mission menu.
+
+You can optionally enclose `<mission title>` and `<mission description>` in quotation marks (they will be removed by the game).
+
+If the mission title and description are missing, the mission menu will derive the title from the file name of the Lua script instead and shows no description.
+
+For more information about translating Hedgewars, see [Translations].
+
+==== Example ====
+Here are the English title and description of the mission “Bamboo Thicket” (file name of script: “`User_Mission_-_Bamboo_Thicket.lua`”):
+
+{{{
+User_Mission_-_Bamboo_Thicket.name=Mission: Bamboo Thicket
+User_Mission_-_Bamboo_Thicket.desc="Death comes from above."
+}}}
\ No newline at end of file