M28AI Devlog (v90)

v67 Update
Another small hotfix update, involving 10 fixes/other changes, including:

  • Fixed an issue with the Holy Raid custom campaign mission where an M28 teammate would reclaim the Cybran labs you were meant to protect (causing the mission to fail)
  • Fixed a bug with M28's decision on what experimental to build (introduced in v66) that could cause its logic to fail in some cases
  • Added a further workaround for nuke launchers to try and reduce cases where a yolona oss ends up idling forever
  • Slight increase in start and end of game messages

Acknowledgements

  • QAI3000 – Replay highlighting bug with M28 reclaiming objectives on the Holy Raid campaign mission.

M28AI commy did not build ... just stood there. UEF and Aeon tested and failed.
Was working fine before latest update.

@aware Do you have a replay ID?

@aware Strange. I just ran the test and there was no problem. Maybe you should update your game gamedata?

We gave up on M28AI last night as it failed to do anything after two attempts .... We were doing 4 humans vs 4M28AI on a custom 80 x 15 map that is not in vault.
We loaded four M27AI and it ran fine with good speed. AI built lots of torpedo bombers, battleships and criusers.
We wanted to play against M28AI because it builds a more diverse navy with multiple shipyards and a wider range of ships including Experimental ships.
Mods:
Total Mayhem
All Faction Quatem Gate
M28AI mod

Settings
1250 units
Restrictions .... T1 Air, T3 Air, T4 Air, Paragon, Sat, T3&T4 Long Range Canons, Nukes, T1 Hydrocarbon Perimeter Monitor.

One of our team said he was getting an error saying that M27AI was active and could not be found while I had M28AI only loaded and all four AI were doing nothing. I think that was caused because I had M27AI mod selected in the client with only M28AI in the game.

The boys want to play M28 tonight so I am gonna sort it today.

Tried game with No restrictions and M28AI started to build. I think T1 Air restriction might be the cause. It can still build T1 Air plant with the restrictions i had set. Can only build engineers and spy planes.
Doing more testing now.

@aware What would help would be a replay ID number of the game where it didn't do anything, as without it's unlikely I'll be able to fix it

Its not the T1 Air restriction.

#21677818

@aware Thanks, sorry missed the part about the map not being in the vault, are you able to send me the map (e.g. via discord), and/or do you get the same issue on a map that is in the vault (in which case could you send the replay ID of a game on a vault map)?

#21683677 vault map

M28AI is working with a new and different set of restriction. At this stage i am not sure what restriction I had in place that caused the AI to not build. Running a test now on the custom 80 x 15 map to see what units are now available that were restricted before. This will take some time.

M28AI run ok on the big map ... I should be able to compare the list of restrictions in the logs.

The only unit restriction that I'd have expected might cause an issue from the list you gave (as I'm not sure if I've specifically tested it) is restricting use of hydrocarbons, but I wouldn't expect that to stop M28 from building anything (but rather it might get stuck with just 1 factory and not much else depending on if I'd implemented a backup for such a scenario to make it build t1 pgens).

@aware How did you create the game? E.g. was it a brand new lobby, with no clicking on the load presets button?

Reason for asking is that although 21683677 appears to show M28AI for 4 of the players, none of the logs for loading the M28AI mod are present (an issue I've seen happen previously when a 'rehost game' button was used, and/or a 'load presets' button).

@maudlin27 a slightly separate data point, I've had no issues with the AI working in any games so far.

I did want to note that when we were having the shield logic issue, @bsee and I went back to v56 (the newest without shield issues) and found it more aggressive and built dramatically more experimentals, specifically land experimentals. This made for a much more difficult and dynamic game particularly with Total Mayhem. Same 1.3x cheat and build multiplier. Not sure what the difference is in your build logic since then, but wanted to call it out if you're able to take a look.

Thanks!

@ender06 Thanks, I'll keep it in mind when considering reviews, but it will depend on the map and game state. If it's a land based map and M28 is only getting a couple of land experimentals before switching to T3 arti or game-enders (and the opposing team hasn't started their own t3 arti/game-enders) then let me know the replay as it might need tweaking.

v68 Update
Adds personalities, ratings, and some co-op fixes

  • M28 should in most cases have their own (taunt) personalities, based on campaign characters - in practice, this means that they should be more likely to make use of voice taunts, with those taunts aligning to their particular character
  • Added rating details (making use of the latest FAF update which supports AI having their own rating)
  • Fixed a couple of bugs with the co-op missions Fort Clarke Assault (M28 wouldn't build its initial factory) and Prothyon-16 (M28 would start in the water instead of getting dropped via transport)
  • 9 other tweaks and fixes

Acknowledgements

  • Marlo – comments on getting in-game audio to play
  • Chucups – noting M28 started in the water on prothyon-16
  • QAI3000 – Noting M28 wouldn't build a Campaign issue with fort Clarke assault
  • AwarE – Replay where M28 failed to do anything/didn’t load
  • Jip – How to get a voice message to only play for allies; Reworking and improving a pull request I'd drafted to allow AI to have their own rating, so that the details could be modified by AI mods (rather than needing to be coded into the FAF lobby logic), meaning M28 now gets to have a rating that is more reflective of it's difficulty

v69 Update
Mini update, with 9 fixes and tweaks, including:

  • Fixed a bug where MAA could be overbuilt (due to M28 incorrectly thinking it was under air attack)
  • Reduced the amount of experimental shields to be built (if a mod features them)
  • 2 adjustments to late-game shielding
  • Novax targeting should factor in if the target is under construction (so no longer prioritise a 5% complete GC over say an energy storage)

Acknowledgements

  • Relent0r - Replay with desync issue (which unfortunately I was unable to resolve)
  • Zhanghm – reminding me of an improvement with M28 using experimental shields that I forgot to look into

Trophies
No change from v59: Radde (Sladow trophy); and Radde, Mhad and GhillieWolf (Radde trophy).

v70 Update
12 fixes and tweaks, including:

  • Fixed a rare bug that meant on certain maps M28 wouldn't work
  • Various adjustments to land combat logic to try and make it more likely shorter ranged units (such as land experimentals) will attack the enemy, including fixing a bug where they would want to attack but not receive the order to attack
  • Decreased the threat that indirect fire units provide to make it more likely M28 attacks an enemy with a high indirect fire threat but weak direct fire threat.
  • Increased the search range of parts of the Novax targeting logic to work better on large maps.

Acknowledgements

  • Fearghal - Noting a bug with M28 not working on one map; replay which highlighted flaws with M28's novax targeting on large maps

Trophies
No change from v59: Radde (Sladow trophy); and Radde, Mhad and GhillieWolf (Radde trophy).

v71 Update

Small optimisation update which rewrites M28's approach for managing certain tables of units (where the unit dies) which can result in a significant improvement in late-game scenarios. Also made sure that M28 logic doesn't run if there are no M28AI in the game (so it can be more accurately used for profiling other mods).

Acknowledgements

  • zhanghm18 - Replay where M28 would slowdown significantly/stop for a second in a late game type scenario, which made me realise tables weren't getting 'compacted' after having entries removed (something that has presumably been present since v1 of M28)
  • Hdt80bro - Noting table.setn as an alternative to removing entries from tables (in the end I didn't go with this as it appeared to take slightly longer than the approach I used when testing, but is still useful to know)