TuxCourser

Documentation

This will become a repository of information regarding the 0.6x and 1.x file formats. It will also describe how to go about implementing various features.

There will be true organization soon enough, but for now, please enjoy this monolithic page. :-)

Race vs Opponents!

I got to thinking about how to best implement a method for generating ai_targets in order to play maps against the computer. And then I thought of something... Play the free tuxracer game, and have a few extra statements to output things like time and location. Then translate this output as needed, and use in the commercial version. Well, it worked... sort of. Can't seem to get multiple opponents, each with their own path. As is, they all follow each other. I'll post more useful info soon, but until then, here's a screenshot of everyone on the bunny hill.

An issue is that the rotations are all messed up... So the opponent will head merrily down the slope, but possibly not facing the right direction. Still working on transforming them properly. It basically comes down to directional vectors vs. rotations.

0.6x style objects in 1.1

It's possible to display 0.6x-style trees, and presumably other objects. Describe.

Coordinates in items.tcl

The 1.1 file format

(Everything else)

A Bug in the commercial version

An issue was found while trying to play one of the courses converted from the OpenRacer project (Ramps). Basically, after conversion, the elevations were completely messed up. A quick check showed that the elev.png file was indeed converted properly. But somehow, Tux Racer decided to render it wrong.

The issue seems to be related to the size of the input file. The Ramps data is 101 pixels wide by 1009 pixels long. If the width is changed to 102 pixels, the problem goes away. Some more testing reveals that TuxRacer simply does not deal with elevation files that have an odd width.

So a workaround is easy, right? Well, it's not trivial by any means, but it's not too difficult either. The real issue is how true to the original course it should be. The elevation, terrain and even items should look like they belong. For example, a grove of trees on the edge of a course should be extended to the new area.

As of now, the elevation and terrain are copied to the new line. Objects are not, as this requires a fair bit more work. Also, things like the course dimensions may be affected by this. More investigation is needed, but for the time being it is good enough.

Customizing the environment

Music, background, L10N

The 0.6x format

(Point to other docs here, possibly even consolidate)