„Na světě je zavedeno, že spousta hloupých si hraje na chytré. Z chytrých, kterých je na světě nedostatek, jen ti nejchytřejší si hrají na hloupé.“ Jan Werich

Nascar Racing 2003 Season

TRACK.INI for competitive racing tutorial

Dear Sim-racing friends,

I'd like to add my 5 cents and share my ideas how to prepare track.ini to get requested, desired behaviour of the AI controlled cars on the track.

What is track.ini

Track.ini is a text-file, usually with good documentation inside, which defines physical aspects, how your and AI cars are driving.
It consists of few sections, each is marked with [ section_name ]. The good explanation can be found e.g. here: http://nr2k3.weebly.com/trackini-explained.html.
Only important thing is, that most sections can be defined for each physics type (GNS, CTS,...), e.g.:
[ ai_track ] --> settings here are valid for CUP and other physics,
[ ai_track_gns ] --> settings here are valid for GNS physics, and this settings are overriding the [ai_track] mentioned above.

Why I want yo play with these settings?

Well - most tracks have a solid, good settings for most players. But I'll tell you my story...

After many years of off-line racing, mostly NR2003 and also Grand Prix Legends, I found out, that... okay - but am I so good, that I can drive with professional drivers (or their simulations) at the same level? Answer is off-course - NO! But also I don't want to be lapped after 10 laps somewhere.
Then what?
So I defined few rules for me. This is quite boring to read, so you can skip to next chapter to read more about main topic.
Well, the rules...

So I am forced to have a good finishes each race to stay in my range, or even go higher.

With this rules I learned to race in middle of pack, which is many times more fun, and also more difficult - racing few laps down, watching for lead lap cars,...
At least - this is worthy to try...

So - to get this racing conditions, the playing with track.ini is necessary.

So let's go for main topic - track.ini

OK, imagine, that you want to drive in certain position in the field of cars, at certain setted AI strength, with any kind of AI drivers settings (unset, or set via NRatings, set by carset creator).

You should follow a few steps:

  1. Drive a constant laps, to get your average lap times. Take a average time of your laps raced on cold and hot tires also. The lap should be a really average, as nobody (AFAIK) can drive hot laps whole race. And especially in the pack.
  2. Start a race with practices (not a quick race). Look, what are lap-times or AI at the level you want to race (e.g Top30).
  3. Drive together with AI. Warm up you tires, drive in a pack and watch, if you can still achieve a similar lap-times as in step 1. If not, if you are more sensitive to AI cars around you (which is normal, if you are driving whole season and every result matters), then you should think, that maybe you must to slow the AI cars more (or to speed up) in next settings.
  4. Are you competitive in the turns, but on straights the AI is super fast? Or you are too slow (compare to AI) in the turns, but then you catch them too easily on straights? Or - especially on road courses - do you want to have more grippy (in corners) but slower car (on straights)? Or vice versa?
  5. And what about the AI crashes? Simulate a few races and watch, if desired amount of yellows is suitable... OK, if you decide, what do you want to do with AI behaviour, you can reserve a lot of time and start to....

Adjustments of AI crashes

This is a very first settings, which must be done, because one of the setting influences the overall lap times of AI cars.
AI crashes depends of few settings in track.ini:

ai_wall_offset
This settings says, how much can one car morph inside of another car to be considered as bump. Normally it's set to 100, you can lower it, if AI is colliding too much, especially under braking.

ai_line_modifier
There is a warning in track.ini; that this is a dangerous hack, but actually is very important to skip it. Good advantage of the ini files is, that you can put all the time a new value (e.g. for testing) and older just separate with ; (like a comment). So you don't need to write is somewhere on paper.
This setting defines, how much can AI car go away from ideal racing line. The higher number is, the more AI wrecks, more crazy driving, and also faster lap-times. So you must play with small steps. Here are some my settings

Name of track       ai_line_modifier
DaytonaMOD1             1.17
MichiganBR              1.07
Iowa                    1.03
Riverside_1970          1.04

And this has also reverse effect - if you go bellow 1.00, then AI is driving smoothly and slower. According to my experience, the best is to try at beginning higher value, e.g. 1.1; then to go higher or lower.
Note, that if the value is too high, then the AI hits the wall, cutting the curbs, etc.

ai_drafting_distance
This parameter says, how is the gap between cars. If this is too small, the cars bump each-other during in braking zone. If it's too high, then they're not able to overtake.
Normally I am not playing with this parameter very often. If you want to increase the number of overtakes, then this is worthy to try.

Adjustments of speed of the AI cars

OK, so you already know, that you are slow in corners, or fast on straights, or vice versa, or you're slow everywhere. Then a bunch of parameters are really important.

ai_grip_modifier
Says, how much the cars are fast in corners (it applies on whole track, but in corners is this crucial). The higher value, the more grip, and higher speed.
My recommendation is to have lower AI grip, as (at least I have this feeling) AI is faster on cold tires compare to human driver. If you're much slower in corners after restarts, then there is a high risk of bumping your rear-end by car behind you. And - don't forget, that you must be comfortable during the race, you can't drive hot laps all the time. You must save your tires, you must have some buffer for you mistakes. Also in real life the best drivers have better or worst laps.

ai_accel_modifier
Says, how quickly are AI drivers accelerating. On longer straights this setting can influence the final speed at the end of straight. It this is correctly set, then if you have a proper corner exit (speed), you shouldn't escape them too easily, or to be too slow.

ai_decel_modifier
Says, how effective AI drivers are braking, I mean what is their braking distance. If this is set too high, then AI will hit your back (under braking into corner) for sure. If too low, than you can easily overtake them on the brakes.

ai_drag_modifier
This setting says, how fast the AI cars on (longer) straights. Of-course, this is coupled with ai_accel_modifier. Look at table below:

AI behaviour                                ai_accel_modifier       ai_drag_modifier
slow on corner exit, but fast on straight   too low                 too high
fast on corner exit, but easy to catch      too high                too low

Note, that on short tracks the ai_drag_modifier has less influence, as there is not enough time for them to go to max. speed.

ai_inverse_slipcurve_k
Some people says, that this defines, how much the AI can slide, or how easy they can loose the grip. The higher number, the more loose grip for AI.

ai_squeeze_pcnt
It's about slip angle. It means, of the setting is higher, then AI starts to drive 'like with loose car', especially on road courses. They will then drive literally rally style (with the doors to the front). Which is slower, as every driving input with driving wheel slows you (or them) down.

Epilogue

Well, this is short description, how to make a more competitive AI drivers according to your driving skills. Be prepared, that it's cost a plenty of time. But this also a opportunity to learn something new about your lovely sim-game.

If any questions, just give me a message at fela.nascarfan(at)gmail(dot)com


Proudly made with GNU Emacs with markdown-mode.
Author of CSS style: Florian Wolters, http://github.com/FlorianWolters/jekyll-bootstrap-theme

  ,           , 
 /             \ 
((__-^^-,-^^-__)) 
 `-_---' `---_-' 
  `--|o` 'o|--' 
     \  `  / 
      ): :( 
      :o_o: 
       "-" 
      
      G N U