Initial setup of respawn points
1. Introduction
Beginning with v1.45, the KMP compiler supports an automatic setup of
respawn points (
KMP/JGPT) and also an automatic way to assign respawn points
to the check points (
KMP/CKPT).
Beginning with v1.46, the KMP compiler supports flags for KMP sections
ENPT, ITPT and JGPT to allow an easy deactivation of automatic calcualtions
for single points.
This automatic respawn definition makes an initial setup much easier and faster.
However, the user must edit the proposal especially on parts,
where a check point overlaps another check point on different height.
The automatic respawn definitions is done in 5 steps:
-
The user have to setup a good ENPT section (enemy points) with correct height.
Alternatively the section ITPT (item points) can be used.
Single points can be disabled for the automatic calcualtions by removing flags.
-
The user defines some parameters and the KMP compiler creates a complete
new list of respawn points (JGPT) with a good height and direction
by using the enemy or item route.
Flags will help to exclude points from the automatic creation.
It is possible to add manuall defined respawn points.
-
The user defines another parameter for an automatic assigning
of the nearest respawn point to each check point (CKPT).
-
The user edits the assignments for an optimization.
-
A last parameter setting advices the KMP compiler to remove all unused
respawn points and to reorder the others.
This tutorial use the KMP development of
Yoshi Lagoon v1.2 as example.
The new features of the KMP compiler were imlemented while editing the KMP.
Look into the final KMP text file
for details and to learn the power of the KMP compiler.
2. Setup enemy or item route
Good enemy and also item route are mandatory for each track. Especially the
item route have to cover all standard short cuts, that players use.
As told above, we use Yoshi Lagoon v1.2
as example. First I remade the main ENPT route (see first image) and tested it.
I used the same route for ITPT by creating a macro and call it in both sections:
@macro pt_route
@param is_itpt # 0:ENPT, 1:ITPT
@KCL-FALL-WIDTH = 200
@KCL-FALL-PRE-ADD = 500
@KCL-FALL-POST-ADD = 0
@KCL-FALL-TYPES = KCL$BORDER
$GROUP G1, next: G2A*2 G2B
...
@endmacro
[ENPT]
@:pt_route(0)
[ITPT]
@:pt_route(1)
For the test I watched the computer enemies at minimap and in real to find out,
where I can optimize the route.
Once done, I added junctions and joins to cover all possible routes
(second image). In all steps I placed the points in regard to respawn areas
and exclude not usable points from automatic respawn by removing the flags
'J':
25 10050.0 5001.0 -23000.0 10.0 0x3 0xa F--
26 7600.0 5001.0 -24800.0 10.0 0x3 0x1 ---
27 5000.0 5001.0 -25800.0 10.0 0x3 0x1 -SJ
Flag
'F' is also removed for some points, to exclude them from automatic
height correction.
Another interesting aspect are route multiplactors:
$GROUP G1, next: G2A*2 G2B
Route multiplactors are only relevant for enemy routes.
The example says, that 2 of 3 enemies go to G2A, and 1 of 3 to G2B.
The sum of all multiplactors is limited to 6,
because the KMP supports only 6
next entries.
These multiplicators are ignored for item routes.
3. Automatic definition of respawn points
This step is very easy. Go to section
[JGPT] and define:
[JGPT]
@AUTO-DEFINE = SECT$ENPT
@AUTO-DISTANCE = 1000.0
@AUTO-ADJUST = vy(1)
@AUTO-REMOVE = 2
Remove all manually defined respawn points, that are not needed any longer.
In case of
Yoshi Lagoon all respawn points were removed.
Here you can set AUTO-REMOVE to 0,
if you want remove the unnused respawn points later.
4. Assign respawn points to check points
Then I setup the check points. I began with a single section without any junctions.
Then I add all needed junctions and joints step by step.
To enable the automatic assignment of respawn points
and also the automatic calculation of next and prev references,
I enabled both with:
[CKPT]
@AUTO-RESPAWN = 1
@AUTO-NEXT = 1
Another hint for junctions and parallel check point routes:
The best is to cover the complete area. So it is possible
and a good choice, that both routes overlay a little bit.
If you look at the image, you see, that the left border (red) of the upper
route is slightly lower than the right border (green) of the lower route.
5. Remove unneeded respawn points
If not already done, remove unneeded respawn points:
[JGPT]
@AUTO-REMOVE = 2