M28AI Devlog (v102)

Many thanks for another great AI!

Just tried a match with M28 on the map concord lake, but it seems M28 doesn't like the map and decides not to play it 😉
The ACU spawns but doesnt initiate any activity.
Noticed that there was a bug like this earlier on maps with water, so perhaps this is another variant of it?

FYI It's an original map, so it's not in the map vault

@j_w_w Could you send me a DM on discord with a copy of the map? I’ve recently had a similar issue flagged on another map so it’s likely the same problem but I’d need to be able to test on the map to confirm.

Alternatively you could retest it after the next update which may have fixed the issue.

Think you already have it; should probably have said that it's a vanilla map of the base game.
If needed i can send it.

Thanks, yes I misunderstood your post, will have a look at it ahead of the next release.

Great, really looking forward on how M28 plays this map!

@maudlin27 Yeah will do that! We actually played a navy game last night with 5 humans vs 2x m28 and 1x m27.

m27 manages to actually play the game, but around tech 2/3, the m28 just kinda stalls and does nothing for the remainder of the game.

I will attach the reply here in my next reply when I get home.

Going further, we will try and play against an AiX version of m28 as well sometime this week.

See replay mentioned above here: https://replay.faforever.com/20168373

Frequent lack of anti-nukes?... I've noticed that quite often in games M28 doesn't seem to be building anti-nukes. When I've had M28 allies, the game has often very easily ended by either my M28 allies or M28 opponents getting nuked my an opposing M28 AI and having zero anti-nuke defenses; because it is the opposing M28 sending the nukes it is not the case of the nukes being too fast for the AI to build defenses, it just seems like the AI isn't building defenses. Here's an example of a replay: https://replay.faforever.com/20218155

@tyne141 Thanks, yes it's a known bug that'll be fixed in the next release

v10 Release

  • Special active shielding logic - in theory it allows M28 to survive a mavor. In practice, the few times it works it will probably just give it 6 more seconds before it dies
  • Adjustments to zone creation so on maps like adaptive dark card the central island isn't treated as part of the start zone
  • Optimisation of the experimental bomber logic including spreading it over different ticks where there are large numbers, along with a bugfix so it doesnt target land scouts
  • Support for SC UEF Mission 1 of the campaign (M28 is now able to beat it on hard with no assistance)
  • Improved support for FA Mission 6 - M28 is now capable of capturing the control centre, and should no longer reclaim it if the enemy captures it
  • MML shot synchronisation to help overwhelm TMD
  • Various ecoing adjustments to try and make M28 spend more mass upgrading mexes
  • 6 other changes and fixes, including stopping ACUs suiciding near PD that is near the start (e.g. civilian PD on adaptive dark card, or campaign missions which start with nearby enemy PD), fixing a bug that meant it didnt work on a couple of maps (e.g. Abhor and Concord Lake), and fixing a bug that prevented SMD being built


  • Fearghal (highlighting issue with SMDs not being built; also later confirmed by tyne141)
  • Radde – several replays against a 1.5 resource mod M28
  • J_W_W and Relent0r – errors where M28 wouldn’t work on a couple of maps
  • Pedro_Lima – highlighting FA Mission 6 issues with capturing the control centre
  • Unknown – I made a note that someone had highlighted one of the custom campaigns where M28 attacks PD at the start, but can’t find the comment now (I recall it was an issue either with golden crystals or raid. Since golden crystals has PD near the start I’m assuming it was that map, and a bugfix made more generally looks like it’s solved that issue).
  • Russtymango Naval replay
    (sorry if I missed anyone out – I had some rl issues so wasn’t able to look at a number of points for a while)

v11 Release
These changes were mostly based on the UEF M2 of the SC campaign, along with optimising the map pathing at the start of the game.

  • Significant reduction in the time taken to generate pathing on certain maps. One improvement was for maps with islands, where for example on Selkie Isle the time taken reduced from 172s to 21s. Another improvement was for maps with lots of mexes. For example on Strip mine this reduced the time taken from 80s to 42s.
  • M28 can now use transports to drop engineers at far away locations on the same island. For example, it may try a transport drop on maps usch as strip mine.
  • Added 'first land second air' transport rush build order for certain maps
  • Added partial support for M2 of the UEF SC campaign. In particular, M28 will now try and drop an engineer at the objective, repair it, and build up a base to defend it from the attacks (although it will get overrun on hard difficulty).
  • More than 30 adjustments to try and improve M28's combat performance on M2, including better handling of the unit cap when higher tech units aren't available, greater use of MMLs (which should also be used more aggressively), an increased limit on the number of gunships to be built, and a few other refinements to air targeting and production logic. Following these, M28 is able to complete M2 on easy provided the human player handles the 'send x tanks, AA and gunships to this location and then send civilians away' objective.
  • Reduced the amount of mexes M28 should try and upgrade at once

