The new adaptive AI

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

  1. CheerfullyInsane

    CheerfullyInsane Well-Known Member

    Joined:
    Oct 24, 2015
    Ratings:
    +402 / 0 / -0
    Okay, that's a new one..... o_O
    Bear in mind that I'm not in any way included behind the scenes. All I know is from what I found in my own testing, so there is as always every chance that I'm monumentally wrong....again. :D

    However, with that caveat in place, the adaptive AI only writes indexes* during race conditions.
    Fixed AI levels will write ONE index at that level, while adaptive AI will keep adjusting the levels in the XML file until it reaches the limit (six or seven entries, depends a little on the track for some weird reason).
    Every car/track combo starts at 80. If the AI got creamed in the first race, it'll then go to 90 for your next start.
    (Btw, in your example the AI wasn't running at 90, that's just the index that got written after the race. It ran at 80, your NEXT race will be at 90.)
    If that still isn't enough it'll then go to around 100, but that depends a little on your own level.
    The closer the AI comes to your actual level, the shorter increments it'll increase by so it doesn't suddenly overshoot you.
    Example: Say your own level is approximately 115. The AI, on a fresh XML file, will start at 80. Then it'll go to 90. Then let's say 100, 107, 112, 113, etc.
    The exception is that if it hasn't reached a competitive level by the time it reaches the last entry available in the XML, it'll jump to 120. After the index has been filled it'll then start to replace the unused AI levels in it with entries closer to your level.
    Eventually ending up with a tightly grouped set of indexes around your personal level.
    The 'eventually' bit being why @pixeljetstream and myself are working (well sorta...) on how to get it competitive faster.

    If you only have one entry at 102, the only reason I can think of is that you at some point ran against fixed AI at level 102.
    That is the only way that I know of that will write a single index out of adaptive context.
    If that for some reason can't possibly have happened, then I'm completely stumped.
    One thing is for sure, the AI does NOT use entries from other car/track combos. Each combo is its own little world.

    *At some point someone will have to tell me the plural of index. :D
     
  2. CheerfullyInsane

    CheerfullyInsane Well-Known Member

    Joined:
    Oct 24, 2015
    Ratings:
    +402 / 0 / -0
    Whoops....Another one I missed. :oops:
    I honestly don't know. When running against he AI I always have track-limits off.
    The AI doesn't respect them anyway, and I'll be hornswoggled if I'm going to be the only car on track running by the rules. :D

    I would however assume that invalid laps aren't counted in the calculations, just so you don't get a jump in the AI level due to one cut corner. But that's all it is, an assumption.
    But from what I know it shouldn't make any difference. The AI levels in the XML file are weighted after each race, so if you have 8 consistent laps the two invalid ones shouldn't enter into it.
    Same procedure as when you e.g. have a spin on one lap.
     
  3. Winzarten

    Winzarten Well-Known Member

    Joined:
    Jun 15, 2016
    Ratings:
    +377 / 0 / -0
    That's weird, because on my first race on slovakia ring the ai definitely was not 80, it wiped the floor with me and was making lap times around 2:07.
    I just finnished another race at slovakia ring with ai set to 100 (this was the first time I ran the AI with set difficulty) and the ai was laping around 2:11...
    Kinda curious what will I see when I move to another track :)
     
  4. Winzarten

    Winzarten Well-Known Member

    Joined:
    Jun 15, 2016
    Ratings:
    +377 / 0 / -0
    I've just done my first race on Brands Hatch, and the AI was laping around 49s, definitely not 80difficulty. I wonder if it is because I'm using the same car (Cougar C14-2).
     
  5. CheerfullyInsane

    CheerfullyInsane Well-Known Member

    Joined:
    Oct 24, 2015
    Ratings:
    +402 / 0 / -0
    Huh......
    Just tried that, and got a 104 AI.
    Well, well, well.....The plot thickens.

    I wonder if the AI starts out at the average AI in your XML thus far.
    If that's the case, this whole training thing becomes rather moot.
    Thus far I've only figured out how to train it for each track, and then simply repeated the process for each combo.
    Never occurred to me that it might start somewhere else than 80 if there were other values in the XML.
    Time to go testing again, it seems.
     
  6. Winzarten

    Winzarten Well-Known Member

    Joined:
    Jun 15, 2016
    Ratings:
    +377 / 0 / -0
    I wonder that too, what does take into acocunt? Is it a simple average, or do values for the same car or track have bigger weight? :)

    The training might still be usefull when the average is skewed againts you, i.e. when you are starting with a new class. Then, especially paired with the app you guys are working on, it might be the faster way to get you adaptive AI to your relative level.
     
  7. CheerfullyInsane

    CheerfullyInsane Well-Known Member

    Joined:
    Oct 24, 2015
    Ratings:
    +402 / 0 / -0
    @Winzarten Yep, you're absolutely correct. @pixeljetstream , you may want to see this as well. :D
    The initial level of each car/track combo does depend in some way, shape or form on whatever else is in your XML.
    Three different tests, all running Silhouettes@Brands with adaptive AI:
    Test 1. Clean XML, AI level written was 90, so it ran at 80.
    Test 2. I plugged in my times from Aquilas@Spa which ran107-112. AI level written was 112, so it ran at approx. 114.
    Test 3. Switched over to my 'real' XML (where the average level sure as hell isn't 114!). AI level written was 110.

    Not much of a database to come to any real conclusions, but I would assume that it's a straight average.
    My 'real' XML runs from around 104 to 118 depending on the combo, so a start of 111 or thereabouts seems to be right.
    Well, whaddaya know. :)

    Yes, a list of AI lap-times for each combo would still be handy, but unless my logic is wrong (yet again :D ), if you have a fair number of entries in your XML, a single entry at your desired level should be sufficient for the adaptive AI to go from there.
    But at any rate, the higher number of entries you have, the faster the AI will adapt to you.
    Nice find. :)

    EDIT: Actually, the AI training is still important, albeit a little less so.
    Yes, the XML average will get you to your starting level quicker, but you still need a number of entries bracketing that level in order for the AI to vary its speed depending on each lap.
     
    Last edited: Jun 16, 2016
  8. Winzarten

    Winzarten Well-Known Member

    Joined:
    Jun 15, 2016
    Ratings:
    +377 / 0 / -0
    Yep. just came to the same conclusion. I got a few more races on Brands Hatch, and while the AI started around my level, it then proceeded to increase the difficulty at the next race, which I lost by quite a margin. I then expected that it will roll back a little... But no, it increased difficulty even more... The next race I was dead last, without any chance to catch even the last one. The only reason why I finnished the race was to see how the AI would react in next race. ;)
    Thankfully it toned the difficulty back to my level. But I wonder why it increased the difficutly the second time, even If it was clear that I'm not able to hold its pace.

    So, while the AI will start around your level, it can then increase the difficult quite a lot in order to populate the index table. It might be more effective do a single race with the adaptive ai on your average difficulty and then train it manualy around your level. Or, much more effective it would be to do some laps in practice and generate the .xml file based on your times from the AI database you guy are collecting.

    This is the ai setting for Brands Hatch:
    <key type="uint32">106</key>
    <custom>
    <custom type="float32">51.68785095</custom>
    <custom type="uint32">1</custom>
    </custom>
    <!-- Index:1 -->
    <key type="uint32">107</key>
    <custom>
    <custom type="float32">50.74385834</custom>
    <custom type="uint32">1</custom>
    </custom>
    <!-- Index:2 -->
    <key type="uint32">111</key>
    <custom>
    <custom type="float32">49.48831558</custom>
    <custom type="uint32">7</custom>
    </custom>
    <!-- Index:3 -->
    <key type="uint32">120</key>
    <custom>
    <custom type="float32">47.31885910</custom>
    <custom type="uint32">1</custom>
    </custom>
     
  9. CheerfullyInsane

    CheerfullyInsane Well-Known Member

    Joined:
    Oct 24, 2015
    Ratings:
    +402 / 0 / -0
    Well, one thing I noticed from my earlier experiments is that once the number of indexes start to fill up it'll jump to 120.
    The following is pure guesswork, but it might be because the AI doesn't actually know how fast it is under each AI level, and it's looking for the upper limit. After that it'll then start to adapt to your actual level.
    Much the same as when it started at 80, only in reverse (if that makes any sense).

    But until we get a semi-complete database collected, I guess it'll help in establishing your initial level when trying new combos.
    Run one lap against adaptive, and see what level it writes. After that you can then 'design' a set of indices to match your level.
    If nothing else, it'll take some of the guesswork out of the equation.
     
  10. Eagle28

    Eagle28 Member

    Joined:
    Oct 2, 2016
    Ratings:
    +7 / 0 / -0
    Indeed a very informative thread giving a user some "must know" information about this sim. To be honest I was getting really frustrated with the AI in this sim, constantly getting rammed from the rear and no it was not because I was braking to hard at the wrong time as some users have suggested. Another issue being is that you would also come out of any touching (AI cars) far worse off, basically it will be the end of your race with the AI racing off into the distance as though nothing had happened.

    The reason why I am still here is because the game is so great in almost every other area and in my opinion currently the best there is by some way...Project cars is good and I do fire it up from time to time but for me its a game (yes a very good one) and not a sim.
    So I was so pleased when I came across this thread, although I do race in multiplayer I also very much like to race against AI so its a very important aspect for me. @CheerfullyInsane I know you already mentioned that you don"t want any thanks but the point being you made the time and effort to share your information, so many many thanks.

    I am away now to train the AI ...
     
  11. Eagle28

    Eagle28 Member

    Joined:
    Oct 2, 2016
    Ratings:
    +7 / 0 / -0
    "Name": "RaceRoom Raceway",
    "Id": 262,
    "layouts":

    "Name": "Grand Prix",
    "Track": 262,
    "MaxNumberOfVehicles": 25,
    "Id": 263

    "Name": "Bridge",
    "Track": 262,
    "MaxNumberOfVehicles": 25,
    "Id": 266

    "Name": "Classic",
    "Track": 262,
    "MaxNumberOfVehicles": 25,
    "Id": 264

    "Name": "Classic Sprint",
    "Track": 262,
    "MaxNumberOfVehicles": 25,
    "Id": 265

    "Name": "National",
    "Track": 262,
    "MaxNumberOfVehicles": 25,
    "Id": 267

    ---------------------------------------

    "Name": "Monza Circuit",

    "Id": 1670,

    "layouts":

    "Name": "Grand Prix",
    "Track": 1670,
    "MaxNumberOfVehicles": 25,
    "Id": 1671

    "Name": "Junior",
    "Track": 1670,
    "MaxNumberOfVehicles": 25,
    "Id": 1672

    ---------------------------------

    "Name": "Mid Ohio",
    "Id": 1673,

    "layouts":

    "Name": "Full",
    "Track": 1673,
    "MaxNumberOfVehicles": 24,
    "Id": 1674

    "Name": "Chicane",
    "Track": 1673,
    "MaxNumberOfVehicles": 24,
    "Id": 1676

    "Name": "Short",
    "Track": 1673,
    "MaxNumberOfVehicles": 24,
    "Id": 1675

    ----------------------------------------------

    "Name": "Circuit Park Zandvoort",
    "Id": 1677,
    "layouts":

    "Name": "Grand Prix",
    "Track": 1677,
    "MaxNumberOfVehicles": 32,
    "Id": 1678

    "Name": "National",
    "Track": 1677,
    "MaxNumberOfVehicles": 32,
    "Id": 1680

    "Name": "Club",
    "Track": 1677,
    "MaxNumberOfVehicles": 32,
    "Id": 1679

    -----------------------------------

    "Name": "Lakeview Hillclimb",
    "Id": 1681,
    "layouts":

    "Name": "Full Run",
    "Track": 1681,
    "MaxNumberOfVehicles": 36,
    "Id": 1682

    "Name": "Reverse",
    "Track": 1681,
    "MaxNumberOfVehicles": 36,
    "Id": 2181

    ---------------------------------------------

    "Name": "Circuit Zolder",
    "Id": 1683,
    "layouts":

    "Name": "Grand Prix",
    "Track": 1683,
    "MaxNumberOfVehicles": 32,
    "Id": 1684

    ---------------------------------------

    "Name": "Nürburgring",
    "Id": 1690,
    "layouts":


    "Name": "Grand Prix",
    "Track": 1690,
    "MaxNumberOfVehicles": 25,
    "Id": 1691

    "Name": "Short",
    "Track": 1690,
    "MaxNumberOfVehicles": 40,
    "Id": 2011

    "Name": "Sprint",
    "Track": 1690,
    "MaxNumberOfVehicles": 40,
    "Id": 3377

    -------------------------------------

    "Name": "Hockenheimring",
    "Id": 1692,
    "layouts":

    "Name": "Grand Prix",
    "Track": 1692,
    "MaxNumberOfVehicles": 34,
    "Id": 1693

    "Name": "National",
    "Track": 1692,
    "MaxNumberOfVehicles": 24,
    "Id": 1763

    "Name": "Short",
    "Track": 1692,
    "MaxNumberOfVehicles": 24,
    "Id": 1764

    --------------------------------------

    "Name": "RaceRoom Hillclimb",
    "Id": 1705,
    "layouts":

    "Name": "Full Run",
    "Track": 1705,
    "MaxNumberOfVehicles": 36,
    "Id": 1709

    "Name": "Reverse",
    "Track": 1705,
    "MaxNumberOfVehicles": 36,
    "Id": 2214

    ---------------------------------------

    "Name": "Portimao Circuit",
    "Id": 1771,
    "layouts":

    "Name": "Grand Prix",
    "Track": 1771,
    "MaxNumberOfVehicles": 25,
    "Id": 1778

    "Name": "National",
    "Track": 1771,
    "MaxNumberOfVehicles": 25,
    "Id": 1783

    "Name": "Club",
    "Track": 1771,
    "MaxNumberOfVehicles": 25,
    "Id": 1784

    "Name": "Club Chicane",
    "Track": 1771,
    "MaxNumberOfVehicles": 25,
    "Id": 1785

    ------------------------------------

    "Name": "Suzuka Circuit",
    "Id": 1840,
    "layouts":

    "Name": "Grand Prix",
    "Track": 1840,
    "MaxNumberOfVehicles": 46,
    "Id": 1841

    "Name": "East Course",
    "Track": 1840,
    "MaxNumberOfVehicles": 24,
    "Id": 2012

    "Name": "West Course",
    "Track": 1840,
    "MaxNumberOfVehicles": 34,
    "Id": 2013

    --------------------------------------

    "Name": "Bathurst Circuit",
    "Id": 1845,
    "layouts":

    "Name": "Mount Panorama",
    "Track": 1845,
    "MaxNumberOfVehicles": 36,
    "Id": 1846

    ----------------------------------------------

    "Name": "Indianapolis",
    "Id": 1851,
    "layouts":

    "Name": "Grand Prix",
    "Track": 1851,
    "MaxNumberOfVehicles": 46,
    "Id": 1852

    "Name": "Moto",
    "Track": 1851,
    "MaxNumberOfVehicles": 46,
    "Id": 2014

    -------------------------------------

    "Name": "Sonoma Raceway",
    "Id": 1853,
    "layouts":

    "Name": "WTCC",
    "Track": 1853,
    "MaxNumberOfVehicles": 52,
    "Id": 1854

    "Name": "Sprint",
    "Track": 1853,
    "MaxNumberOfVehicles": 52,
    "Id": 2016

    "Name": "Long",
    "Track": 1853,
    "MaxNumberOfVehicles": 52,
    "Id": 3912

    "Name": "IRL",
    "Track": 1853,
    "MaxNumberOfVehicles": 52,
    "Id": 3913

    ---------------------------------------------------

    "Name": "Mazda Laguna Seca",
    "Id": 1855,
    "layouts":

    "Name": "Grand Prix",
    "Track": 1855,
    "MaxNumberOfVehicles": 25,
    "Id": 1856

    -----------------------------------------------

    "Name": "Hungaroring",
    "Id": 1865,
    "layouts":

    "Name": "Grand Prix",
    "Track": 1865,
    "MaxNumberOfVehicles": 25,
    "Id": 1866

    -----------------------------------------------

    "Name": "Salzburgring",
    "Id": 2020,
    "layouts":

    "Name": "Grand Prix",
    "Track": 2020,
    "MaxNumberOfVehicles": 32,
    "Id": 2026

    --------------------------------------------

    "Name": "Shanghai Circuit",
    "Id": 2021,
    "layouts":

    "Name": "Grand Prix",
    "Track": 2021,
    "MaxNumberOfVehicles": 24,
    "Id": 2027

    "Name": "Intermediate (WTCC)",
    "Track": 2021,
    "MaxNumberOfVehicles": 24,
    "Id": 4041

    "Name": "West Long",
    "Track": 2021,
    "MaxNumberOfVehicles": 24,
    "Id": 4042

    ----------------------------------------------------

    "Name": "Slovakia Ring",
    "Id": 2029,
    "layouts":

    "Name": "Grand Prix",
    "Track": 2029,
    "MaxNumberOfVehicles": 24,
    "Id": 2064

    -----------------------------------------------------

    "Name": "Macau",
    "Id": 2122,
    "layouts":

    "Name": "Grand Prix",
    "Track": 2122,
    "MaxNumberOfVehicles": 41,
    "Id": 2123

    ---------------------------------------------------

    "Name": "Motorsport Arena Oschersleben",
    "Id": 2383,
    "layouts":

    "Name": "Grand Prix",
    "Track": 2383,
    "MaxNumberOfVehicles": 24,
    "Id": 2384

    ------------------------------------------

    "Name": "EuroSpeedway Lausitz",
    "Id": 2467,
    "layouts":

    "Name": "Grand Prix",
    "Track": 2467,
    "MaxNumberOfVehicles": 24,
    "Id": 2468

    "Name": "Automobilsport",
    "Track": 2467,
    "MaxNumberOfVehicles": 24,
    "Id": 3291

    ------------------------------------------------

    "Name": "Moscow Raceway",
    "Id": 2472,
    "layouts":

    "Name": "Sprint",
    "Track": 2472,
    "MaxNumberOfVehicles": 24,
    "Id": 2473

    "Name": "Full",
    "Track": 2472,
    "MaxNumberOfVehicles": 24,
    "Id": 3383

    "Name": "FIM",
    "Track": 2472,
    "MaxNumberOfVehicles": 24,
    "Id": 3683

    -----------------------------------------------------

    "Name": "Norisring",
    "Id": 2517,
    "layouts":

    "Name": "Grand Prix",
    "Track": 2517,
    "MaxNumberOfVehicles": 24,
    "Id": 2518

    ----------------------------------------------

    "Name": "Brands Hatch",
    "Id": 2519,
    "layouts":

    "Name": "Indy",
    "Track": 2519,
    "MaxNumberOfVehicles": 34,
    "Id": 2520

    ---------------------------------------------------------

    "Name": "Red Bull Ring Spielberg",
    "Id": 2521,
    "layouts":

    "Name": "Grand Prix",
    "Track": 2521,
    "MaxNumberOfVehicles": 36,
    "Id": 2556

    --------------------------------------------------------

    "Name": "Nordschleife",
    "Id": 2812,
    "layouts":

    "Name": "Nordschleife",
    "Track": 2812,
    "MaxNumberOfVehicles": 48,
    "Id": 2813

    "Name": "VLN",
    "Track": 2812,
    "MaxNumberOfVehicles": 100,
    "Id": 4975

    "Name": "Tourist",
    "Track": 2812,
    "MaxNumberOfVehicles": 48,
    "Id": 5093

    "Name": "24 Hours",
    "Track": 2812,
    "MaxNumberOfVehicles": 100,
    "Id": 5095

    ----------------------------------------------------

    "Name": "Paul Ricard",
    "Id": 2866,
    "layouts":

    "Name": "Solution 3C",
    "Track": 2866,
    "MaxNumberOfVehicles": 44,
    "Id": 2867

    "Name": "Solution 1A",
    "Track": 2866,
    "MaxNumberOfVehicles": 44,
    "Id": 4246

    "Name": "Solution 1C-V2",
    "Track": 2866,
    "MaxNumberOfVehicles": 44,
    "Id": 4247

    "Name": "Solution 2A short",
    "Track": 2866,
    "MaxNumberOfVehicles": 44,
    "Id": 4248

    -----------------------------------------

    "Name": "Sachsenring",
    "Id": 3537,
    "layouts":

    "Name": "Grand Prix",
    "Track": 3537,
    "MaxNumberOfVehicles": 42,
    "Id": 3538

    ---------------------------------------------

    "Name": "Spa-Francorchamps",
    "Id": 3869,
    "layouts":

    "Name": "Grand Prix",
    "Track": 3869,
    "MaxNumberOfVehicles": 56,
    "Id": 3870

    "Name": "Classic",
    "Track": 3869,
    "MaxNumberOfVehicles": 48,
    "Id": 4542

    "Name": "Combined",
    "Track": 3869,
    "MaxNumberOfVehicles": 100,
    "Id": 4543

    ----------------------------------------------------

    "Name": "Chang International Circuit",
    "Id": 4252,
    "layouts":

    "Name": "Full Circuit",
    "Track": 4252,
    "MaxNumberOfVehicles": 40,
    "Id": 4253

    "Name": "D Circuit",
    "Track": 4252,
    "MaxNumberOfVehicles": 25,
    "Id": 4944
     
  12. CheerfullyInsane

    CheerfullyInsane Well-Known Member

    Joined:
    Oct 24, 2015
    Ratings:
    +402 / 0 / -0
    You're welcome. :)
    Although it should be said that many of the problems you mention still persist after the AI got 'dumbed down' in the last patch.*
    I never had a problem with getting rammed in the back in braking-zones, but sideways AI attention is more or less gone right now.
    They will quite happily turn into you if you sneak up on their inside.
    And the collision physics quite frankly still need some work. :D

    * And yes, I know the reason behind the AI getting less attentive. Bigger grids means more processing-power and thus less for the AI. I'm not critiquing the decision to do so, merely stating a fact.
     
  13. Eagle28

    Eagle28 Member

    Joined:
    Oct 2, 2016
    Ratings:
    +7 / 0 / -0
    It has made a huge difference for me though ...so far only trained the AI on two circuits and the racing is much closer ..I got a second and a third ...But yes have to agree with you more work is needed with the AI. Basically you have to try and stay well clear of them, they are like tanks on wheels, you will always come of far far worse than them....don"t even think about giving them a nudge, for sure you will regret it ...

    I drove into the rear of one at around 100mph, the AI must have been doing around 40mph at the time, slowing down for a sharp bend...it was like nothing had hit them, the AI even managed to get around the bend and carried on racing like nothing had happened, of course my race was over.

    So yes for sure a lot more work is required with the collision physics..This is a great sim though and in many ways top of its class, if they manage to sort the collision physics out nothing would touch it.
     
    • Like Like x 1
  14. pixeljetstream

    pixeljetstream Well-Known Member Beta tester

    Joined:
    Jan 29, 2015
    Ratings:
    +412 / 0 / -0
    Is it really processing power limited? We got lots of cores, and weak systems should not expect same quality with big grid vs high end system. Maybe introduce AI detail level setting.
    But somehow not sure this is really the reason.
     
  15. Andi Goodwin

    Andi Goodwin Moderator Beta tester

    Joined:
    Jan 16, 2015
    Ratings:
    +791 / 0 / -0
    coughs

    Andi
     
  16. CheerfullyInsane

    CheerfullyInsane Well-Known Member

    Joined:
    Oct 24, 2015
    Ratings:
    +402 / 0 / -0
    Need a mint? :D
     
    • Like Like x 1
  17. Andi Goodwin

    Andi Goodwin Moderator Beta tester

    Joined:
    Jan 16, 2015
    Ratings:
    +791 / 0 / -0
    i am mint , for a knackered, slightly blind ,balding , knock kneed 49year old ...

    Andi
     
    • Funny Funny x 1
  18. Supermini

    Supermini Member

    Joined:
    Mar 31, 2016
    Ratings:
    +21 / 0 / -0
    Apologies if this has been mentioned before...

    I was thinking why doesn't the adaptive AI work like this: start at 100. After the first race if needed, adjust +/-10. After the second race, adjust +/-5. After the third, +/-3. After the fourth, +/-2. After the fifth, +/-1. It seems to me that would find the right AI level for any player within 6 races (and now of course you can just make those 1 lap races).

    This wouldn't necessarily save time over @CheerfullyInsane 's training method, but it would let the game take care of the training automatically.
     
  19. CheerfullyInsane

    CheerfullyInsane Well-Known Member

    Joined:
    Oct 24, 2015
    Ratings:
    +402 / 0 / -0
    Apologies for the late reply, but work and a complete melt-down of my PC resulted in a somewhat harried week. :D
    Anyway.....
    The above is actually what the AI does when it adapts, only difference is that it starts at 80.
    (Or at least it did. Haven't had time to pick the new one apart yet)
    In my case, it usually jumps from 80 to 90-92 in the first race, 97-98 after the second and so on.
    The problem though is two-fold;
    First it starts in the wrong place. If the AI can go from 80 to 120 it should start at 100 to minimize the distance it has to travel.
    Though this only applies if your level is actually above 100, and let's not forget that a lot of less experienced racers could very well be discouraged if it took them 10 races to get something that even resembled a race.
    So I can live with that one (even if I still find it annoying :D )
    The second problem comes after it has actually found your level.
    It then has to truly adapt in order to get good racing, otherwise it doesn't work.
    To illustrate, let's say that my level for a particular combo is 108.
    After six races the index-file runs 80-92-98-102-105-108 (completely fictitious numbers, just play along)
    Now, if you're thinking that the AI has now adapted to you, you'd be wrong unless you happen to be obscenely consistent even when there is traffic around.
    If you try to race that index with a full grid you will at some point have to slow down to e.g. level 107 because another car is blocking a corner. And since the adaptive AI is made to consistently follow your lap-times it also has to drop down, but the next available level for it is only 105. Which means that for the next lap you'll be blitzing through the field.
    And then the AI will speed up again, repeat ad nauseum.
    And if you happen to beat you own level, the AI will then have to insert yet another level into the index.
    The AI will eventually get there on its own, it just takes a wee while.
    Make no mistake, the AI doesn't just use one entry in the index, it uses all of them if it has to. If you're reasonably consistent, it normally only needs two or three, but if there are large gaps in the index, you're going to get some decidedly weird races.

    And to muddy the waters even further, the starting point of 80 only applies if the index-file is empty.
    Once there is data in it, any new combo will start at what I suspect is the average of the entire index-file.
    Or in other words, if you've been running NSUs on all the tracks at an average of 105, if you switch over to say GTR3s it'll start at 105 as well, despite you not having any data for that particular combo.

    And of course.......All of the above are null and void since my training method doesn't work with the new AI. :D
    As I said earlier, I haven't had time to completely pick it apart yet, but from the experimentation that I've managed to do you can no longer just quit out after one race and get an AI entry.
    I think (read: wild-ass guess) that it's because they've corrected what was actually a bug. I doubt the AI was ever supposed to take the first lap into account, since that would mean a lot of short races would mean a lot of non-flying laps in there dragging the average down.
    So the good news is that they've fixed that. The bad news is that it'll take 2 laps on manual AI level, and probably 3 laps on adaptive to get it to write anything.
    Now, this is all very preliminary and assuming I can find the time, I'll sit down with the AI over the week-end and see if I can't figure out a new way to 'cheat' us into better adapting AI.
    But right now I'd say the fastest way would be to run a 2-lap race with fixed AI at your approximate level for that combo, and then run 3-lap races with adaptive until it has...well, adapted. :)
    I also suspect that since most people have a level that is more based on the car than the track (i.e. people usually run at one level with NSUs and another with GTR3s no matter what the track is), you're probably better off training one class at a time and then do some manual cut'n'paste or use @pixeljetstream s program to insert the data into a fresh index-file.
    If you're 108 with NSUs and 95 with GTR3s, and you do the NSUs first, the GTR3s will then have to adapt from 108.
    On the other hand, if you're capable of doing 108 with the NSUs fairly consistently on all tracks, you can get the data inserted, copy the file, and start over with a GTR3 one starting at 95 and repeat as needed.
    Hopefully I'll have something a little clearer after the week-end.
     
    • Winner Winner x 1
    • Informative Informative x 1
  20. Christian G

    Christian G Topological Agitator Beta tester

    Joined:
    Apr 8, 2015
    Ratings:
    +2,411 / 0 / -0
    Talked to Robert about that and iirc he said that it depends on the starting method you use. If you use standing the first lap will be ignored, if you use rolling it will be counted in.
    Maybe this helps sharpen the image a little.
     
    • Love it! Love it! x 1