AI Development Guide and M27AI v66 Devlog

3

Latest changes (v63 summary)
Various changes based on replays received, including:

  • Less likely to overflow mass at T3 stage, with a significantly faster scaling up of build power (6 changes)
  • T3 fixed arti prioritisation coupled with target variation (to avoid firing at the same heavily shielded position forever) (9 changes)
  • Air less suicidal and also better at defending high value friendly air units (18 changes)
  • Chokepoint maps - M27 will now abandon a chokepoint and revert to default logic rather than staying in turtling mode if it's chokepoint is overrun and it somehow survives, along with several other small adjustments (3 changes)
  • SAM creep logic - Basic code to have M27 try and protect mexes with SAMs if it's behind on air
  • 14 bugfixes and 19 misc changes

Acknowledgements

  • Radde - various replays, highlighting M27’s poor ability to cope with lots of mass, flaws with the turtle logic, and tendencies to suicide its air (including air experimentals).
  • Azraeelian Angel – Loads of team game replays (so many I had to defer analysing some of them for the next release!), highlighting amongst other issues the need for better T3 arti building logic
  • Spikey Noob – A number of 1v1s at increasing difficulties on badlands highlighting the ease with which M27's ACU can be killed with T1 land
  • Jip – 2v2 replay against M27
  • Relent0r – Flagging a bug in M27 that causes it to break default AI from building on mexes that are covered by reclaim.

M27AI developer; Devlog and more general AI development guide:
https://forum.faforever.com/topic/2373/ai-development-guide-and-m27ai-v66-devlog

5

Smaller update fixing a few bugs and adding in mass fabs:

  • Unlocked ability to build T2 mass fabs (I've not checked how it handles reaching the unit cap though, here's hoping it doesn't ctrl-K them!)

6 bugfixes, including

  • Bug resulting from the latest FAF patch that caused the Ythotha death ball/energy signature to be controlled by the AI (at the same time I've improved M27's response speed to the death ball from before)
  • Shield boats should no longer remain at the naval factory if they had lost shield at any point in the past
  • The Bjarg map should now be playable by M27 in the bottom-right start position (previously it would break)
    14 Misc changes, including:
  • MML should be far less likely to walk into range of T2 PD
  • Added new 'experimental prioritisation' builder logic for late-game (where land factories are less likely to build units to conserve mass for experimentals)
  • Slight improvements to M27's response when an enemy tries to get a firebase near M27's base
  • Slight reduction in the bomber defence range to make them less likely to suicide into enemy air

Note that updates may be smaller and/or less frequent for a bit as I mull over creating an entirely new AI, and/or testing out changes in a basic alternative AI that might then be incorporated into M27 at some future point.

Acknowledgements

  • Jip – Highlighting error on the Bjarg map where if M27 started in the bottom right position it wouldn’t work
  • Azraeelian Angel - A number of team game replays
  • Radde - Several teamgame replays

M27AI developer; Devlog and more general AI development guide:
https://forum.faforever.com/topic/2373/ai-development-guide-and-m27ai-v66-devlog

3

Latest changes (v65 summary)
Smaller update - I'm experimenting with smaller ad hoc updates with reduced testing for fixing issues highlighted in replays (since I'm not planning any big future changes to M27 for the time being as I'm experimenting with a separate AI to try out alternative land based logic)

11 bugfixes, including:

  • Incorrectly calculating Seraphim SACU range as their TML range (leading to strange actions from land units)
  • Skirmisher platoons (e.g. sniperbots) should be less likely to suicide (by being more likely to attack move and less likely to try and move close to a target)
  • Experimental shots such as ythotha shots will now be considered for dodging

10 Misc changes, including:

  • Adjustments to skirmisher logic, including making them run further from T2 arti, and splitting up skirmishers that are far apart into separate platoons
  • Increased the value of SMD and Nukes as targets
  • Made larger units more likely to try and dodge shots (e.g. summits should try and dodge Aeon battleships, Galactic (colossii?) should try and dodge Ythothas)

Acknowledgements

  • Radde for providing an entertaining team game replay against M27 (that also highlighted some of the bugs fixed in this release).

M27AI developer; Devlog and more general AI development guide:
https://forum.faforever.com/topic/2373/ai-development-guide-and-m27ai-v66-devlog

6

Latest changes (v66 summary)

  • Refinements to the logic for experimentals to dodge shots (and more generally) so they're hopefully less likely to turn around in a full circle doing no damage while being attacked
  • 7 tweaks to T3 arti targeting logic, none of which are major but which for example now assign a value to heavily shielded units (previously none was given), firing infront of mobile units, reducing the value of targets that we have fired a huge number of shots at without killing, and factoring in how long it will take for the T3 arti to turn towards the target
  • 15 other misc changes or bugfixes, a number of which relate to decisions on when units should retreat (e.g. MML running from ravagers, skirmishers running from PD, GC/Monkey/Ythotha being more likely to run from a fatboy based on how close it is)

Acknowledgements:

  • Radde - several teamgame replays on both land and naval maps
  • Jip and Magge for highlighting a missing units error message that appeared a lot, and also Jip for helping me figure out how to determine which direction a T3 artillery is aiming at.

M27AI developer; Devlog and more general AI development guide:
https://forum.faforever.com/topic/2373/ai-development-guide-and-m27ai-v66-devlog

2

Stop making it better. It's getting too hard to beat. 🙂 I'm kidding. Your work is appreciated.

1

@stlng At some point! Each update lately I think just after uploading 'right, now I can take a break and focus on writing a new approach to handling land units', then I see a replay where M27 does some stupid or incorrect things and figure I'll just put through one more update to fix it!

M27AI developer; Devlog and more general AI development guide:
https://forum.faforever.com/topic/2373/ai-development-guide-and-m27ai-v66-devlog

0

Anyone else having trouble opening the devlog google doc? The first page loads a preview but nothing else appears. Says "couldn't preview file - there was a problem loading more pages."

0

Same issue - @maudlin27 maybe the file is too big? 🙂

A work of art is never finished, merely abandoned

0

@sioloc I've split it out into several documents to reduce the size slightly, let me know if you still have issues accessing.

M27AI developer; Devlog and more general AI development guide:
https://forum.faforever.com/topic/2373/ai-development-guide-and-m27ai-v66-devlog

5

Thank you so much for your work. I'm one of those players who really loves playing against AIs, but I hate AI that is too easy or cheats. It seems to me like you've made the best vanilla (well, vanilla-ish since it's on FaF) AI. It's currently kicking my ass. I'd really love it if you would continue working on it to make it even tougher, and also resistant to all sorts of cheesy tactics used by humans to beat it quickly. I also really like how it's not specialized for a single type of terrain and it can play navy as well. Anyway, just wanted to voice my appreciation.

1

Just came here to say thanks @maudlin27, this is really appreciated. Uveso was kinda challenging when using x1.5 multipliers, M27 is even better without even any multiplier. Can't wait for M28.