Checkpoints: Difference between revisions
initial checkpoint documentation |
Improving formatting |
||
| Line 1: | Line 1: | ||
Checkpoints allow you to set up goals that the player can achieve to advance progress in a level. | Checkpoints allow you to set up goals that the player can achieve to advance progress in a level. | ||
With them you can move the player spawn point upon death and allow defeated enemies to remain dead. | With them you can move the player spawn point upon death and allow defeated enemies to remain dead. | ||
When the player advances progress, you can do nothing, play a dialog, spawn new enemies, or trigger a level win (load the next level). | When the player advances progress, you can do nothing, play a dialog, spawn new enemies, or trigger a level win (load the next level). | ||
You can make some of the checkpoints optional, so player progress is saved, but the player is not interrupted with a dialog, etc. | You can make some of the checkpoints optional, so player progress is saved, but the player is not interrupted with a dialog, etc. | ||
'''The types of checkpoint goals''' | '''The types of checkpoint goals''' | ||
{| class="wikitable" border="1" | |||
|- | |||
|reach | |||
|when touched, moves the player spawn point and saves defeated enemies. must touch it to complete the level/advance progress | |||
|- | |||
|reach_skippable | |||
|same as "reach" checkpoint but the player never has to reach it to complete the level/advance progress | |||
|- | |||
|defeat | |||
|the player must defeat a list of enemies to complete the level/advance progress | |||
|- | |||
|spawn_defeat | |||
|same as "defeat" checkpoint but the enemies to defeat are spawned at the beginning of that checkpoint | |||
|} | |||
== Using the checkpoint system == | == Using the checkpoint system == | ||
Start by creating a new level, or opening an existing level, and activating the editor by hitting "F1". | Start by creating a new level, or opening an existing level, and activating the editor by hitting "F1". | ||
You might want to enable debug text (Settings -> Debug -> Enable "Draw In-Game Debug Window"). | You might want to enable debug text (Settings -> Debug -> Enable "Draw In-Game Debug Window"). | ||
'''Debug keys (these will work once a level has checkpoints):''' | '''Debug keys (these will work once a level has checkpoints):''' | ||
{| class="wikitable" border="1" | |||
|- | |||
|L | |||
|reset the level to the currently achieved checkpoint | |||
|- | |||
|K | |||
|swap to the next checkpoint, or wrap around to the first (remember to hit "L" after to reset) | |||
|} | |||
'''To add the checkpoint system to a level:''' | '''To add the checkpoint system to a level:''' | ||
| Line 42: | Line 62: | ||
'''To add a "spawn_defeat" checkpoint to the level:''' | '''To add a "spawn_defeat" checkpoint to the level:''' | ||
- Do all the same as a "defeat" hotspot, but in step 2 set the value to "spawn_defeat <numbers...>" instead of "defeat <numbers...>" | - Do all the same as a "defeat" hotspot, but in step 2 set the value to "spawn_defeat <numbers...>" instead of "defeat <numbers...>" | ||
== Triggering dialogs == | |||
'''To trigger a dialog just before starting on a new goal (whether a "reach" or "defeat" goal):''' | '''To trigger a dialog just before starting on a new goal (whether a "reach" or "defeat" goal):''' | ||
Revision as of 20:10, 23 April 2017
Checkpoints allow you to set up goals that the player can achieve to advance progress in a level.
With them you can move the player spawn point upon death and allow defeated enemies to remain dead.
When the player advances progress, you can do nothing, play a dialog, spawn new enemies, or trigger a level win (load the next level).
You can make some of the checkpoints optional, so player progress is saved, but the player is not interrupted with a dialog, etc.
The types of checkpoint goals
| reach | when touched, moves the player spawn point and saves defeated enemies. must touch it to complete the level/advance progress |
| reach_skippable | same as "reach" checkpoint but the player never has to reach it to complete the level/advance progress |
| defeat | the player must defeat a list of enemies to complete the level/advance progress |
| spawn_defeat | same as "defeat" checkpoint but the enemies to defeat are spawned at the beginning of that checkpoint |
Using the checkpoint system
Start by creating a new level, or opening an existing level, and activating the editor by hitting "F1".
You might want to enable debug text (Settings -> Debug -> Enable "Draw In-Game Debug Window").
Debug keys (these will work once a level has checkpoints):
| L | reset the level to the currently achieved checkpoint |
| K | swap to the next checkpoint, or wrap around to the first (remember to hit "L" after to reset) |
To add the checkpoint system to a level:
- Load -> Load Item... -> Data/Objects/Hotspots/overgrowth_level.xml
To add a "reach" checkpoint to the level:
1. Add the checkpoint hotspot to the scene. This is the trigger for the checkpoint. Load -> Load Item... -> Data/Objects/Hotspots/overgrowth_level_checkpoint.xml
2. Add the placeholder object to the scene. This is the player spawn. Load -> type "placeholder"
3. Set the checkpoint hotspot "checkpoint_id" parameter to a value starting at 0 and increasing for each checkpoint you add
4. Set the checkpoint hotspot "level_hotspot_id" parameter to the object id of the overgrowth_level hotspot
5. Add a "goal_<number>" parameter to the overgrowth_level hotspot and set the value to "reach <number>", with the number from step 3
6. Add a value to the overgrowth_level hotspot "player_spawn" parameter, delimited with spaces, with the id of the placeholder object from step 2 ("437 243 121"). The order matters, and the id for checkpoint 0 should go in the first spot, checkpoint 1 in the second spot, etc.
To add a "reach_skippable" checkpoint to the level:
- Do all the same as a "reach" hotspot, but in step 5 set the value to "reach_skippable <number>" instead of "reach <number>"
To add a "defeat" checkpoint to the level:
1. Add an enemy to the level 2. Add a "goal_<number>" parameter to the overgrowth_level hotspot and set the value to "defeat <number>", with the object id of the enemy from step 1 3. Add additional enemy ids in the form of "defeat <some_enemy_id> <other_enemy_id>", just like in step two (e.g. "defeat 4 72 8")
To add a "spawn_defeat" checkpoint to the level:
- Do all the same as a "defeat" hotspot, but in step 2 set the value to "spawn_defeat <numbers...>" instead of "defeat <numbers...>"
Triggering dialogs
To trigger a dialog just before starting on a new goal (whether a "reach" or "defeat" goal):
1. Add a dialog to the level and get it working with the dialog editor 2. Add a "goal_<number>_pre" parameter to the overgrowth_level hotspot and set the value to "dialog <dialogname>", with the dialog name from step 1, and the number of the goal you want the dialog to be triggered before. (e.g. "goal_5_pre") 3. Note that the dialog will be started again if you die and respawn, and the dialog can be used to set a new spawn point for the player
To trigger a dialog just after achieving a checkpoint goal (whether a "reach" or "defeat" checkpoint):
- Do all the same as a dialog triggered before progressing to a given checkpoint, but name the parameter "goal_<number>_post" (e.g. "goal_5_post")