M28AI Devlog (v91)

v25 Update
24 Mostly minor and campaign specific points. One more widespread change was rewriting how land pathing logic is done which significantly reduces the time at the start of the game on larger land maps, at the cost of accuracy. It's possible this might cause M28 to break on some maps so let me know if it doesn't work at all on a map (I've tested on a few different ones so hopefully have caught most cases).

  • Seraphim Mission 4 - 5 changes, mostly minor points or bugfixes
  • Seraphim Mission 5 - 5 changes, including better SMD defence against a Yolona Oss, and gunships trying to avoid friendly Ahwassa bomb fire
  • Coalition Mission 1 - 3 changes, including better late-game power stall handling, and having untis in campaign not try and reinforce zones outside the playable map. Note that even after these changes M28 is unable to complete this mission on easy without cheats (it managed to with AiX 1.2 modifier on easy).
  • Coalition Mission 3 - Rewriting of part of the land pathing logic (that was taking c.85s and now only takes 7.5s, bringing the total map loading time down from 95s to 17.5s); 2 other changes (including fixing how 'large' campaign maps are treated for various parts of M28's logic to be based on the final expanded map size instead of the initial playable area)
  • Fixed bug causing Adaptive turtle beach to not load
  • 7 other changes, including making land experimentals more aggressive when they can't kite, and able to focus down an enemy ACU.

Acknowledgements

  • V_k – Replay showing M28 is broken on Adaptive Turtle Beach
  • Zhanghm18 – Noting that M28 builds too many experimental shields for mods with such an option enabled

v26 Update
30 changes for a 5v5 replay on Xander adaptive, addition of telesnipe logic, and 4 other changes, including:

  • Greater focus on ecoing for bases in an eco/air slot (i.e. that have teammates between them and the enemy)
  • Reduced the extent to which air staging facilities and pre-emptive SMD are built simultaneously by every teammate
  • Fixed a bug that was leading to over-building of factories
  • ACUs should be less keen on getting expensive upgrades and more likely to assist other units
  • Enemy T2 arti should deter building PD and upgrading mexes in its range
  • Refined gunship targeting logic to make them less aggressive when they're scattered across the map and reducing the value given to experimental 'gunships' (Czar and soulripper)
  • Further work on special shielding logic to try and improve its application (maybe one day it will work smoothly...)
  • New Tele-snipe logic - while I expect it will rarely trigger and so won't have been worth the effort required to implement from a competitive perspective, my hope is it leads to some fun surprises occasionally (plus it's something that M27 doesn't do)

Acknowledgements

  • Radde - sharing 2 2v2 replays on Xander adaptive (and also using M28 for a separate game that I used as the basis for most of the changes in this update)
  • res - for mentioning they played against M28 in a replay for review (which when I chekced highlighted a flaw with M28's build order on that map that led it to a major power stall - only partially fixed in this update since I saw it just as I was about to release M28 so now it just has a moderate power stall)

Hello maudlin, I tested your new version and had a few warnings. Here the log. 1922c969-ae39-467e-9586-c01ce48971f0-game_20699863.log unfortunately no replay was generated.

@saver What map did you try it on?
(Edit - nevermind, figured out it was signalpoint_team_ai, I'll have a look)

@maudlin27 said in M28AI Devlog (v26):

v26 Update
30 changes for a 5v5 replay on Xander adaptive, addition of telesnipe logic, and 4 other changes, including:

  • Greater focus on ecoing for bases in an eco/air slot (i.e. that have teammates between them and the enemy)
  • Reduced the extent to which air staging facilities and pre-emptive SMD are built simultaneously by every teammate
  • Fixed a bug that was leading to over-building of factories
  • ACUs should be less keen on getting expensive upgrades and more likely to assist other units
  • Enemy T2 arti should deter building PD and upgrading mexes in its range
  • Refined gunship targeting logic to make them less aggressive when they're scattered across the map and reducing the value given to experimental 'gunships' (Czar and soulripper)
  • Further work on special shielding logic to try and improve its application (maybe one day it will work smoothly...)
  • New Tele-snipe logic - while I expect it will rarely trigger and so won't have been worth the effort required to implement from a competitive perspective, my hope is it leads to some fun surprises occasionally (plus it's something that M27 doesn't do)

Acknowledgements

  • Radde - sharing 2 2v2 replays on Xander adaptive (and also using M28 for a separate game that I used as the basis for most of the changes in this update)
  • res - for mentioning they played against M28 in a replay for review (which when I chekced highlighted a flaw with M28's build order on that map that led it to a major power stall - only partially fixed in this update since I saw it just as I was about to release M28 so now it just has a moderate power stall)

Hello! Maybe try to get AI to build more experimental 'gunships' (Czar and soulripper) rather than fewer? I used the M28 until now and Aeon hardly built Czar. cybran does build a few Soulrippers. I feel that there are still many restrictions on AI building experimental units, can you relax some restrictions, let AI build more diverse experimental units?

@zhanghm18 It shouldn't be building fewer of them - to clarify, the change I mentioned in the summary was to reduce how threatening M28 thinks its Czars and soulrippers are when judging if it's got a strong enough air force to assault a heavily fortified position. I was finding that it would proceed with an assault (as a Czar in mass terms is c.26 broadswords), the czar would quickly lose its shield, and it would retreat before it had overwhelmed the shields, leading to a bunch of losses for no gain.

The reason it doesnt build them much though is both that it currently handles/uses them similarly to a normal gunship (M27's logic for czar in particular was highly specialised and would take some time to put in place) and I'm concerned that mass for mass T3 gunships (restorers/wailers) would be more cost effective since M28 is able to significantly reduce the downside of mass T3 gunships (that they die easily to aoe) while benefiting more from the upside (can be repaired at air staging).

hello maudlin,

I've used your AI with the new mobile factory features and I'm amazed your AI is already using them. WOW

@saver Unfortunately it's something I'll likely be disabling in the short term as it can lead to some errors (e.g. when aircraft carriers get near the shore or fatboys move from land to water) since M28 currently thinks these are immobile factory buildings. I'd been planning on adding specialised logic for the fatboy so will have a think if there's a simple change I can do so the feature isn't lost completely though.

You can differentiate them from 'normal' factories by using the EXTERNALFACTORYUNIT category

A work of art is never finished, merely abandoned

Hi @maudlin27

Just to let you know we found another map where M28 does nothing upon startup. M27 works fine. Do note the map is kinda buggy though (we had trouble building on some wrecked mexes), but I don't think it is related.

Here is the replay on the map (TriGap_alpha) that shows the issue: https://replay.faforever.com/20740907

Thank you!

Oh, btw, the telesnipe feature was a lot of fun, I lost a T3 artillery twice because of that 😄 Didn't expected the teleport, didn't even understood what happened after the first artillery loss.

Maybe an improvement would be that the AI teleports a support commander instead of the ACU, if possible. The second teleport of the AI was a failure (I had build T1 PDs) so he lost his ACU. Not a big deal as we were playing in Supremacy mode, but this would have possibly been a problem in case we were playing in Assassination mode. The teleport was indeed a suicide mission in that case, no way a commander would escape that amount of DPS with my PDs. Would have been a great suicide TP for a support commander though.

@v_k Thanks, it should be more cautious with the telesnipe in assassination mode, especially if it's the last ACU on M28's team (although it may still try as a last-ditch attempt)

Re 20740907, it works ok for me (as a desynced replay), so I'm hoping it's due due to the recent FAF exe changes (which means there's a difference in the underlying game exe between FAF develop and FAF) as I've had similar reports on other maps where M28 normally works fine. Prior to the next patch arriving (which I've heard mention might be in the next few days) one suggestion if this happens is to try hosting the game on FAF develop (if it's not working on FAF), or on FAF (if it's not working on FAF develop).

v27 Update
Assortment of different changes, ranging from improving the build order on one map, refining late-game logic, and optimising pathing for large maps

  • 10 mostly build order based changes to Verdant Valley
  • Fixed a bug with generating map pathing that caused Signalpoint team AI map to not work, along with fixing a bug during games on maps with underwater mexes
  • 15 changes based on a Xander6 Adaptive replay, including adjustments to decisions on what experimental should be built, more precise gunship targeting logic, fixing a bug that meant Czars and SoulRippers often wouldnt attack, and fixing a bug that meant telesnipe upgrades would take much longer to get
  • 2 changes based on Selkie Isle map (fixing a bug with overbuilding SMD against Seraphim battleships, and making M28's air force more likely to defend torpedo bombers)
  • 8 changes based on fields of isis, mostly around trying harder to shield friendly T2 arti
  • Units with mobile factories (e.g. aircraft carriers) should no longer be treated as factories (so shouldn't build anything). However, to compensate for this I've added support for using the fatboy as a mobile factory.
  • Significant reduction in the time taken to load frostmill ruins, to under a minute (for decent CPUs), from a previously unrecordable (due to how long it would take) time
  • 10 other changes, including adding a redundancy for when engineers get stuck trying to load into a transport, improvements to the unit cap logic and fixing a bug that would cause land factories to be overbuilt late-game

Acknowledgements

  • Saver – Highlighting error on Signal point map
  • Radde – 4 more replays, including one that featured M28’s first successful double-tele-snipe (which was great to see)
  • Babel, V_k, Anon, and Jip and Relent0r – Babel, V_K and another user highlighted maps where M28 didn’t appear to work. I got similar issues but with Jip and Relent0rs help I realised I was getting the error if I tried playing FAF after updating the FAF develop exe, or vice versa (trying to play FAF develop after having updated the FAF exe), so I expect this is the same point – i.e. it’s due to changes made to FAF which should hopefully align the two in a few days.
  • Sprouto – suggesting warping engineers that are stuck with a transport load order (but not actually loading) to be at the transport location (which solved the issue in one replay)

v28 Update
Smaller update focused on the 40km map Spiralarm Harbour:

  • Further pathing optimisation, reducing the time taken to load this map from 319s to 16s (at the cost of accuracy) - very large maps with large numbers of islands should make use of this optimisation, but for most maps the more accurate previous method should be used
    20 Other changes, including:
  • Improved transport rush build order (including use of multiple transports if there are lots of islands to drop and few players), and other initial build order tweaks
  • Fixed some issues with transports, particularly where there are multiple transports being managed, that could result in no engineers being loaded, or engineers being dropped at islands that already have factories
  • Expanded civilian capture logic to cover capturing civilian mexes, hydros, and other power, and factored in the unit to be captured's build time to the decision of how many engineers to send to capture it
  • Fixed some issues with the unit cap that could lead to the unit cap being reached, and that were preventing air staging or mexes being built

v29 Update
A quick update to reflect further pathing optimisation:

  • Optimised the initial pathing generation for land zones - very small zones should now be culled resulting in a significant speed increase on some maps (e.g. on the map being tested, which was a mapgen map, originally it took roughly 40s to load, after this change it was down to under 3s)
  • Adjusted retreat logic for units running away so they shouldnt run to the rally point if it's in a different direction to the main base (reducing instances where e.g. mongees, hoplites and mobile shields would suicide into an advancing enemy)
  • Added compatibility for mods that add unusually sized units (e.g. experimental units that are a different size to any existing FAF unit should be built sometimes now)
  • Fixed a couple of minor bugs

Acknowledgements

  • Relent0r - Replay showing 2vM28 which highlighted the long load time and issues with retreating units
  • (zhanghm18 - reminder of issue previously highlighted with mod units not being built)
  • Babel - replay with M27 and M28 where M28 didnt work (due to an issue with M27)

v30 Update

  • Aeon will now in some (rare) cases consider building a paragon
  • 6 Improvements to norush games, including fixing an issue where engineers would stop building units (due to them trying to build outside the norush radius)
  • Mobile stealth should be less likely to be used and built for areas covered by enemy omni
  • 5 bugfixes and other adjustments from a Strydxr replay, including preventing units being assigned special M28 debug names (from some testing code I forgot to disable), and having naval AA less likely to suicide into the middle of a group of gunships

Acknowledgements

  • Bart - Replay highlighting norush issues on open palms
  • Strydxr - Replay showing a name display bug and some other bugs

v31 update
15 adjustments and bugfixes:

  • Various tweaks to the decision on what experimental to build, including fixing an issue with working out how many experimentals are under construction (so M28 should no longer start constructing 3 nukes at once), and making it more likely for air experimentals to be built in some scenarios
  • Fixed some bugs where multiple transports are waiting for engineers and also added a workaround for maps with poorly designed plateaus (that cant be dropped)
  • Added additional retreat logic for MAA to consider just running in the opposite direction to the enemy
  • Fixed a bug that could break engineer construction logic (typically late-game)
  • Added special gunship retreat logic, so if the gunships try to retreat and would be going straight over a load of enemy SAMs, they should consider whether a detour would help them avoid some of the SAMs.
  • Fixed a bug where paragons weren't being counted as game-enders (meaning they wouldn't benefit from M28's special shielding logic)

Acknowledgements

  • Fertgl – Replay showing 2 M28 transports getting stuck in a loop alternating between each other for a drop zone.
  • EsaihSiX - for putting M28 in the title of the 6 (human) v 4 M28 replay (20778889) and posting it in discord, which was the source of most of the changes made this update

v32 update

  • 7 changes for FA Mission 3, the most noticeable of which should involve building fewer land units and not rushing an SMD just because the enemy has a seraphim battleship
  • Improved support for low mex maps (1-2 mexes in the starting zone and none or almost none in the rest of the map) - M28 should build far fewer factories initially and focus on upgrading its mex sooner. Note that its build order is in no way optimised, and an optimised human build order will still crush it at 1.0 modifier.
  • 10 changes mostly relating to improving M28's approach once it has a paragon (making it more likely to build air factories and experimentals, fixing an issue with building a second paragon, etc.)
  • Rewrote part of the pathing logic to fix a bug (most likely on 20km+ land maps) that could cause units to move in the opposite direction to where they were meant to go
  • 4 other changes, including fixing an issue with underwater start points, and fixing a bug I realised has been present since pre-v1 that caused too many engineers to be sent to other zones (the number of engineers a zone was requesting featured double-counting in some cases)

Acknowledgements

  • Retributer - highlighting issues with M28 building too many land units on M3 of the FA campaign
  • Bart - Replay highlighting issues with paragons and wierd pathing for a GC

Hi - I have a question aswell:

My friends an I are always playing against AI and since AIx isnt a challenge anymore once you figuerd out how they work, we tried M28. We were 2 and in the end we lost vs 1 M28. Next Game we won (still 2vs1 though .. ^^) and we analyzed the replay.
Now the question: Does M28 cheat like AIx? With shorter building times and do they get somehow more ressources?
We couldnt really figure it out, because somehow M28 seems to have alot of Units and almost never Mass or Energy Problems, it never seems to get like masslocked.
We think its just because M28 is so clever with pausing/unpausing updates, unit production etc. but we are not quiet sure because i bombed almost all his mass in that one game and (M28 had 2 Massextractors left, 1 T1 and 1 T2) and was still able to produce a sufficient supply of mass and units.
Well, as you can see, we are not Pros. But your AI gave us a great fight, very good work!

@calvalon M28 doesn’t receive any resource or build power bonus unless you’re playing against the AiX version.

I’d expect it to be very rare that it runs out of energy but quite common that it has low mass (ie 0 stored mass with negative mass income).

It should pause things to avoid running out of energy or if it’s mass stall becomes too severe.

It should also reclaim regularly so that might explain it having more units than expected (you could use 4z0t’s scoreboard and analyse a replay to see how much it is reclaiming and total mass generated to see how its gaining and spending its mass)