F1 2011 AI Mod Preview

F1 2011 The Game (Codemasters)
Found a good method of modding AI track speeds and once set up can be ramped up or down in seconds.


The AI in the video was tuned to just below the speed of a Red Bull using default setup and fastest fuel mix, thats just for starters.

The idea is to get interest and really tune the AI to perfection, so if theres interest I can go into full detail.

The first 5 tracks are tuned here ... http://www.gamefront.com/files/20957482/AIFSB_HC11_zip ... no doubt they won't be to everyones taste but because this method is so easy to do (once you understand it) we can really get the AI spot on.
 
Ok, it is interesting that you have used the same curve modifiers for nearly all turns. It kind of works, but I just tested melbourne and in the fast turns 11, and 12, the ai was really very slow, and I almost collided with them and they are too easy to overtake coming out of 12 as a result, surprisingly the other turns are not too bad. I expect the default curve modifiers are higher at 11 and 12 than yours, so maybe you should tune turns up only but not down... Your brake modifiers seem good though.
 
the Mclaren was AI in that ?

Yeah, the AI are pretty good when speeds are matched closely and its a shame the codies never put more into tuning because it brings the game to life, its like they are fixated on looks and game play takes a back seat.

Another point is do you tune to AI to match a human with a good car setup or go with one of the quick setups?

Some people like to jump into races and others like to setup cars to perfection, so I suppose you have to cater for both with different mods, will go though the method in the morning.
 
Ok, it is interesting that you have used the same curve modifiers for nearly all turns. It kind of works, but I just tested melbourne and in the fast turns 11, and 12, the ai was really very slow, and I almost collided with them and they are too easy to overtake coming out of 12 as a result, surprisingly the other turns are not too bad. I expect the default curve modifiers are higher at 11 and 12 than yours, so maybe you should tune turns up only but not down... Your brake modifiers seem good though.

Are you using the default setup?
 
That's certainly an impressive video, nice job.

.... and Jim Clark is a good name to have when it comes to F1 :)

EDIT: PS I know it's only a test and it's pretty irrelevent, but your read_me file needs updating to F1 2011 rather than 2010, Cheers
 
Once I've set braking distances and put in default curves anyone can replace those curves to be faster or slower with copy & replace in a text editor.

Heres the ready made curves spanning from 0.95 to 1.15.