v12-v13 Release
Almost all these changes were for UEF M3 and M4 of the SC campaign (with 15 changes made for M3 and 26 for M4). Examples of some of the changes:

  • M28 should now support campaign objectives involving reclaiming a unit (such as arnold's black box)
  • Improved logic with high numbers of air units, including a cap on gunship and intie/asf numbers and an increase in air staging (to avoid e.g. inties permanently being low on fuel)
  • Fixed a bug with torp bombers that could prevent units being targeted.
  • Added a workaround for a bug with SC M3 that can make it impossible for the game to end
  • Improved support for unit restrictions that allow a higher tech factory to be built but not engineers of that tech level (e.g. M4 of the campaign)
  • M28 should be more likely to try and attack the enemy base with land experimentals when it's on another island
  • Increased the types of units TML should try and target (and TMD should try and cover)

v13 - Hotfix to disable some testing code that would apply with AiX

v14 Release
More campaign mission support - I've summarised the missions below along with some examples of changes that will be of wider relevance:

  • UEF M5 - 5 Changes (including shrinking starting land zones, and providing a niche strategy to overwhelm the enemy with nukes)
  • UEF M6 - 12 Changes, mostly focused on naval/torpedo bomber usage, including a number of bugfixes
  • Cybran M1 - 6 Changes, focused around use of bombers (only likely to be relevant if playing with unit restrictions or in niche scenarios)
  • Cybran M2 - 28 (!!) changes. This mission was a real pain to get to work, and many of the changes were just campaign specific points, although more general points included improving the accuracy of logic for identifying nearby water zones, and reducing the likelihood of island expansions overbuilding units if on a large island.
  • 8 Misc changes and bugfixes for various niche scenarios (e.g. expansion areas being better at judging whether to build indirect fire units; units in expansion areas being more aggressive if the enemy is almost in range of the last zone to retreat to)


  • Sprouto - providing some code to try and mitigate issues where orders weren’t being processed – it didn’t fix the issue I had at the time (a strange one where an engineer would be given a move order nearby yet fail to move), but I’ve left the code in incase it’s of help for a potential future issue.
  • Pedro_Lima – Mentioning that M28’s ACU was being a bit too aggressive and dying on one of the Seraphim campaign maps.


Hello Mauldin,

I've played games with the M28 and the UVESO mod with a buddy or alone in the last few days, unfortunately 3/4 of them always broke off in the combo. The last test was today because it ran yesterday. Unfortunately, today I only had game breaks after about 1 - 5 minutes. I have a log and an Unhandled Exception report. .. Your AI alone is otherwise stable.Unhandled Exception.txt game_20377122.log

Here's a replay that went really well. https://replay.faforever.com/20378257
same setting, different map

@saver Thanks, there was an error that replay highlighted which will be fixed in the next version. I doubt it was the cause of the crash, but I've not been able to reproduce it (trying twice on that map with only Uveso and M28 mods and once with the same mods you had in the replay), so there's a chance it was connected to that or something else has changed that has fixed it. It's also possible it was linked to the unit restrictions, as there was an incompatibility with the stone age mod (which will be fixed in the next release) so maybe the fix for the cause of that incompatibilty helped in some way.

Hi Maudlin, thanks for the feedback. I don't know if it's relevant, but the error mostly occurred on 20x20 maps.

v15 changes (I forgot to post a summary at the time)
Support added for Cybran SC campaign missions 3-6, including:

  • M3 - 5 changes, including making 'island beachhead' units less suicidal where enemies are further away
  • M4 - 5 changes, including making M28 more likely to build navy on larger naval maps, and adding a bunch of campaign specific logic to deal with the headache of losing the game if the AI attacks the enemy base
  • M5 - 3 changes, including bombers considering water based targets when lots are available
  • M6 - 24 (!!) changes, another real pain of a mission, because the first objective is really hard (for a below average player) particularly with FAF balance. Even at AiX 2.0 M28 couldn't beat this on easy initially, but after a large number of changes including a bunch of mission specific logic it can often handle it on hard at 1.0. M28 can also now fire black sun.
  • Added billy nuke defence logic
  • 2 Misc changes, including land factories being less likely to upgrade at the same time as others.


  • FenixThorn – replay highlighting issues with M28 upgrading multiple HQs at once

v16 changes
Support added for Aeon mission 1 - with the possible exception of Cybran mission 4 (where attacking the enemy fails the game) this was the hardest mission to get working for the AI. Challenges include starting on land but not being able to build any land or air factories; having a small area of water to build on (that means M28's 'marker'/reference point for this water zone was outside the playable area), and the enemy having a massive load of defences that outrange any unit that can be built (with SAMs crushing T1 bombers, and groups of 5 T2 torpedo launchers crushing frigates and submarines). After finally getting M28 able to overwhelm the defences, I then discovered some of them don't die when reduced to 0 health.

  • Reworked water zone generation logic to reduce the number of very small/narrow zones (that would mess with unit logic due to units thinking there are no enemies in an adjacent zone)
  • Reworked naval combat decisions so e.g. subs and frigates no longer end up suiciding into enemy torpedo launchers, or commencing an attack and then aborting just after starting to take fire from the torpedo launchers (the same logic should apply to enemy naval units as well)
  • 26 other changes relating to mission 1, many of which are naval related
  • 12 more general changes, including hopefully fixing an incompatibility with the stone age mod, making M28 more likely to go second air when in a rear position, and improving logic used by engineers to reclaim enemy units


  • Sladow – flagging the incompatibility with the stone age mod
  • Saver – replay with error/crash

Hello again, I played a test game in Develope mode and had a freeze with the UVESO Mod and the M28. Unfortunately, since I didn't know exactly where to post it, I thought I'd report it to you.cc7ce80d-1734-490e-ae16-d6d00d26f0c2-game_20414430.log Unfortunately I only have the logs because I didn't create a Replay ID.