Citywalker’s Expert AI tuning method


    (364.69 KB)
  • Download count 78
  • Unique foldername
  • Skin for
  • Based on
  • Release date 2022-09-03
  • Version from
  • Version
  • RVW-ID 34178
  • Category
  • Score
    100/100 (4 votes)
  • Unconventional car?
  • Construction
  • Engine
  • Transmission
  • Top speed mph
  • Total weight kg
  • Acceleration m/s²
  • Construction
  • Track difficulty
  • Track length m
  • Reverse version available?
  • Time trial times available?
  • Practice mode star available?

    Reuploaded by Ato.


    I wanted to preserve the lost art of AI tuning: using Citywalker’s Expert AI tuning method. It still works for RVGL because the AI coding still uses the same base procedures.

    So, download this, unzip her spreadsheet and open it. It has simple, to the point and sufficiently detailed info inside, plus a simple self-calculating line of AI parameter values honing to a fine point.


    Download, unzip, open, read, insert initial values into parameters.txt, run the game with -dev and -gazzasaicar command line switches, go to time trial, observe (TITH2 or TITH1 with F5 camera works best), set 1 or -1 in the spreadsheet, insert new values into parameters.txt, Ctrl+R to reload the car, RightCtrl+repo key to restart the trial run, observe, repeat. Soon, profit.

    Most cars run well with the initial parameters, no trials necessary. Of those that don’t, most need maximum 7-10 trial runs. The rest are extra difficult (drifters notoriously, and other special cases) and need maybe a few hours worth of trial runs, trying between the four initial car type settings, but it is absolutely just a few vehicles per the whole RVW that really cannot be made at least decent or admirably trying. (Note: for true-fliers (like Cop-ter and Volare), change only the SteerRate instead of the AI part, due to RVGL hard-coding of UFO mechanics.)

    Detailed explanation/rant follows:

    Citywalker’s method uses a strange combination of the binary search algorithm and a human-steered evolutionary algorithm, actually. (A real coder’s way, I must say.) If I understand correctly, she went as far as Re-Volt (and now RVGL) allowed towards a true automatic evolutionary algorithm of tuning the AI parameters to each specific car, but even better because she eliminated randomness from the mutations, setting it to use the strict, straight-to-the-point binary search procedure instead. It’s just that the actual assessment of fitness and selection of further tuning direction has to be done by a human. On the other hand, with the existing offline-play function of instantaneous background calculation of the AI opponents’ time to finish after the player has finished the race (see the CSV files in the replay folder), RVGL could actually be programmed to do this automatically. Then we would simply set the type of car (4 possible initial parameter pairs, see the spreadsheet) and let the game tune the car’s AI parameters to the precision of all the six decimal places provided in the parameters.txt, selecting first for the highest percentage of track completed before time-trial repo to start line, and then to the shortest time for reaching the finish line. The game would only need to calculate the maximum of 34 trial runs per car, before hitting the maximum precision of changing only the sixth decimal place. No race display, just internal background calculation of the 34 trial runs, outputting the results as a series of pairs: 34 x [tuning value: result]. Cancellable with a key, of course, just in case.

    Devs, are you reading this?

    (Actually, the manual-selection tuning method also already tunes to the precision of six decimal places with just 34 trial runs.)

    Mind you, drifters are still difficult with it, because drifters are inherently the worst case for a static-boundary AI like RVGL has. The AI just cannot compensate equally well for slow side-slides and fast side-slides, but drifters do both all the time. So it’s either better at high speeds and lousy at low speeds, or vice versa, but with effort, they can be tuned to the fine edge of equally modestly okay at both speeds.

    Have fun :)

    Credits: Acclaim for the game, Citywalker for her experiments (got me into this business), me for testing again and reuploading the Expert AI method (obviously), and the lot of you for keeping the game alive. Thanks.

    Origin: Taken from Citywalker’s Legacy Stash.


    Edit: removed the duplicate zip file.

2 comments on “Citywalker’s Expert AI tuning method

  1. Say, the car is oversteering (swinging on straights). After going from 5000 to 2500 to 1250 to 625, it suddenly starts going too straight in curves. Switch direction and go up with the next step, because the fringe is somewhere between 1250 and 625. If the next step (937.500000) is swinging again, go lower again. If still too straight, go one more up. And so on.


  2. A question – what situations will I find myself in that requires me to go higher (+1) on oversteering or understeering vehicles in later runs?


Leave a comment