The new adaptive AI

Discussion in 'General Discussion' started by Paradox Agi, Apr 18, 2016.

  1. Christian G

    Christian G Topological Agitator Beta tester

    Joined:
    Apr 8, 2015
    Ratings:
    +2,411 / 0 / -0
    Rich mentioned using the "Audi TT VLN" so I assume he was talking about the Audi TTRS VLN.

    The button assignment for push-to-pass is the same as for DRS. IIrc it is called "DRS/PTP" and should be near the top of the secondary controller functions menu.
     
    • Like Like x 2
    • Agree Agree x 1
  2. nate

    nate Well-Known Member

    Joined:
    Jan 31, 2015
    Ratings:
    +875 / 0 / -0
    And just to be clear, the tt rs vln does NOT have p2p. Only the tt cup 2015/2016 has p2p.

    Just to avoid any confusion :)
     
    • Like Like x 2
  3. jf.tournier

    jf.tournier New Member

    Joined:
    Jul 14, 2018
    Ratings:
    +4 / 0 / -0
    OK. So if i want to do a custom solo championship with the AAI, i must train AI on every track ? It's f***ing long !!
     
  4. keanos

    keanos Well-Known Member

    Joined:
    Oct 29, 2015
    Ratings:
    +136 / 0 / -0
    Best way for your first championship, find out what fixed AI strength matches for you and set this fixed strength
     
    • Like Like x 1
  5. Skidmark

    Skidmark Well-Known Member

    Joined:
    Oct 9, 2015
    Ratings:
    +232 / 0 / -0
    I have been attempting to train the adaptive AI at Brands Hatch in the FRJs.

    Problem is when I say 'roll over' it begs, when I say 'beg'; it fetches and you don't wanna know what it does when I say 'sit'...

    A brief history:

    Race 1 My average lap time (excl lap 1) 52-ish Fastest AI lap 52.9
    Race 2 My average 52-ish Fastest AI 51.4
    Race 3 My average 51-ish Fastest AI 51.3
    Race 4 My average 51-ish Fastest AI 51.1 [all good so far - lovin' it :D]
    Race 5 My average 51-ish Fastest AI 53.9 [huh?]
    Race 6 My average 51-ish Fastest AI 52.8 [better, but won easily]
    Race 7 My average 51-ish Fastest AI 51.8 [getting there...]
    Race 8 My average 51-ish Fastest AI 54.3 [wtf?]
    Race 9 My average 51-ish Fastest AI 57.8 [arrrrrrrrrrrrghhhhh]

    Two things can be gleaned from this:
    (1) I'm not very quick and I ain't getting any quicker :) (although consistency is ok :cool:, aside from a couple of bad laps where I lock up and get some grass on the wheels - perhaps every 15 laps or so...)
    (2) I've done something wrong somewhere. Race 9 was crazy - I beat McClane in P2 by 57 seconds in just 10 laps!! :eek:Perhaps there was a full course yellow my trusty CrewChief failed to tell me about. Or an invisible safety car.

    Has anyone else had it go pear-shaped like this? (By he way, I did the same thing at Mid-Ohio and the AI adapted beautifully and stayed adapted - the racing was great!).

    My guess is I need to delete adaptive ai file and start again? But does that mean I lose everything for every track?

    Thoughts?

    EDIT: actually I have a thought... around Race 5 I introduced a short qually session before the race and I have a nasty habit of running wide when pushing hard, invalidating my lap time. When CrewChief lists my laps at the end of the session, these show up as zeros. So lap times for example might be 0.00, 51.27, 0.00, 50.98, 51.72. Could these zeroes (extracted from the game of course) be messing with the AAI algorithm? If so that seems like a bug to me as it would be better for these to be ignored. It's just a thought though...
     
    Last edited: Aug 18, 2018
  6. CheerfullyInsane

    CheerfullyInsane Well-Known Member

    Joined:
    Oct 24, 2015
    Ratings:
    +402 / 0 / -0
    It's not the qualy-times. An invalid lap simply gets ignored, the AAI only looks at race-pace not qualy, and finally the AI pace is set when the session is started (i.e. before qualy even begins).
    Could be any number of things, hard to say without a copy of the AI-file.
    But one thing is for certain; it's a cast-iron bitch to get the adaptive AI to work on super-short tracks.
    Brands, Norisring, Suzuka East, Monza Jr., they all have this issue.
    The problem is that when the average lap-times goes below the one-minute mark, it doesn't take much for the AI to change level.
    And it gets much harder to get a decent average, since the amount of traffic is much higher.

    The reason averaging doesn't work particularly well on short tracks is simple enough. But explaining it will require a little math.
    So let's assume that the entire gamut of the AAI (i.e. from level 80 to level 120) covers a 10% spread of the circuits lap-times.
    So if level 100 does a lap in 120 seconds, level 80 does it in 126, and level 120 does it in 114, giving us a 12 second (or 10%) spread on that particular circuit.
    It's not quite as rigid as that in real life, but it's close enough for demonstration purposes.
    So 12 seconds spread over 40 levels gives us approx. 0.3 seconds per level. Again, it's an estimation since the AI isn't linear, but just to prove a point.

    Next. let's say that you have a variation from your standard pace of 0.8 seconds over the 10-lap stint that the AI looks at.
    Could be a faster line, could be traffic, doesn't matter.
    In the above example, the AI would then adjust by 2-3 levels to the new average, since each level is approximately 0.3 seconds.
    And while annoying, a difference of two levels isn't the end of the world.
    With me so far?

    Lets take a look at what happens on the super-short tracks.
    50 second lap-time gives us a 5 second spread, which results in 0.125 seconds per level.
    Which means that the AI will shift by 6-7 levels with the same 0.8 second difference.
    And an AI difference of 6-7 levels is a hell of a lot, both in terms of pace, but also in terms of aggression.

    And it gets worse.
    The whole AAI system is based on averages, which is fine in and of itself.
    But with more cars on less track real-estate it gets very hard maintaining that average lap-time.
    Not only for the player, but also for the AI. And since a given level is picked based on its average lap-time, you're starting to look at some serious issues.
    Furthermore, with the short tracks the AI has serious trouble finding clean air for it's qualy-runs, meaning you're very likely to qualify much higher than you should.

    Suffice it to say that I've stopped running adaptive on the short tracks. I just find the fixed AI that suits my pace, and go with that.
    It's not worth the hassle. :)
     
    • Like Like x 1
  7. Skidmark

    Skidmark Well-Known Member

    Joined:
    Oct 9, 2015
    Ratings:
    +232 / 0 / -0
    Thank you Sir for the detailed explanation.

    So I'd say that's a bug because it's not working as intended on shorter tracks. I've just run half a dozen races with the WTCR 18 Hyundai at Zandvoort (a longer track) and the adaptive-AI is working perfectly.

    It's a shame though because I'm very keen to run a championship but the barriers are:

    (1) Can't run with fixed AI level because the AI-balance between tracks is, ahem, not perfect :oops: (e.g. for a given AI level, the AI is very fast at Road America, not so much at Zhuhai). I realise there's player variability as well which makes this hard to 'fix'.

    (2) Adaptive-AI would be the solution although it requires some effort in training time (although there are shortcuts!) and it would appear shorter tracks like Brands Hatch are off the table if your analysis is correct.:(

    (3) A minor one in the scheme of things - if I do a championship from a large class (e.g. GT3) I can't select my opponents.

    None of this is a game-killer for me because the racing and everything else is SO GOOD :D. It's a frustration though.
     
  8. MattStone

    MattStone Well-Known Member

    Joined:
    Mar 6, 2016
    Ratings:
    +169 / 0 / -0

    Nah it’s not a bug...it’s just a short fall of the system they use to calculate the strength of the AAI.
    The math is correct but due to there been so many unpredictable variables, I would imagine it’s almost impossible to create the perfect formula to give you the perfect results

    Tho maybe their formula could include some sort of multiplier to even out the results for the short tracks!
     
    • Agree Agree x 1
  9. Skidmark

    Skidmark Well-Known Member

    Joined:
    Oct 9, 2015
    Ratings:
    +232 / 0 / -0
    Question: Does anyone know if yellow-flagged laps count towards your average lap speed?

    I just did the right thing and stayed behind the car in front as we crawled along under yellow. That cost 8 seconds.

    Apologies if this has been answered before.
     
  10. CheerfullyInsane

    CheerfullyInsane Well-Known Member

    Joined:
    Oct 24, 2015
    Ratings:
    +402 / 0 / -0
    I think it counts.
    I'm by no means certain, but since off-tracks doesn't stop the lap-time from being added, it stands to reason that flags wouldn't either.
     
  11. RickMandar

    RickMandar Member

    Joined:
    Aug 1, 2018
    Ratings:
    +7 / 0 / -0
    May be the perfect AAI is to let the player to choose the level of ai for each race even in a championship.
     
    • Agree Agree x 1
  12. Skidmark

    Skidmark Well-Known Member

    Joined:
    Oct 9, 2015
    Ratings:
    +232 / 0 / -0
    YES YES YES YES OMG YES :) :D

    I would think this would be (relatively) simple to implement and would solve the issue of not being able to create a championship with a consistent (for the player) difficulty level:

    * if you use adaptive AI you (1) can't use short tracks (AI just gets slower and slower apparently) and (2) a couple of yellow flags costing 10 seconds could mean that in the following race in a two or three race 'weekend' the AI slow down for you;

    * if you use fixed AI you have to choose to beat the AI by miles at e.g. Zhuhai or Sepang and then be competitive at Road America or be competitive at Zhuhai and lapped at Road America.

    Dream championship system:
    1) Select player car and livery
    2) Select AI cars and liveries - one at a time (or an option to choose all or random selection) - these are the cars that would be in every championship race
    3) Select tracks
    4) For each track select AI level (or adaptive / single AI level for all tracks if you prefer)
    5) For each track add reverse grid or longer/shorter races to the race 'weekend' as desired
    6) For each race select laps / time limit (or same for all if you prefer)
    7) Add other sessions - practice, qualy etc, including the possibility of e.g. race 2 being the qualy for race 3
    8) Season to taste
    9) go racin' :)
    10) NB at the end of each session create a time-stamped detailed results file that never gets overwritten (unless you want it to)

    :cool:
     
  13. RickMandar

    RickMandar Member

    Joined:
    Aug 1, 2018
    Ratings:
    +7 / 0 / -0
    And also ability to change the name of the driver. Want to race with old glories.
     
    • Like Like x 1
  14. Not Lifting Off

    Not Lifting Off Well-Known Member

    Joined:
    Dec 5, 2015
    Ratings:
    +368 / 0 / -0
    Easier, This is my hotlap, be within 5% + or - of this, this solves all and every ai issue, you do a hotlap at every track, the ai uses your hotlap and aims for + or - %
    Job done!
     
    • Like Like x 1
  15. Skidmark

    Skidmark Well-Known Member

    Joined:
    Oct 9, 2015
    Ratings:
    +232 / 0 / -0
    I like that too!!

    Edit: although +/-5% is a lot. If my time is 1:40.000 then AI is going to range from 1:35.000 to 1:45.000 - one hell of a difference. I'm sure an algorithm could be developed +/- 2% at 1:40.000, slightly less for shorter laps, slightly more for longer laps. But the idea is a good one and I think it could be made to work. Perhaps player submits hot lap and also chooses how much variability they want from AI. (Which I think you might have been suggesting anyway?)

    Point is it would be great to have just a bit more control over things.
     
    Last edited: Aug 28, 2018
  16. CheerfullyInsane

    CheerfullyInsane Well-Known Member

    Joined:
    Oct 24, 2015
    Ratings:
    +402 / 0 / -0
    Nope, doesn't work that way.
    Assuming the races are all within the same session (i.e. two race - reverse grid) the second race wouldn't be affected.
    The AI level is set when you enter the session, so the second race would be run at the same level as the first, no matter what happened in the first one.
    Nor does a yellow flag slowdown carry over to another track, since the AI levels are stored for each car/track combo. So what happens at Brands, stays at Brands. :D
    I completely agree that getting the slowdowns (for flags, spins or whatever) added to the index-file is annoying, but the only way it'll affect a championship is if you run the same combo multiple times.
    And even then you can fix it by editing the file before starting the next round.
    (Or simply running ten hotlaps without opponents. Same result)

    As for some of the other suggestions, they do ignore some basic issues.
    Leaving aside the fact that selecting a separate AI level for each session would require a complete rework of the UI, you'd also need to actually know what level you're at for each track.
    Which would require at least the same amount of races as it would take to get the AAI up to speed.
    So if you have to spend the same amount of time beforehand, why not simply leave it to the AAI, and save yourself the trouble of having to remember all those combos?
    One of the reasons I've stopped using PC2 is that my needed AI level for any given track jumps back and forth by 15+ levels.
    And I have grown far too old to remember what level to run where. :p

    The idea of having a 2-5% spread based on a hotlap is a neat thought, but it pre-supposes that you actually know what laptimes each AI level runs. And nobody knows, not even the devs.
    Switch the AI by e.g. 5 levels, and you might end up with a 2 second difference in lap-times. At which point it's easy to assume that each level you change is 0.4 seconds. Except it isn't.
    The AI isn't hard-coded to run at a specific lap-time for each level. Nowhere in the code does it say that e.g. the NSUs at Brands at level 110 will run 60 second lap-times.
    Exactly what it does say in the code is presumably proprietary, but it's probably something along the lines of, level 100 uses e.g. 95% of the theoretical max brake-pressure, whereas level 110 uses 97%. Same with engine-performance, downforce etc.
    Which means that each level increase should be approximately the same increase in difficulty-level for the player no matter what car he's driving, and you can use the same incremental scale for all the classes instead of having to design one for each. But it also means that nobody knows exactly what laptimes any given level will run before they've actually done so.
    End result is that you'll have to run a fair number of races for each combo to find out which lap-times each level produces. And if you're going to do that, we're back to the above point of simply letting the AAI take care of it for you.

    Incidentally, having a 2% spread based on a hotlap is more or less what the AAI does in the first place.
    Instead of using a hotlap it just uses the average of your last 10 racing laps. The spread comes into it when you factor in that there are something like GTR2s talent-files hidden somewhere in the encrypted files, meaning not all the AI drivers are equally fast.
    So the AI level picked is based on the average fastest lap of the entire AI grid in the last race. Which means that, assuming there is enough information, you'll get an AI whose average fastest lap is the same as your average lap.
    Which again means that you should end up somewhere in the mid-pack, where all the fun is.

    Granted, the AAI system isn't perfect.
    The whole averaging bit does mean, for reasons stated earlier, that super-short tracks are pretty much out.
    And I'd dearly love for it to ignore the fastest and slowest lap of the ten listed in the index-file for averaging purposes.
    Not only would that give you a better average, it would also eliminate the problem of having a slow lap due to flags/spins affecting the average in the first place.
    You could argue that in order for it to work, you have to run a number of laps for it to get up to speed.
    But as I stated earlier, using a fixed AI would still mean you'd have to run the same number of races in order to figure out which level to use. Using the AAI keeps track of that for you, with the added bonus of it remembering which level you used on the last track at which point it'll guesstimate where to start on this one.
    And once you know how the system works, and you're not adverse to editing the index-file manually, you can bypass the whole training bit in the first place.
    Even without knowing exactly what each level enables in the AI cars, you can make a fairly educated guess as to what lap-times any given AI will run on any given combo.
     
  17. Skidmark

    Skidmark Well-Known Member

    Joined:
    Oct 9, 2015
    Ratings:
    +232 / 0 / -0
    Thanks for clarifying sir. :)

    I appreciate all the detail. My quest for the perfect championship continues... I can dream can't I? :D

    It's a personal preference to set the AI just out of reach in a championship so that if I do well (i.e. I'm on form) I finish 6-10th. To win I have to make big improvements. As I say, a personal preference.
     
    • Like Like x 1
  18. GregoryLeo

    GregoryLeo Well-Known Member

    Joined:
    Feb 22, 2015
    Ratings:
    +360 / 0 / -0
    So if I understand this correctly, the game keeps my last 10 laps. Hmm. Here’s my personal Dilemma. I have noticed that the aai are now going slower. I like longer races, 45 to 60 minutes. And I also enjoy figuring out exactly how much fuel will be needed for said race. With x2 or x3 tire wear with forced pitstops. So by the end of the race, the last 2 or 3 laps. The car is on empty and the tires or worn as well. So with the lighter car and lower traction, my lap times start to slow. :confused:
    Don’t know if anything an be done. Mostly I’m just arguing for my limitations. :rolleyes: I guess I should figure out a way to practice with bald tires and no fuelo_O
    ;)
     
  19. fl0wf1r3

    fl0wf1r3 Well-Known Member

    Joined:
    Apr 24, 2016
    Ratings:
    +235 / 0 / -0
    Wreckfest à la RaceRoom

    Yesterday, I tried the Bentley GT3 at Zandvoort against the AI with a fixed level. I got wrecked in this chicane every time. Is this normal for the AI. When driving the WTCR cars the AI behaves good. But in the GT3 class it's a Wreckfest, especiallyspecially in Zandvoort. The most horrible experience I had with the Porsche GT3 Cars at Bathurst. It was almost impossible for me to drive against the AI. They don't care at all and always crashed into me. For me it looks like that some car classes, track combinations are working fine and others not

     
  20. jf.tournier

    jf.tournier New Member

    Joined:
    Jul 14, 2018
    Ratings:
    +4 / 0 / -0
    This is Zolder, not Zandvoort.