- 180

- France
Hi friends,
DumbAI has been updated to 1.3 with a new Blue Flag behavior proposal here : https://www.gtplanet.net/forum/downloads/dumbai.7322/
Basically, I tried to give a race context to the outlapped bot. So now it tries to understand if it is alone or in a train of late runners and then should stop fighting with others while Leader has outlapped. If there is a train, there is a small trick that makes bots organize themselves to go on the same lateral side while have slight different speeds so that the train is stretched a little bit.
This seems to help a lot to suppress the late runners trains spreaded all over the AI spline when they had been caught in Blue Flag behavior during a fight, a situation that created complete freeze for the leader just behind.
I tried to code an offensive behavior with mirroring offset etc... for the leader that is outlapping, so that it would be easier for them to overtake the slow bots. It worked in some way but unfortunately, it produces also strange incidents, the native AC colliders system seems to not like when you are putting offset to the bots .... So I had to move back and let AC native overtake behavior make its way and here is a consolidated version, with a (I hope) nice equilibrium based on late runners behavior only, a mix between prudence and enhancement for leaders.
I tested it on 4 configurations; with dozen of simulations 10 laps at AI 100% / 0% aggressivity on :
2 Tracks : Monza & Imola
with 2 grids: one F1 frid with F2004, Lotus Exos and F1 1988 (19 bots) and one LMP1 / GT grids with LMP1/LMdh (both Kunos and mods), URD GTE 2013 and GT3 Kunos (26 bots)
There are still some incidents from time to time (once per race) between the GT when they have just been outlapped and they are back to fighting , especially in dangerous area such as Rettifilo or first turn of Acque Minerali and Variante alta but I found it OK as I saw native AI was also sometimes going out of tracjs here, so I hope you'll find the same results than me and find this new behavior useful in your configurations.
DumbAI has been updated to 1.3 with a new Blue Flag behavior proposal here : https://www.gtplanet.net/forum/downloads/dumbai.7322/
change log: New Blue Flag Behavior
- Added TrackContext module : pre-computes a lookup table of radius, direction and track width at session start, sampled every 10m along the full circuit
- Blue flag offset side is now determined by the geometry of the upcoming turn (inside of the corner) instead of a raw getTrackUpcomingTurn sign check
- Offset amplitude is modulated by distance to the next turn : full amplitude beyond 300m, linear ramp-down between 300m and 150m, zero inside 150m
- Overtake safety check : offset is suppressed if the apex margin is below 2.5m, or if a chicane (two consecutive turns in opposite directions less than 100m apart) is detected ahead
- Lateral move is now progressive (ramp at 1.0 unit/s) instead of instantaneous, smoothing the trajectory change for both the outlapped car and the leader
- Ramp start is inhibited when a turn is closer than 150m, preventing abrupt moves at corner entry
- Ramp-down on reset follows the same smooth ramp, with an additional speed reduction if the return move is blocked by a nearby car (TTC-based collision filter)
- Multiple outlapped cars in the same group now share a common offset side, coordinated by the car closest to the leader
- Each car in the train receives a speed allowance incremented by 10 km/h per rank, stretching the train and giving each car room to offset without collision
- Continuous upward re-evaluation : if the track opens up after a chicane, the effective amplitude increases on the same side without recomputing the side
- Leader's setAICaution is now reset cleanly via should_reset_outlap_caution, preventing interference with other apps after the overtake is complete
- Stale victims (retired, in pitlane, yellow flag incident, or reset complete) are pruned from the leader's is_outlapping array each tick
- If TrackContext is not yet ready at session start, behavior falls back gracefully to a lateral position comparison (identical to v1 logic), with a log warning
- Added TrackContext module : pre-computes a lookup table of radius, direction and track width at session start, sampled every 10m along the full circuit
- Blue flag offset side is now determined by the geometry of the upcoming turn (inside of the corner) instead of a raw getTrackUpcomingTurn sign check
- Offset amplitude is modulated by distance to the next turn : full amplitude beyond 300m, linear ramp-down between 300m and 150m, zero inside 150m
- Overtake safety check : offset is suppressed if the apex margin is below 2.5m, or if a chicane (two consecutive turns in opposite directions less than 100m apart) is detected ahead
- Lateral move is now progressive (ramp at 1.0 unit/s) instead of instantaneous, smoothing the trajectory change for both the outlapped car and the leader
- Ramp start is inhibited when a turn is closer than 150m, preventing abrupt moves at corner entry
- Ramp-down on reset follows the same smooth ramp, with an additional speed reduction if the return move is blocked by a nearby car (TTC-based collision filter)
- Multiple outlapped cars in the same group now share a common offset side, coordinated by the car closest to the leader
- Each car in the train receives a speed allowance incremented by 10 km/h per rank, stretching the train and giving each car room to offset without collision
- Continuous upward re-evaluation : if the track opens up after a chicane, the effective amplitude increases on the same side without recomputing the side
- Leader's setAICaution is now reset cleanly via should_reset_outlap_caution, preventing interference with other apps after the overtake is complete
- Stale victims (retired, in pitlane, yellow flag incident, or reset complete) are pruned from the leader's is_outlapping array each tick
- If TrackContext is not yet ready at session start, behavior falls back gracefully to a lateral position comparison (identical to v1 logic), with a log warning
Basically, I tried to give a race context to the outlapped bot. So now it tries to understand if it is alone or in a train of late runners and then should stop fighting with others while Leader has outlapped. If there is a train, there is a small trick that makes bots organize themselves to go on the same lateral side while have slight different speeds so that the train is stretched a little bit.
This seems to help a lot to suppress the late runners trains spreaded all over the AI spline when they had been caught in Blue Flag behavior during a fight, a situation that created complete freeze for the leader just behind.
I tried to code an offensive behavior with mirroring offset etc... for the leader that is outlapping, so that it would be easier for them to overtake the slow bots. It worked in some way but unfortunately, it produces also strange incidents, the native AC colliders system seems to not like when you are putting offset to the bots .... So I had to move back and let AC native overtake behavior make its way and here is a consolidated version, with a (I hope) nice equilibrium based on late runners behavior only, a mix between prudence and enhancement for leaders.
I tested it on 4 configurations; with dozen of simulations 10 laps at AI 100% / 0% aggressivity on :
2 Tracks : Monza & Imola
with 2 grids: one F1 frid with F2004, Lotus Exos and F1 1988 (19 bots) and one LMP1 / GT grids with LMP1/LMdh (both Kunos and mods), URD GTE 2013 and GT3 Kunos (26 bots)
There are still some incidents from time to time (once per race) between the GT when they have just been outlapped and they are back to fighting , especially in dangerous area such as Rettifilo or first turn of Acque Minerali and Variante alta but I found it OK as I saw native AI was also sometimes going out of tracjs here, so I hope you'll find the same results than me and find this new behavior useful in your configurations.
Last edited: