The Racing Line is a
program designed to recalculate the racing groove, found on every Grand Prix
Legends track. To begin with, the program supports the original 11
tracks. Why is this A Good Thing? Well, when Papyrus created
each track, they didn't have the services of all the hotlapping aliens doing
thousands of laps to find the ultimate limit of each corner. Four years
later, and we're still following those racing lines created way back then!
Even if you know you have to brake 'just past that spectator', actually
having a spot marked out in front of you on-track helps no-end. Since
running a few dozen laps at Watkins Glen, I've broken all my P.B's by some
margin, and Greg has reported that his lap time consistency has greatly improved.
What's New?
7-Nov-2002: First release
31-Dec-2002: Second release
* Tracked down a bug that was crashing the program in the NewGrooving
process for some people on some machines under certain circumstances (thanks
Andrew for testing all those versions :-).
* Fixed a bug where it wouldn't load and process some add-on tracks.
It still doesn't work properly with Brands Hatch (first version)
or St.Jovite (strange clipping errors are introduced).
* New .CLN files for Anderstorp, Bremgarten, Bugatti, Crystal Palace,
Goodwood, Panorama (Bathurst), Road67, Snett67, Solitude, USGP1960 (Riverside),
Zeltweg (Osterreichring).
15-Mar-2003: Object Adding release
* Objects can now be added to any track for which a .cln file is available.
See "Adding Objects"
3-May-2003: Re-released with .cln files for the HistoricRank
and MunchausenRank tracks, plus a few others.
How does it work?
Ok, if you're really
interested...
(1) the program loads a track.3do file in a way that allows for the whole
thing to be changed (nasty BSP trees!).
(2) every existing groove polygon is stripped out of the track- ooo harsh
;-)
(3) for every polygon in the track, a duplicate is created with the groove
texture applied.
(4) each duplicate polygon is clipped against the edges of the actual
racing groove, and the resultant polygons added to the track.
(5) track is saved.
Yes, (3) and (4) are quite inefficient, but it works, which is more than
can be said for the other methods I tried :-)
Please note that big tracks
take several minutes to process, even with GHz processors. It is
not uncommon for the program to look like it has crashed when loading the
Nürburgring, for instance.
How do I use it?
Run the program.
Make sure you have: <trackname>.dat - this is used to identify which track you
wish to create a new groove for. The program will load <trackname>.3do
from the track directory if it exists, otherwise it will extract the
.3do from the .dat. You already have this file from the GPL CD. <trackname>.cln - this is the centre-line file, required to
make the new groove work. There are 11 of these provided with the
download for this program. You can either copy them to the appropriate
track directory (sierra/gpl/tracks/<trackname>/), or leave them with
the program executable. <filename>.grv - this is a file, created by using GPL Replay
Analyser.
How do I make a .grv file?
(1) Load GPLReplayAnalyser
(homepage: http://home.bip.net/martin/gplra/)
(2) Load a replay, and select a lap. Top-5 replays are suggested,
for the optimal racing line.
(3) Under the Tools -> TrackCreatingTools menu, choose Export
Lap to Groove.
(4) The default settings are good, click Ok.
(5) When the program has finished processing, you will be prompted to
save the .GRV file - best place is in sierra/gpl/tracks/<trackname>/.
Once you have those
three files for the track you wish to re-groove, do the following:
(1) Select the .dat file
with "Pick DAT..."
(2) Select the .grv file with "Pick groove..."
(3) Select the .cln file with "Centreline..."
(the Object List... button is for the addition of trackside objects,
and is not to be used at this time)
(4) Set the options Change Groove - must be ticked to process the groove Add Objects - not yet implemented Scale Groove - For certain tracks, the groove file must be stretched.
Check this box to bring up the scaling dialog box shown later on... Maximum groove polygon length - this specifies the maximum longitudinal
length of groove polygons. Normally, the default of 10metres is enough,
but some tracks/grooves may require shorter or longer maximums to achieve
a good visual appearance. Minimum opacity - this setting (0-255) determines how faint a groove
polygon must be before it is not added to the track. Values below
64 are normal; the higher the value, the fewer groove polygons are
created, and the worse the groove will look.
(5) Click -Process
Track- and wait for the groove to be created. Messages will appear
in the bottom box to indicate progress, and the Status box will update during
the longer tasks. Error messages will mostly be of the 'file xxx
not loaded' variety, and easy to fix.
If you have chosen to
Scale the Groove, the following dialog box will appear:
Changing the groove
scalar can be done by typing in a value, or by clicking and dragging on
the numbers. The scale to use for Nürburgring is 1.0018- conveniently
the default value :-) Spa could probably do with a scale of 1.0008
or so; Rouen, Silverstone, Monaco and Zandvoort maybe need a 1.0004
to fix some finish line problems, but not really necessary.
The program has finished
when "-= 3DO Saved =-" is printed in the message box, and the Process
Track button is re-enabled. If it hasn't done anything for 10 minutes,
maybe it has crashed. Oopsie.
How do I adding objects to a track?
Just like changing the
groove, you need to have some files in order to add trackside objects. You
will need to:
(1) Select the .dat file with "Pick DAT..."
(2) Select the .mrk file with "Object list..."
(3) Select the .cln file with "Centreline..."
The .mrk file (marker file) is a text file listing the objects that are
to be added to the track. For people familiar with trk23do, this file
is a simplified version of the .tso file, with the major difference being
a lack of infield/outfield placement options. This is possible, but
I'd have to create a new placement method, so it will only happen if someone
asks nicely enough ;)
Example .mrk file:
14
545.0 0.0 0.0 0.0 0.0 0.0 mrk_brk
//braking for t1
573.0 0.0 0.0 0.0 0.0 0.0 mrk_g54
//shifting down for t1
615.0 0.0 0.0 0.0 0.0 0.0 mrk_g43
//shifting down for t1
658.0 0.0 0.0 0.0 0.0 0.0 mrk_g32
//shifting down for t1
1044.0 0.0 0.0 0.0 0.0 0.0 mrk_brk
//braking for t2
1320.0 0.0 0.0 0.0 0.0 0.0 mrk_g23
//shifting up
1750.0 0.0 0.0 0.0 0.0 0.0 mrk_brk
//braking for t4
1755.0 0.0 0.0 0.0 0.0 0.0 mrk_g32
//shifting down for hairpin
2151.0 0.0 0.0 0.0 0.0 0.0 mrk_brk
//braking for t5
2496.0 0.0 0.0 0.0 0.0 0.0 mrk_brk
//braking for t6
2924.0 0.0 0.0 0.0 0.0 0.0 mrk_brk
//braking for t8
3271.0 0.0 0.0 0.0 0.0 0.0 mrk_g23
//shifting up main straight
3423.0 0.0 0.0 0.0 0.0 0.0 mrk_g34
//shifting up main straight
3749.0 0.0 0.0 0.0 0.0 0.0 mrk_g45
//shifting up main straight
First line tells how
many objects are in the list.
Then, each object is listed on a new line:
Longitudinal position
Lateral position
Z-Adjustment
X Rotation
Y Rotation
Z Rotation
3DO filename
//Comment
Note there are no commas
between items, and that each number is a floating-point number.
Longitudinal position is the distance from the start/finish line. Lateral position is the distance from the centreline: -ve values
to the right, +ve to the left. The centreline is usually the centre
of the track, but not always! Z-Adjustment. This value is normally 0.0. Use it to raise
or lower an object relative to ground-level. +ve is up, -ve is down. X Rotation. This is the usual rotation value to be changed.
Values in degrees. It rotates the object about the vertical axis. Y Rotation & Z Rotation. I leave this up to user
experimentation. Combining more than one rotation value can leave a
nasty imprint on the mind ;) 3DO filename. This .3do file must be in the track directory
for the object adding process to work! Do not add '.3do' in the .mrk
listing.
Everything else up to the end of the line is a comment, and ignored by
TheRacingLine.
So... with this file, and the .3do files AND the Add Objects
button checked! TheRacingLine can proceed to add your objects
to the track. This is where it will either all work perfectly, or
go horribly wrong.
Some tracks have some really weird object
placement references. Processing the track with TheRacingLine can screw
those references up badly, leaving the track clipping very badly.
Longitudinal position must be within
the bounds of the track, i.e. between 0.0 and tracklength. Values outside
that range might break things.
Lateral position can be any value, even
outside the lateral bounds of the track, but it is recommended to keep the
lateral position within the lateral bounds of the track (exact values depend
on the longitudinal position).
The centre-point (0,0,0) of the .3do
might not be where you expect it to be, and so when the object is added to
the track, it might appear in some strange position. Always check where
the 0,0,0 point of an object is using GPLTrackEditor or 3DOEd or whatever
if the placement seem a little off.
Rotation. Again, this can be not
as you expect, depending on which direction the .3do is facing.
In order to get Longitude
and Latitude values for a track, you will need a program that can read .trk
files. GPLTrackEditor can do this, and I know of one other program
(but not the name, d'oh) that can.
Can I process other tracks?
If there proves to be
sufficient demand, other tracks will have .cln files created for them, allowing
The Racing Line to process them. Bear in mind that creating a .cln
file for a short track takes a couple of hours (driving, cln creation, track
install, testing, obligatory hotlapping session..), and that the Nürburgring
took a couple of days...
Who is reponsible for this?
Many thanks to
Greg Stewart for the idea, and testing each track.
.GRV creation
- thanks to GPLRA, by Martin Granberg & Jonas Matton.
Grooves - all those
crazy hotlappers out there! See the download page for a list. Big
thanks to Paul Jackson for supplying a whole collection for the HistoricRank
& MunchausenRank tracks.
Thanks to Papyrus
for actually making the game ;) and everybody else who has contributed
something in the past 4 years!
All code was written,
hacked about, turned upside-down and inside-out by me, Phil Flack (c) 2002-2003.
Use of this program
is entirely at your own risk, I (the author) will not be held responsible
for any consequences of running the program. No guarantees over the
functionality of the program are given.
Please use the forums
at RaceSimCentral for any
queries/problems/etc., so that everyone can read & contribute.
Known problems
The program crashes
on some machines during the Grooving process. I thought I had fixed
this bug with the second release, but for some users it remains. People
have been able to overcome the problem in several ways, mostly by closing
down every other program (that means everything!), even booting Windoze in
Safe Mode to ensure a clean system. If that doesn't help, maybe you
can use a friends pc. Sorry I cannot fix the problem properly, but
as I cannot recreate it on any machine I've tried, it's not very easy!
Some tracks have
gaps in the newly created groove, others have grooves with a mind of their
own. For the most part this isn't a problem, but it stands out in
a few places. Terribly sorry about that, you can always delete <trackname>.3do
to go back to the Papyrus original, if you so wish.
If you do not
have <trackname>.dat, the program will not let you process the track...
but you should have trackname.dat!
The sound tree
is deleted from the track.3do. There are only a maximum of two sounds
at the tracks anyway (announcer/crowds). If enough people cry about
this I'll figure out a way to add it back to the track, but not now :)
If you have a
modified track.3do, please be sure to back it up before processing, just
to be on the safe side. I have only tested the program with the Papyrus
original tracks...
If an error message
appears that really shouldn't, please inform me.