DumbAI 0.04 update here :
app written in lua to make new race strategies and some small adjustments to the AI of AC/CSP
-
@Tetri added an UI : big up !
- modified deeply the blue flag behavior after extensive tests
I made extensive simulations (still with CSP 0.3.0 / Pure 2.61); track Monza 88, MP4/4 1988 (Overtake Syncmaster version mixed with VRC version for sound)
When I joined the forum, I found that
@Apocalypse211,
@Carpocalypse and others were quite crazy with all their simulations with AI level and aggression experiments: I have to confess I have learned a lot since then and mentally apologize
So my tests were performed with a global AI level of 75% with 5% variation range and 0 aggression.
And my grid is the following (AI level / AI aggression level):
Senna: 100 / 40
Piquet: 87 / 30
Nakajima: 80 / 50
Palmer: 80 / 0
Bailey: 70 / 0
Mansell: 85 / 25
Patrese: 80 / 15
Arnoux: 75 / 20
Johansson: 70 / 30
Alboreto: 85 / 25
Berger: 85 / 10
With this configuration, on a 10-laps race, I have very slow runners that I can overlap after only 5-6 laps and very often, there is a train of late runners that the leaders (Senna and me, Alain Prost ^^) meet at lap 8-9. And well, quite embarassing for me , but this is the only configuration where I can follow Senna without crashing too much

: a 1:33 per lap is sufficient to keep just behind him and watch what's happening when he's overlapping.
I did these tests because the DumbAI 0.03 worked quite well when the human was overlapping, but the AI still had issue to overlap.
My main observation is that the AI does not know well how to overtake when the speed is too low compared with the common speed it would expect in this spline position. So just reducing the throttle limit was not sufficient, you don't avoid the pile up as the leader is just stuck behind the slow car and seems to follow that same throttle limit.
I tried the physics.setAIStopCounter() method which seems to be the only way to simulate braking. It worked very very well, a very efficient way to make the AI overlap. Just one second after the trigger of DumbAI for blue flag, the leader has overtaken. But it is very brutal with complex behaviour, I saw some crashes for the overlapped AI. And more important, if this is a train of leaders that is overlapping, the overlapped AI stopped completely as the setAIStopCounter() is triggered for too long and it messes up things.
So I ended with physics.setAITopSpeed() with a setting of 90 kmph max and an lateralSplineOffset of -1/1 for the overlapped AI. With this settings, the AI overtake decision making is a bit longer than with setAIStopCounter , it still loses some time but it seems it does not get stuck anymore and overall , it is much more realistic, there is much less problem for train of leaders.
Obviously, many tests have still to be performed with different kind of cars and tracks to validate but now you should be able to experiment different values without having to modify the lua code, thanks to Tetri !
For the next versions, I would like to add pit strategies by creating a AI class that would keep track of the different compounds that were used and apply for example the rule " to have to mix different compound in the race "