M28AI Devlog (v111)

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)

Acknowledgements

  • 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.

@maudlin27

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
https://replay.faforever.com/20377181

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.

Acknowledgements

  • 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

Acknowledgements

  • 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.

I'm sorry if this is out of place here.

@saver Hard to tell from the logs with game crashes as usually the reason for the crash doesn't appear, but there was an error with M28 highlighted by the log that I'll fix for the next version.

v17 changes
These changes were mostly based on replays received, along with some improvements for M2 of the Aeon SC campaign.

20 Changes and bugfixes based on replays, including:

  • Fixed bug that prevented M28 building navy on most maps
  • Expanded TMD to cover from cruisers and missile ships
  • Improved initial build order, particularly for going second air with AiX mods of between 1.1-2
  • Fixed a bug causing M28 to upgrade T1 land factories way too early

8 changes to improve performance on Aeon mission 2

  • Note that M28 won't work properly on this mission as there are some issues with the underlying mission code itself - separate pull requests have been done to resolve these issues, although even if accepted it's unknown how long it would take for the missions on the FAF client to reflect the latest versions of the missions.

Acknowledgements:

  • Fenix Thorn – Replay highlighting M28 failing to go navy on Setons, and another replay highlighting land units trying to engage land scouts when on water
  • Saver – Log highlighting an error where M28 would try and get the zone information of a location outside the map.
  • Radde – Several replays highlighting significant flaws with M28’s early game build orders.

hello, here is a replay 3vs3 without bugs ^^ https://replay.faforever.com/20437080

Hey,
thanks a lot for the mod. Last update with proper navy support/attack is quite fun.

Here's a replay with a bug ; units are stacked in front of M28 base and do not attack until someone goes in range, which kinda "unlock" the units. It is obvisouly related to the map, but maybe the underlying pathfinding or whatever bug could be tracked down.

https://replay.faforever.com/20444561

Thanks again

@v_k said in M28AI Devlog (v17):

units are stacked in front of M28 base and do not attack until someone goes in range, which kinda "unlock" the units. It is obvisouly related to the map, but maybe the underlying pathfinding or whatever bug could be tracked down.

Thanks, I dont think it's a bug - rather M28 didn't think its units would win if it committed them, so it kept them back out of range of the firebase (so working as intended, even if in the specific situation it might have been better to try and launch a last ditch attack).

v18 Summary
c.46 changes containing a mix of campaign support and improvements based on a wide range of replays:

  • Support for Aeon mission 3 (3 changes, mainly relating to some more niche cases on how naval units are used when the enemy navy is dead)
  • Support for Aeon mission 4 (3 changes mostly relating to unit cap issues)
  • Aeon mission 5 - another painful mission to get working (in part due to how long it takes to get to later parts of the mission, making testing a chore):
  • -Special code to (usually) complete the 'build shield' objective
  • -Special code to (usually) complete the 'build SMD' objective
  • -17 changes mostly relating to issues with campaign map where an area is pathable when the full map is revealed, but not pathable at the current stage (i.e. in theory land units can reach the UEF base on the full map. However at the time you ahve the objective they can't, meaning you ahve to build land factories on the UEF side of the map as it's anti-air defence is virtually unbeatable)
  • -T3 Mobile artillery should now try and target enemy buildings in an adjacent plateau (although note on some maps like air wars this leads to the artillery being stuck due to issues with the game engine)
  • 4 Changes re Ice-iX Setons replay (transport issues and fixing a major bug that would cause engineers to stay idle)
  • 5 Changes re Cadmium Green to improve M28's initial build order
  • 2 minor Changes re FenixThorn setons replay
  • 4 changes re Radde 1v1 replay (mostly improving M28's early game decisions on building factories and upgrading factories, including some bugfixes relating to this), and 3 changes re a 2v2 replay (tweaks to its shield defence logic)
  • 2 changes re Saver 3v3 replay and V_k replay (MMLs should be more likely to attack firebases and fixed a bug that messed up how Seraphim T2 destroyers are used)

Acknowledgements

  • Ice-IX – Setons replay highlighting M28 transport difficulties
  • Relent0r – flagging M28’s poor build order/upgrade decision on cadmium green
  • FenixThorn – Setons replay
  • Radde – 1v1 mapgen replay (highlighting various issues causing M28 to go for land factory upgrades with no units) and 2v2
  • Saver – 3v3 mapgen replay
  • V_k replay – which revealed a bug with M28’s use of Seraphim destroyers

v19 summary
35 changes, including support for Aeon M6 and improved special shield defence logic. M28 should now support every FA and SC campaign map (note it's not been tested on custom campaign missions).

  • 10 changes for Aeon M6, including trying to reduce the likelihood T3 arti target units near the control centre (and kill the centre)
  • 20466700 - Improvements to handling of longer range naval units, including reducing the likelihood units think their shots are blocked and move closer to the enemy; Reduced likelihood engineers will be stuck trying to reclaim; Improved engineer expansion speed on maps like setons
  • UEF M2 - Added new firebase logic to (sometimes) defend the station from upcoming Aeon attacks on hard difficulty (previously M28 couldn't complete the map on hard due to this)
  • 20476753 - 13 changes, including shield defence improvements and redundancies including fixing a bug preventing units from completing a part-constructed shield; Ahwassa targeting improvement; Reduced asf/intie suicidal tendancies for units getting near to a base; expanded logic for clearing engineers whose orders are redundant when a building finishes construction
  • 4 other changes - mostly relating to pathing fixes/redundancies (more noticeable on 20km+ sized maps)

Acknowledgements

  • Radde – 6 replays (4 2v2s, 2 5v5s)
  • Ice-IX – M27vsM28 replay

Can you take a look at my game log? The map "Black Sun Battlefront" is causing an issue with M28. The AI just sits there, and the log file shows a null error when it tries to set up the map. game_20501746.log

Other than this the AI is playing great, especially on naval maps.

@bsee Thanks for flagging, will be fixed in the next version (although note the AI will be slow to start given the numbers of shielded hostile civilians by its start position)

Have you had issues with getting TML launch orders to issue correctly? I've attempted to automate them but they go off poorly/hang, was wondering if there was a trick to it given that I've witnessed (your?) AI attempting to snipe me.