M28AI Devlog (v91)

v84 Update
23 changes and fixes. The majority of changes were based on lower priority points from an AI vs AI test replay I ran for v82 relating to early game plateau expansion/defence.

  • Added new M28Easy option for hostile campaign AI
  • Plateaus/islands with some hostile enemies should still be considered for drops where there are a number of available zones (e.g. resolving an issue on Adaptive Tourmaline where civilian PD prevented a drop on the main map area)
  • Inties should be more likely to defend plateau drops from enemy air attack, while the plateau drops should no longer be diverted to reclaim duty if they have yet to build a land factory
  • Improved the ability of engineers to dodge T1 Cybran and UEF bombers by pre-emptively dodging - where previously they would almost always die to the first volley now they have a decent chance of surviving at least 1 bomb.
  • Reduced the tendency of M28 to build T1 arti early on instead of tanks
  • Increased ACU aggressiveness in the late T2/early T3 stage in teamgames.

Acknowledgements

  • Radde – Replays from v82 which provided some more changes
  • Azraeelian Angel – Replays against 1.0 and 1.1 M28AI
  • Fertgl – Replay showing M28 failing to expand on the map Adaptive Tourmaline

Trophies
No change from before:

  • Sladow trophy - won by Radde against 1.5 AiX M28 (v81)
  • Radde trophy - won by Radde, Mhad and GhillieWolf against v59 M28.

Top 🙂

v85 Update
20 more tweaks and fixes, based both on some more minor issues noted from earlier replays, and some improvements to deal with a live replay I saw where M28 threw away a game-winning position on dual gap (by not attacking t2 arti with destroyers, and pausing its SMD when the enemy built a nuke). Changes include:

  • Land units should sometimes try and suicide into enemy mexes instead of retreating
  • Naval units such as destroyers should be much more likely to attack enemy T2 arti and other fortifications if not badly damaged (once they have control of the pond) instead of hanging back to support longer ranged units
  • Fixed a bug that caused SMD to be paused before being loaded when the enemy has a nuke
  • Ythotha should consider focusing down enemy T3 land units to try and reduce the likelihood it change its orders so much that it doesnt fire it's big 'lightning ball' (these changes may also cause it to cancel this attack, but hopefully it will reduce the worst case scenario of it not even killing the t3 land unit before cancelling the lightning ball attack)
  • Slightly improved Novax targeting so if it's relatively near a shield that a friendly T3 arti has just brought down the novax should move to kill the shield (previously this would only happen if the shield was almost in range)

Acknowledgements

  • Fertgl - Pointing out that T3 engineers were being ctrl-k’d for mass in priority to t1 and t2 engineers in a replay.

Trophies
No change from before:

  • Sladow trophy - won by Radde against 1.5 AiX M28 (v81)
  • Radde trophy - won by Radde, Mhad and GhillieWolf against v59 M28.

