User talk:Maikel: Difference between revisions

Maikel (talk | contribs)
No edit summary
Maikel (talk | contribs)
No edit summary
Line 1: Line 1:
Test for Tutorial: Creating a parkour
Test for Tutorial: Creating a parkour
This tutorial provides a basis for scenario designers wanting to create a parkour. It explains the basics and some extended features of the parkour goal. Furthermore some elementary design issues for parkours will be addressed.
== Parkour ==
A parkour is basically an extended race, players have to get from start to finish but have to pass checkpoints in between. The parkour goal gives the scenario designer options to adjust the path, thereby increasing the challenge for the players. Other features would be creating team parkours, where players need to split up and complete different paths to join forces later. On the player's side rounds get less frustrating since you would only have to redo parts of a parkour, as you respawn at the latest passed checkpoint.


== Scenario script ==
== Scenario script ==
 
The parkour goal can not be created through a Scenario.txt entry, since the checkpoints have to be created manually. Thus the obvious location to create the parkour goal is in the scenario script, an example of such a script is given here.
The parkour goal can not be created through a Scenario.txt entry, since the checkpoints have to be created manually.


  protected func Initialize()
  protected func Initialize()
  {
  {
  var goal = CreateObject(Goal_Parkour);
// ''First create the goal and store it.''
var goal = CreateObject(Goal_Parkour);
// ''Place the start at the left of the map.''
goal->SetStartpoint(50, LandscapeHeight() / 2);
// ''Place some checkpoints from left to right at random height in between.''
var cp_count = 10;
for (var cp_num = 1; cp_num <= cp_count; cp_num++)
{
var x = cp_num * LandscapeWidth() / cp_count;
var y = Random(LandscapeHeight());
var cp_mode = PARKOUR_CP_Check | PARKOUR_CP_Respawn | PARKOUR_CP_Ordered;
goal->AddCheckpoint(x, y, cp_mode);
}
// ''Place the finish at the right of the map.''
goal->SetFinishPoint(LandscapeWidth() - 50, LandscapeHeight() / 2);
   
   
   return;
   return;
  }
  }


This of course cries for an explanation.
== Checkpoints ==
A checkpoint can have various modes, these can be assigned using a bit mask. The different modes are
PARKOUR_CP_Start
PARKOUR_CP_Finish
PARKOUR_CP_Check
PARKOUR_CP_Respawn
PARKOUR_CP_Ordered
PARKOUR_CP_Team


== Landscape ==
== Landscape ==


Dynamic vs. static.
Dynamic vs. static.
=== Example ===

Revision as of 16:25, 2 November 2010

Test for Tutorial: Creating a parkour


This tutorial provides a basis for scenario designers wanting to create a parkour. It explains the basics and some extended features of the parkour goal. Furthermore some elementary design issues for parkours will be addressed.

Parkour

A parkour is basically an extended race, players have to get from start to finish but have to pass checkpoints in between. The parkour goal gives the scenario designer options to adjust the path, thereby increasing the challenge for the players. Other features would be creating team parkours, where players need to split up and complete different paths to join forces later. On the player's side rounds get less frustrating since you would only have to redo parts of a parkour, as you respawn at the latest passed checkpoint.

Scenario script

The parkour goal can not be created through a Scenario.txt entry, since the checkpoints have to be created manually. Thus the obvious location to create the parkour goal is in the scenario script, an example of such a script is given here.

protected func Initialize()
{
	// First create the goal and store it.
	var goal = CreateObject(Goal_Parkour);
	
	// Place the start at the left of the map.
	goal->SetStartpoint(50, LandscapeHeight() / 2);

	// Place some checkpoints from left to right at random height in between.
	var cp_count = 10;
	for (var cp_num = 1; cp_num <= cp_count; cp_num++)
	{
		var x = cp_num * LandscapeWidth() / cp_count;
		var y = Random(LandscapeHeight());
		var cp_mode = PARKOUR_CP_Check | PARKOUR_CP_Respawn | PARKOUR_CP_Ordered;
		goal->AddCheckpoint(x, y, cp_mode);
	}

	// Place the finish at the right of the map.
	goal->SetFinishPoint(LandscapeWidth() - 50, LandscapeHeight() / 2);

 	return;
}

This of course cries for an explanation.

Checkpoints

A checkpoint can have various modes, these can be assigned using a bit mask. The different modes are

PARKOUR_CP_Start
PARKOUR_CP_Finish
PARKOUR_CP_Check
PARKOUR_CP_Respawn
PARKOUR_CP_Ordered
PARKOUR_CP_Team

Landscape

Dynamic vs. static.