• "Slow and steady finishes the race. Fast and steady wins the race." - Sean Rogers.
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

AI Mod Preview

Discussion in 'F1 2011 - The Game' started by Jim Clark, Nov 3, 2011.

  1. Jim Clark

    Jim Clark

    Messages:
    9
    Ratings:
    +0
    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.
     
  2. Bernd Tuxhorn

    Bernd Tuxhorn

    Messages:
    103
    Ratings:
    +5
    I am interested in learning how you are doing the job. Seems you are doing it quite well ... so let us know
     
  3. MS7XWDC

    MS7XWDC

    Messages:
    446
    Ratings:
    +17
    the Mclaren was AI in that ?
     
  4. Jace11

    Jace11

    Messages:
    332
    Ratings:
    +1
    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.
     
  5. Jim Clark

    Jim Clark

    Messages:
    9
    Ratings:
    +0
    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.
     
  6. Jim Clark

    Jim Clark

    Messages:
    9
    Ratings:
    +0
    Are you using the default setup?
     
  7. Graham Laing

    Graham Laing
    ........ Mostly harmless Staff

    Messages:
    6,353
    Ratings:
    +2,105
    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
     
  8. Calig

    Calig

    Messages:
    1
    Ratings:
    +0
    Now that's music to my ears! :)
     
  9. MS7XWDC

    MS7XWDC

    Messages:
    446
    Ratings:
    +17
    does this mean easily adjusted by us ?
     
  10. Jim Clark

    Jim Clark

    Messages:
    9
    Ratings:
    +0
    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.
     
  11. Alberto Casado

    Alberto Casado

    Messages:
    933
    Ratings:
    +788
    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.
     
  12. Jim Clark

    Jim Clark

    Messages:
    9
    Ratings:
    +0
    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.
     
  13. Graham Laing

    Graham Laing
    ........ Mostly harmless Staff

    Messages:
    6,353
    Ratings:
    +2,105
    Just in case, I would recommend a 'Pork Pie' hat ..... :wink:






    Yes, they really do exist ......
     
  14. Apex1972

    Apex1972

    Messages:
    136
    Ratings:
    +4
    lol
     
  15. Jim Clark

    Jim Clark

    Messages:
    9
    Ratings:
    +0
    At least no one mentioned bob the builder, but those pork pie hats are not easy to eat in one go I bet :p

    Another vid showing the AI the start of a race, also tried to ram them on fast S curve but couldn't get close ...
     
  16. Engage

    Engage

    Messages:
    84
    Ratings:
    +1
    nice work, cant wait for the finnish :)
    regards
    Engage
     
  17. trollray

    trollray

    Messages:
    15
    Ratings:
    +0
    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.
     
  18. Jim Clark

    Jim Clark

    Messages:
    9
    Ratings:
    +0
    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.
     
  19. zlep

    zlep

    Messages:
    304
    Ratings:
    +26
    Tried China and Kuala Lumpur.
    AI is way too slow. Sorry, not a really good mod so far.
     
  20. Jim Clark

    Jim Clark

    Messages:
    9
    Ratings:
    +0
    Ok, forget it, close thread please mod.