v86 Update
Hotfix for mostly minor bugs. 14 tweaks and fixes, with the more impactful ones being:

  • Added a fix to take account for FAF changing the categories of the paragon a couple of weeks ago (which meant M28's paragon specific logic was disabled)
  • Engineers should be far less likely to try and reclaim low value wrecks such as trees in their build range (and instead either not reclaim, or look further afield for high value wrecks)
  • Greater prioritisation of air (at the cost of most experimental production) if the enemy has an air experimental and M28 lacks air control

Acknowledgements

  • x17 - Replay where M28 failed to respond properly to being gifted a paragon

I see a few updates were done since i wrote about air. I thought i improved my airplay and started winning because of that, but it might just be because of updates.

I just finished a great game where i sniped a paragon and only when my bugs attacked it i saw 2 coms standing next to it. That looked very dangerous. Just a thought.

I think the only reason i am able to win in this setup is because i build fabs while enemy doesn't, so after a while i just build more units. I remember M27 mass built fabs and ras coms, this seemed to change in M28 ?

v87 Update
39 fixes and changes, including:

  • Fixing a bug with nomads air units (which would constantly be sent for refuelling due to an issue with nomads which shows them as having negative fuel)
  • Fixing a bug with reading a map that caused M28 to break on Adaptive Zone 6
  • Pre-emptive gunship retreat logic based on how many SAM missiles are approaching them
  • Fixing an issue on some maps where if M28 was on team 2 it would treat some frontline bases as being 'safe' eco/air slots
  • Fixed a bug preventing battleships from groundfiring subs if the enemy had any non-sub units nearby
  • Teammates are more likely to build lower tech power if stalling energy even if a teammate has a factory of a higher tech
  • Various adjustments to the decision on what experimental to build
  • Various adjustments to ACU upgrades, making it more likely defensive upgrades are obtained (instead of RAS), and that the ACU will consider cancelling an upgrade even if in its core base

Acknowledgements

  • Radde - Various replays in a range of scenarios providing the source of many of this verison's updates
  • Relent0r - Identifying a bug with nomads that causes air units to be treated as having negative fuel

Trophies

  • Radde trophy - Awarded to Radde and KuhwaKlimakleber (for beating 1.4 resource on a 15km mapgen)

(No change to the Sladow trophy, held by Radde beating v81, 1.5 AiX on a 10km map)

v88 Update
17 fixes and changes, including:

  • Ahwassa targeting improvements so they are more cautious against enemy SAMs when M28 only has 1
  • Fixed some edge cases with experimentals where they could be in range of an enemy experimental and not attack it
  • Mobile shields should adjust to try and shield the closest friendly combat unit on the frontlines.
  • Significant increase in frigate proportion vs other naval units
  • T1 aeon factories should build far fewer T1 arti once T2 land is reached
  • Multiple naval HQs should be much less likely to be obtained
  • Fixed an issue where engineers could try and reclaim high value wrecks and sit idle due to no such wrecks existing

Acknowledgements

  • Azraeel – 1.1 resource replay (prompting me to make ACU’s MAA escort more likely to retreat from enemy tanks)
  • No change to previous trophy award

The AI seems great but I'm not sure if I'm setting them up wrong or what.

Using all default settings in a 2v2 scenario, the enemy AI will spam T2 MMLs, but once this force is overwhelmed they're pretty easy to beat. Seems like a great AI early-game for smaller battles, but larger 4v4 battles the AI seems very confused and doesn't really know what to do.

Definitely the best AI available though, so cheers for that!

As mentioned before, I do agree that this is by far the best AI there is for FAF.

Let me just try to follow up the other message that I sent above on M28AI playing the Seraphim. Because in the many games that I've meanwhile played, it seems that the Seraphim come with a bit of a challenge of their own for the AI, making it a much less challenging opponent. Energy management appears to be an issue, possibly in conjunction with the Quantum Rift Archways. After it has built a QRA (and it always builds multiple), it struggles with energy for quite some time and is keeping shields down etc. Also, it's typical for the AI to run into unit cap issues later, also complaining about it in the chat, while it keeps piling up all units in its base.

https://replay.faforever.com/22323052 is an example for this. It is having energy issues before, but after completing its 4th Quantum Rift Archway at 1:25, it takes until 2:09 (almost 45 minutes) to get it's energy handling back up and the shields stable.

Also, what the AI never tries as a Seraphim is building (their unique) nuke launchers for nuke spamming, or mass attacks with air units. Also experimental unit attacks as such are very rare, but that might just be because of the energy problems caused by the Quantum Rift Archways.

This is not intended as a complaint, but just as hopefully helpful feedback to improve this AI even further!

@koral If it’s spamming mmls that suggests you’ve built a firebase near enough that it sees it as a threat.

For 4v4s if you’re easily beating it with a team of lower rating than the AI send me the replay and I can see if there are any obvious issues, as it should be compatible with virtually all maps and settings

@hammi Is the QRA the modded experimental unit that builds t3 land units quickly? I can probably reduce the chance it gets built slightly depending on how the unit’s blueprint is defined

I’d expect the Yolona Oss to be built in high eco games, but it’s also possible that the mods used interfere with the normal logic for building this.

Yes, the QRA stems from the Blackops FAF: Unleashed or the Total Mayhem mod. Not sure if the issue is (only) how often it is built. Energy management gets out of control, and the units are essentially just kept in the base. The first issue renders all shields useless, and the second causes all this investment to be essentially invain. But I guess it's not easy/possible to fix energy management?

If it's low on energy such that it is pausing shields it should be building T3 pgens as a high priority, and late game I'd only really expect it to happen if it's trying to build an experimental with a high E cost like a yolona (where it ends up going into cycles of bulding it; stalling E; pausing units/shields; resuming production); if it isn't building more T3 pgens over several minutes and it looks like it has plenty of build space then if you send me the replay and time stamp I can check if there's anything else going on.

The link to the replay is the one I posted above: https://replay.faforever.com/22323052
As mentioned above, from about 1:24 energy is crappy until about 2:09.

If you need anything else, please let me know!

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)