extremetuxracer/doc/courses_events

140 lines
6.1 KiB
Plaintext

Extreme Tux Racer - Courses, Cups and Events...
by Reinhard Niehoff, edited by Kristian Picon
----------------------------------------------------
The new course format
----------------------------------------------------
It's not really new, there are only some minor changes from
ETR 0.4. The 3 maps (elev.png, terrain.png and trees.png) are the same
as in ETR. The preview is a bit larger now (192 x 144). I've taken all
preview shots without huds, but that's a matter of taste.
The most significant change is the new format for course description.
Up to now the params were listed in the file course.tcl. Now we use
an SP list for this purpose. The syntax differs but the content is
almost the same: course dimensions, start point, angle and scale are
the same as of this writing. But there are some additional entries:
[env] etr
With this environment entry you select the location, not the weather
or time of day. Currently there are 2 locations, each with the
well-known 4 lightings (sunny, foggy, evening, night). Without this entry
the location will fall back to standard (tuxracer).
There is also:
[start_keyframe] tux_jump.lst
[success_keyframe] tux_joice.lst
[failure_keyframe] tux_sad.lst
[final_keyframe] tux_wait.lst
These entries are not used yet since there is only the start keyframe
implemented. In future versions there will be some keyframes for the
finish stage, too.
----------------------------------------------------
trees.png or items.lst?
----------------------------------------------------
In trees.png each tree or other object is marked as a colored dot.
This bitmap corresponds to the other bitmaps (elev.png for the height
and terrain.png for the textures). The advantage of the trees.png is
that the objects can be positioned in a fast and easy way. However, the bitmap
can store only the position, no information about scale, rotation,
collision, sound etc. For more particular description of the objects
ETR uses the text file items.lst. This method has a disadvantage,
too. It's very difficult and fiddly to edit this file, specifically
the positioning of objects is almost impossible.
ETR can read both the trees.png and the items.lst. This facilitates
the procedure considerably. It is best to position items in two steps. First
you should create or edit trees.png with all objects. Then, you can edit
and complete the entries in items.lst, if desirable or necessary.
How do trees.png and items.lst work together? In ETR the items.lst
has priority. If this file can be found, it is loaded and used while
trees.png is ignored. If items.lst doesn't exist, ETR loads
trees.png instead, generates an items list, and saves this list immediately.
Sometimes you may want to use trees.png even though an items list is present.
In this case you can type "t" on the race_select screen. But watch out!
The existing items.lst will be overwritten, that can be fatal if the list
already contains a lot of manual changes. It's strongly advised that one
backup the items list after having edited it manually.
Another aspect:
Trees should have different sizes, otherwise they look boring and too synthetic.
When Tuxracer reads the trees.png it scales the trees at random (height
and diameter). You can find these values in the automatically generated
items.lst. If you are not content with the appearance you should use the
trees.png again (see hint above). The range of size variation and the basic
size can be adjusted on the race_select screen (press "c" and "v", see the
End User Documentation in the guide file for more info).
In future versions, the items list will contain more information: scale,
rotation, exact position, etc. Then an entry in items.lst can look like this:
[pos] 23.5 0.0 -135.9 [scale] 3.4 1.9 2.1 [rotation] -15 27 -22
Notice that the y-position is 0.0. This value is not used since it can
be exactly calculated when the course is loaded.
--------------------------------------------------
What about rotation in current version?
--------------------------------------------------
The rotation can't be adjusted and is not done at random like the scaling.
Nevertheless all trees are a bit rotated (1°). Which is necessary to avoid
flickering if 2 trees are at same z-postion and close together. The
flickering is a result of parallel intersection of textures.
--------------------------------------------------
Defining courses and events
--------------------------------------------------
You must tell ETR 0.5.5 that a course exists. That's different from 0.4 and
PPRacer where the course directory is scanned by TCL. The course list
(courses.lst) has an extremely simple structure:
*[name] Twisty Slope [dir] twisty_slope
[desc] Tight twists make grabbing herring difficult. Hard turns ...
*[name] ...
A (little) advantage is that you can specify the order of the courses on
the race_select screen. Or you can deactivate a course by commenting out the
entry.
The event list (events.lst) is a bit more complex, but still easier than the list in
ETR 0.4 or PPRacer. The list consists of 3 parts, the first is where the
races are:
*[struct] 0 [race] race_bunnyhill [course] bunny_hill [light] sunny [snow] 0 [wind] 0
[herring] 20 22 23 [time] 37 34 30
*[struct] 0 [race] race_twistyslope [course] twisty_slope [light] night [snow] 0 [wind] 0
[herring] 21 23 24 [time] 43 39 34
This is essentially the same as the course list, but completed with information
about the weather conditions and the race challenges. A course may be used
multiple times and redefined with different conditions.
The second part contains the cups:
*[struct] 1 [cup] canadian [name] Canadian Cup
[num] 3 [1] race_bunnyhill [2] race_twistyslope [3] race_bumpyride
[desc] The classic Tuxracer cup for beginners. Learn to paddle ...
The cup entries access one or more races (see second line). Additional
there is a description that appears on the event_select screen.
The third and last part contains the events. The following entry
describes the only event in the current program:
*[struct] 2 [event] classics [name] Tux Racer Classics
[num] 2 [1] canadian [2] swiss
--
Good luck with your course creation!