Code:
curve_modifier="0.95" curve_modifier_left="1.15" curve_modifier_right="1.15" curve_modifier_med_grip="0.85" curve_modifier_left_med_grip="1.05" curve_modifier_right_med_grip="1.05" curve_modifier_low_grip="0.75" curve_modifier_left_low_grip="0.95" curve_modifier_right_low_grip="0.95" />
curve_modifier="0.96" curve_modifier_left="1.16" curve_modifier_right="1.16" curve_modifier_med_grip="0.86" curve_modifier_left_med_grip="1.06" curve_modifier_right_med_grip="1.06" curve_modifier_low_grip="0.76" curve_modifier_left_low_grip="0.96" curve_modifier_right_low_grip="0.96" />
curve_modifier="0.97" curve_modifier_left="1.17" curve_modifier_right="1.17" curve_modifier_med_grip="0.87" curve_modifier_left_med_grip="1.07" curve_modifier_right_med_grip="1.07" curve_modifier_low_grip="0.77" curve_modifier_left_low_grip="0.97" curve_modifier_right_low_grip="0.97" />
curve_modifier="0.98" curve_modifier_left="1.18" curve_modifier_right="1.18" curve_modifier_med_grip="0.88" curve_modifier_left_med_grip="1.08" curve_modifier_right_med_grip="1.08" curve_modifier_low_grip="0.78" curve_modifier_left_low_grip="0.98" curve_modifier_right_low_grip="0.98" />
curve_modifier="0.99" curve_modifier_left="1.19" curve_modifier_right="1.19" curve_modifier_med_grip="0.89" curve_modifier_left_med_grip="1.09" curve_modifier_right_med_grip="1.09" curve_modifier_low_grip="0.79" curve_modifier_left_low_grip="0.99" curve_modifier_right_low_grip="0.99" />
curve_modifier="1.00" curve_modifier_left="1.20" curve_modifier_right="1.20" curve_modifier_med_grip="0.90" curve_modifier_left_med_grip="1.10" curve_modifier_right_med_grip="1.10" curve_modifier_low_grip="0.80" curve_modifier_left_low_grip="1.00" curve_modifier_right_low_grip="1.00" />
curve_modifier="1.01" curve_modifier_left="1.21" curve_modifier_right="1.21" curve_modifier_med_grip="0.91" curve_modifier_left_med_grip="1.11" curve_modifier_right_med_grip="1.11" curve_modifier_low_grip="0.81" curve_modifier_left_low_grip="1.01" curve_modifier_right_low_grip="1.01" />
curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
curve_modifier="1.03" curve_modifier_left="1.23" curve_modifier_right="1.23" curve_modifier_med_grip="0.93" curve_modifier_left_med_grip="1.13" curve_modifier_right_med_grip="1.13" curve_modifier_low_grip="0.83" curve_modifier_left_low_grip="1.03" curve_modifier_right_low_grip="1.03" />
curve_modifier="1.04" curve_modifier_left="1.24" curve_modifier_right="1.24" curve_modifier_med_grip="0.94" curve_modifier_left_med_grip="1.14" curve_modifier_right_med_grip="1.14" curve_modifier_low_grip="0.84" curve_modifier_left_low_grip="1.04" curve_modifier_right_low_grip="1.04" />
curve_modifier="1.05" curve_modifier_left="1.25" curve_modifier_right="1.25" curve_modifier_med_grip="0.95" curve_modifier_left_med_grip="1.15" curve_modifier_right_med_grip="1.15" curve_modifier_low_grip="0.85" curve_modifier_left_low_grip="1.05" curve_modifier_right_low_grip="1.05" />
curve_modifier="1.06" curve_modifier_left="1.26" curve_modifier_right="1.26" curve_modifier_med_grip="0.96" curve_modifier_left_med_grip="1.16" curve_modifier_right_med_grip="1.16" curve_modifier_low_grip="0.86" curve_modifier_left_low_grip="1.06" curve_modifier_right_low_grip="1.06" />
curve_modifier="1.07" curve_modifier_left="1.27" curve_modifier_right="1.27" curve_modifier_med_grip="0.97" curve_modifier_left_med_grip="1.17" curve_modifier_right_med_grip="1.17" curve_modifier_low_grip="0.87" curve_modifier_left_low_grip="1.07" curve_modifier_right_low_grip="1.07" />
curve_modifier="1.08" curve_modifier_left="1.28" curve_modifier_right="1.28" curve_modifier_med_grip="0.98" curve_modifier_left_med_grip="1.18" curve_modifier_right_med_grip="1.18" curve_modifier_low_grip="0.88" curve_modifier_left_low_grip="1.08" curve_modifier_right_low_grip="1.08" />
curve_modifier="1.09" curve_modifier_left="1.29" curve_modifier_right="1.29" curve_modifier_med_grip="0.99" curve_modifier_left_med_grip="1.19" curve_modifier_right_med_grip="1.19" curve_modifier_low_grip="0.89" curve_modifier_left_low_grip="1.09" curve_modifier_right_low_grip="1.09" />
curve_modifier="1.10" curve_modifier_left="1.30" curve_modifier_right="1.30" curve_modifier_med_grip="1.00" curve_modifier_left_med_grip="1.20" curve_modifier_right_med_grip="1.20" curve_modifier_low_grip="0.90" curve_modifier_left_low_grip="1.10" curve_modifier_right_low_grip="1.10" />
curve_modifier="1.11" curve_modifier_left="1.31" curve_modifier_right="1.31" curve_modifier_med_grip="1.01" curve_modifier_left_med_grip="1.21" curve_modifier_right_med_grip="1.21" curve_modifier_low_grip="0.91" curve_modifier_left_low_grip="1.11" curve_modifier_right_low_grip="1.11" />
curve_modifier="1.12" curve_modifier_left="1.32" curve_modifier_right="1.32" curve_modifier_med_grip="1.02" curve_modifier_left_med_grip="1.22" curve_modifier_right_med_grip="1.22" curve_modifier_low_grip="0.92" curve_modifier_left_low_grip="1.12" curve_modifier_right_low_grip="1.12" />
curve_modifier="1.13" curve_modifier_left="1.33" curve_modifier_right="1.33" curve_modifier_med_grip="1.03" curve_modifier_left_med_grip="1.23" curve_modifier_right_med_grip="1.23" curve_modifier_low_grip="0.93" curve_modifier_left_low_grip="1.13" curve_modifier_right_low_grip="1.13" />
curve_modifier="1.14" curve_modifier_left="1.34" curve_modifier_right="1.34" curve_modifier_med_grip="1.04" curve_modifier_left_med_grip="1.24" curve_modifier_right_med_grip="1.24" curve_modifier_low_grip="0.94" curve_modifier_left_low_grip="1.14" curve_modifier_right_low_grip="1.14" />
curve_modifier="1.15" curve_modifier_left="1.35" curve_modifier_right="1.35" curve_modifier_med_grip="1.05" curve_modifier_left_med_grip="1.25" curve_modifier_right_med_grip="1.25" curve_modifier_low_grip="0.95" curve_modifier_left_low_grip="1.15" curve_modifier_right_low_grip="1.15" />

Now if you look at the melbourne track file.


Code:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<vehicle_type_track_data version_major="3" version_minor="0" version_revision="0">
    <vehicle_track name="default">
        <vehicle_types>
            <vehicle_type name="default_A">
                <brake_lines num_brake_lines="14">
                    <brake_line id="0">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.85" hold_line_id="0" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="10">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.95" hold_line_id="1" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="15">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.90" hold_line_id="2" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="20">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.75" hold_line_id="3" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="30">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.90" hold_line_id="4" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="40">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.75" hold_line_id="5" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="50">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.90" hold_line_id="6" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="60">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.75" hold_line_id="7" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="65">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.75" hold_line_id="8" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="70">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.90" hold_line_id="9" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="80">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.80" hold_line_id="10" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="90">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.95" hold_line_id="11" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="100">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="0.85" hold_line_id="12" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                    <brake_line id="990">
                        <brake_data type="curve" min_speed="0.0" max_speed="0.0" drift_speed="-5.0" distance_modifier="1.00" hold_line_id="0" hold_distance_modifier="0.00" curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />
                    </brake_line>
                </brake_lines>
            </vehicle_type>
        </vehicle_types>
    </vehicle_track>
    <vehicle_track name="low">
        <vehicle_types />
    </vehicle_track>
    <vehicle_track name="mid">
        <vehicle_types />
    </vehicle_track>
    <vehicle_track name="vhigh">
        <vehicle_types />
    </vehicle_track>
    <vehicle_track name="high">
        <vehicle_types />
    </vehicle_track>
    <vehicle_track name="vlow">
        <vehicle_types />
    </vehicle_track>
</vehicle_type_track_data>

You'll notice they are set to curve starting 1.02, so if you want melbourne to be faster then replace all the...

curve_modifier="1.02" curve_modifier_left="1.22" curve_modifier_right="1.22" curve_modifier_med_grip="0.92" curve_modifier_left_med_grip="1.12" curve_modifier_right_med_grip="1.12" curve_modifier_low_grip="0.82" curve_modifier_left_low_grip="1.02" curve_modifier_right_low_grip="1.02" />

With...

curve_modifier="1.03" curve_modifier_left="1.23" curve_modifier_right="1.23" curve_modifier_med_grip="0.93" curve_modifier_left_med_grip="1.13" curve_modifier_right_med_grip="1.13" curve_modifier_low_grip="0.83" curve_modifier_left_low_grip="1.03" curve_modifier_right_low_grip="1.03" />

So replacing 1.02 to 1.03 will make the AI about 0.3 seconds faster a lap, if you want them slower then replace with 1.01 curve set.

I've set braking distances to so they carry more speed the faster the turn is, this is done from a method of setting the brake distances from the what gear is used at any particular turn, I can also release maps with AI turn data soon.
 
Keep in mind that an AI re-tune has been announced for patch #2. Since that should be released fairly soon (1 month?) it may be smarter to wait and modify the final files instead of doing all the work for the current state.

Well yes theres that to think of but we are talking about codemasters here plus this mod is easy to adjust and I will eat someones hat on youtube if they do a better job.
 
Nice work Jim!
Ive tested a lot of ai mods for now and in melbourne, yours is the best.
I think fine tune the ai is a job that is needed for this game. The rest of codemasters work is great.

But, why not put your thread in mods section?
Just a question. ;))

Are you planing to get a editor of that variables?
It would be the terrible trick to have something like in other simulations like Rfactor to be able to change in percent the level of the ai.
I personnally not agree with the level dising of legend, pro etc.. It's so different from a player to another, and better to progress by little touch.(percent)

If you could do something to change at will for the players the difficulty in sort of percent that woul be terrific !!

The only thing to add would be the variable of the braking distances for each turn. Some of them are ok at the basic release but some other braking places (the end of long straight generally ) are far too early you know it ;) )

I have a dream.. Ai speed and braking distances adaptable in percent and the add of DNF and behaviour to make the life feel.

Btw, you have made the 5 first gp?
I've tested in catalunya and the ai work is not so great in comparaison to melbourne.
Maybe it's not done catalunya?

Great work eather ;))

regards.
 
It can take 2 or 3 versions because I can't control the environment as a dev would, so at the start of the race I have to ram the slow ferrari's out of the way and try and get a mclaren or redbull into 1st place and let them get ahead about 5 seconds while keeping the others back, then its a case of seeing if I can catch them, it would be helpful just to have one AI redbull in a race.

Also sometimes the AI will fight and other times they will go to pieces because they are simulating humans.

No 2 races are alike which is good, but makes it harder to tune.
 

Latest News

What's needed for simracing in 2024?

  • More games, period

  • Better graphics/visuals

  • Advanced physics and handling

  • More cars and tracks

  • AI improvements

  • AI engineering

  • Cross-platform play

  • New game Modes

  • Other, post your idea


Results are only viewable after voting.
Back
Top