M28AI Devlog (v130)

v89 Update
28 changes and fixes, including:

  • Units should no longer be given a stop order when changing an existing move order
  • Added tele-defence logic
  • LABs should be built early game
  • Fixed a bug with the ahwassa targeting units right by it, while ASFs should try to get much closer to a friendly ahwassa to support it when idling
  • T3 arti should no longer target off-map units in campaigns (which could sometimes break the mission)

Acknowledgements

  • Jip – Pointing me towards navigator funtions that allow the AI to change move orders ‘on the fly’ without having to stop the unit; until then I'd thought it wasn't possible for the AI to mimic human behaviour (e.g. having an ACU move in a circle to dodge bombs)
  • Radde - various replays on both land and naval maps
  • Hammi – Replay showing M28’s poor energy management with the quantim rift
  • Ash - replay on dawn (Campaign FA M2) where the map wouldn't expand (which I expect was due to M28's T3 arti killing off-map units which prevented the map from expanding)

v90 Update
28 mostly very minor changes and fixes; however there's a chance one of the changes (re reclaim) could make M28 run much slower so let me know if things are significantly slower (testing suggested it's mostly just the start of the game that will take a bit longer, e.g. +10s on an 80km map)

Also if anyone knows of a map with plateaus that have significant reclaim but no mexes on them let me know and I can test if one of the changes added this version works as I'd expect.

  • Transports should consider dropping to plateaus with no mexes if they have significant reclaim on them, and do a more precise calculation when deciding if a location is too dangerous to drop.
  • Reclaim should be updated more consistently for zones, particularly at the start of the game (previously only some of the reclaim in a zone at the start of the game was being properly recorded, and wouldn't update until the reclaim position changed)
  • Various chat related changes, including adding a few very niche voice messages, and increasing the use of taunts in campaign games
  • Subs should move towards units that outrange it such as a destroyer instead of attack-moving (so they are less vulnerable to being kited)
  • Mass fabs and quantum gateways are more likely to be built late-game if the enemy is also getting them (to stop scenarios where a turtler could slowly win the game by gradually scaling up their late game eco)
  • High value units (e.g. experimantsl, ACU) should stay away from the blast area of a friendly nuke.

Acknowledgements

  • Sladow - mentioning how M28 lost a GC to a friendly nuke in a game
  • Relent0r – asking whether I factor in reclaim when picking somewhere to drop for transports (which prompted me to look at adding such logic)

I tested AI in a few games and can confirm that it spams RAS commanders and its a lot more challenging in the late game. There is still an occasional issue with experimentals where it cant decide what to shoot at when being attacked and ends up dying with barely doing any damage. But mostly its ok.

I have a question. When playing 3v3 vs Cybran, Aeon and Seraphim, when enemy builds a paragon, i see that for instance Cybran player suddenly owns an experimental bomber. So Seraphim must have donated either enginner, factory or the bomber itself to Cybran. How does that happen ? I was never donated anything, apart from few planes early on. Also Aeon player will usualy build more than 1 paragon, yet i never see him donate that to team players. That might be a good idea since Aeon player will soon hit unit limit or be limited by build power.

@goblinsly2 Re the engineers I don't know, the only case I'd expect an engineer to be donated is if a paragon got built (in which case the M28 teammates should gift some of their engineers and factories to the M28 that built the paragon).

It's generally not meant to build more than one paragon which is why I've not added logic to gift over a second although I could add something basic for that to cover rarer scenarios like if it queues up a second paragon while building the first (if it's queing up the second after the first has been constructed then that will be a bug though).

If you have a replay where it doesn't attack targets I could have a look as it's not meant to do that in most cases so could be a bug.

v91 Update
19 generally small tweaks and fixes, including:

  • More cautious use of bombers (meaning they're less likely to suicide in the campaign missions and more likely to target ground AA units of the enemy inbetween them and their target)
  • Nukes should no longer be launched by a hostile M28 campaign AI until the timer for its attack logic to commence has passed (meaning on Forge UEF Mission 5 it is no longer an auto-loss at the start of the game!)
  • LABs should be more aggressive
  • Expanded M28's snipe logic so it can trigger in more cases where its ACU isnt near the enemy ACU
  • Reworked most land logic to determine the nearest enemy unit by reference to the closest M28 base instead of the zone's midpoint.

Acknowledgements

  • Radde – replays vs 1.2 resource M28
  • Saltanis – mentioning that M28 nukes players at the start of UEF M5 (as a hostile AI), making the mission impossible
  • Goblinsly – Issue with M28 not gifting its second+ paragon to teammate
  • Zhanghm – Mentioning M28 would build multiple paragon type units where they’re modded ‘non-Aeon’ paragons.

Trophies
No change from before (Radde trophy - Radde and KuhwaKlimakleber vs v86 1.4 resource M28 on mapgen; Sladow trophy - Radde vs v81 1.5 AiX M28 on a 10km map)

v92 Update
23 changes and fixes, of which just over half can be summarised as 'making it harder to kill a team of M28s with a novax'.

  • Fixed a bug that could crash the game in some rare scenarios when trying to build PD (such as UEF campaign mission 1)
  • Submarines should consider attacking even if outmatched if they think they can kill a vulnerable unit that is away from the main naval force
  • Similar 'use closest unit to base instead of zone midpoint' change to naval logic that was added to land units in the last update
  • Several adjustments and fixes to mobile shields (likely caused by switching the basis for assigning the shields in recent updates)
  • Numerous changes to try and make it harder to snipe M28 with a novax, mostly focused around use of mobile shields, the ACU assisting a fixed shield it is sheltering around, and making health type ACU upgrades more likely
  • Expanded the 'factions'/players that the M28Allies campaign logic will apply to, so it will now apply the maxim 'the enemy of my enemy must be my friend' (to treat a non-hostile faction as being an ally). This means for example it will now take over the UEF mission 1 research base.

Acknowledgements

  • Radde - Several replays, including one where 2 novaxes wiped out the entire M28 team just as they were about to win (hence the reason for the majority of changes this update!)
  • Colonel Arnold – Mentioning how M28 doesn’t take control of the research base in UEF Mission 1 (if told to be used for allies)

On Operation Trident M28 Reclams the base you're supposed to defend meaning you loose the mission. Not sure if this is fixable on your side. Perhaspe a toggle for reclaming nutral buildings?

Another minor nit-pick, some missions already divide troops amoungst players. Then you AI divides it again in favor for you AI to you end up wil hal you starting army .

Operation Trident is such a mission.

@savinguptobebrok I tried just now but M28 didnt reclaim the civilians (I had 1 M28AI buddy and had M28 applying to allied units).
Could you send me the replay number for the game where it did reclaim them?

https://replay.faforever.com/22429263

At around the 15 minute mark. if you need anything else le tme know.

v93 Update
Hotfix, with 15 bugfixes and other changes

  • Fixed bug that could break M28's land combat unit manager
  • Fixed major bug with M28's naval logic that would break if its units were outranged
  • Operation trident civilians should no longer be reclaimed
  • Aeon M6 control centre should be fortified more once captured
  • Increased the amount of MAA to be built in some cases

Acknowledgements

  • Savinguptobebrok – Replay where M28 reclaimed the civilians to be protected
  • (Chidori – trying to help with resolving a suicidal Campaign M28 ACU, but ultimately I couldn’t find the cause due to the replays desyncing).

Tnx. Im still playing on that fortress map. Just 3 quick things.

  1. when i go and snipe paragon, i always kill 1 or 2 commanders along with it.
  2. even when para is built by aeon, it's com is still pretty stock, so killing him is easy. It would be harder if he had shield and some hp boosting upgrades. Same for other coms.
  3. Cybran i think is to confident in its T3 gunships and bugs. He will go around the map without any ASF's even when enemy has tons of ASF's and it's an easy prey due to neglible AA on those 2 types of gunships. It's prolly depending on me protecting the flock since im an air dominant player ?

@goblinsly2

  1. It's intentional, as that will be the most heavily shielded part of M28's base, and there's a good chance if it loses that then it would have lost anyway. However it's on my longer term todo list to look at trying to avoid having 3+ ACUs all sheltering in the same place.
  2. I'd expect UEF and Sera to already get shield/nano respectively, is this not happening? Cybran and Aeon would need special logic as they won't get the health upgrades if they've gone the RAS route.
  3. If M28 gifts you any asfs then yes it will assume you will be covering its air units and will be more aggressive with them if it thinks you have air control (or are roughly even on air).

v94 Update
18 changes and (mostly campaign related) fixes, including:

  • Added a fix for a change to Cybran M6 that caused M28's asfs to not engage the czar
  • Improved the avoidance logic for Cybran M4 to make it far less likely that units damage the mainframe base (and cause the mission to fail)
  • ACUs should be more likely to remove RAS upgrade and get health based upgrades at high eco levels
  • Reduced likelihood of Aeon building a T3 arti when it hasn't tried building a Czar or lots of GCs

Acknowledgements

  • Radde - Various replays
  • goblinsly2 - noting how M28 isn't getting shield/similar upgrades when a paragon is built

No changes to trophies from before

v95 Update
11 changes/fixes; aside from some campaign bugfixes (including fixing an issue where M28 could ctrl-K almost its entire army when the map expanded), many of the changes were to try and improve how M28 deals with restorers, including:

  • Czars should be more likely to build asfs if they're needed
  • M28 should focus on air instead of experimentals if the enemy has air control coupled with a significant air threat
  • Fatboys should seek a larger dedicated MAA escort if the enemy has a significant gunship threat
  • Gunships should be less likely to attack enemies if they have a significant air based AA escort
  • ASFs should be less likely to suicide to protect a friendly experimental in certain cases

Acknowledgements

  • Radde - Replay showing M28 losing with a 1.3 modifier

Trophies

  • No change from before (Radde trophy - Radde and KuhwaKlimakleber vs v86 1.4 resource M28 on mapgen; Sladow trophy - Radde vs v81 1.5 AiX M28 on a 10km map)

Quick question: Any way to enable the overwhelm cheat option for M28? Unless I'm mistaken, this setting has not effect on M28.

Thanks!

@hammi Not at present, as that feature has to be specifically coded into an AI

v96 Update
16 mostly minor tweaks and fixes based on campaign testing, including:

  • Fixed a bug that meant M28 wasn't building factories at expansions when low on mass
  • Land scouts should be built initially in teamgames even if the faction choice would be suboptimal
  • Adjusted T1 build conditions to factor in how many M28 players are on the team (to stop it being built much too early in teamgames)
  • Various adjustments for when M28 is close to the unit cap and overflowing mass (primarily for campaign scenarios where higher end units are restricted)
  • Adjusted how M28 determines zones to factor in the travel distance between mexes close to player start points (to make it less likely M28 incorrectly thinks a mex is its own rather than a teammtes)

Acknowledgements

  • Fearghal - Replay where M28 reclaimed Fearghal's airgrid

I got an unhandled exception after a long time, prolly played this map 30-40 times without a single crash, and long games, 3+ hours with paragon and tons of units.
The only difference is that i was streaming to my friend this time. Could this be the reason or u see something in logs, maybe recent update to M28 ?

game_22515801.zip

@goblinsly2 Nothing obvious from the log, can you turn on the FAF debugger? That way if you get crashes in the future there's a greater likelihood the log will contain information pointing towards the cause:
3f550d5f-c6d3-41a9-bb04-8eef7470134e-image.png

I will do that. Also, when the game stopped responding, i waited about 30 seconds, then i alt+tabbed and saw another window opened called unhandled exception. Does it matter which one i close first in order to give game enough time to write into logs, game window or unhandled exception ? The only other thing that comes to mind is that i was streaming a game to a friend, but game was at 0 at that time.