Difference between revisions of "Checkpoints"

From Wolfire Games Wiki
Jump to: navigation, search
(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'''
  - "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
 
  
 +
{| 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):'''
  - "L" will reset the level to the currently achieved checkpoint
+
 
  - "K" will let you swap to the next checkpoint, or wrap around to the first (remember to hit "L" after to reset)
+
{| 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 03:10, 24 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")