M28AI Devlog (v220)
-
We were talking about AI in our games last night and something that came up is that none of the AI know how to play PhantomX. Is this something that you think would be possible in the future? I imagine the simple part is teaching an AI that they need to break if they're the Phantom, but more complex is simulating how they would come to decide who the other phantoms are and who are the innocents.
Just a fun thought. Played a few games with M28 though and watching it kite me out is infuriating. Great job. lol
-
@Doompants I can't think of a straightforward way of making it work. I've not played phantom but my understanding is that every player is hostile, but that 1 is the 'phantom' with a bonus to resources, and you win if you kill them;
in which case the more straightforward options for the AI are either it treats everyone as hostile (which is what I'd expect to happen if you can attack other players), or it ignores units that aren't those of the phantom (which would presumbly make it fairly easy to tell who is the phantom, and also lead to it suiciding units into other players). -
v201 Update
9 changes, mostly based on yesterday's rainbow cup games, including:- Improved early T1 bomber so the ACU is less likely to build the air factory ontop of itself, and the bomber is more likely to try killing other engineers even when low health
- If the nearest enemy base is killed but their ACU escapes, M28 should reassess where the nearest enemy base is
- Land experimentals should be more cautious based on the enemy's global air threat, even if it doesnt detect any nearby air threat
- Made the temporary map-wide vision at the start of the game (to tell the AI where civilians are) take place earlier and for less time, so human teammates should no longer get to see if an opponent is going first air.
- MAA should be more likely to take into account enemy tanks that are in an adjacent zone and almost in range of them (so less likely to suicide into them).
Acknowledgements
- Fearghal - Organising and funding the Rainbow Cup Tournament VIII
-
V202 Update
23 changes, including:- 3 more changes from Bosem Valley RC games (including that strikers should be more likely to attack with auroras than to shadow them; tanks should be more likely to attack when the ACU is in combat)
- 8 changes from Adaptive Kusoge RC games (including if the enemy tries hiding their ACU on a transport or in water M28 should, when in a dominant position, try killing them; ACUs with advanced nano should be more aggressive; removed code that would result in a land factory being built if an air factory was currently under construction)
- 7 QUIET specific changes, including fixing some late-game issues with factories getting stuck in a cycle of constant enhancements, and multiple paragons being built in the same arti template area)
- 5 more general changes, including expanding M28's ACU snipe logic so if an ACU is near-death underwater M28 should consider sniping with torp bombers.
Acknowledgements
- Fearghal - Rainbow Cup VIII tournament
- Azraeel - Replay featuring various late-game issues for M28
- TheWatherAI - Replay with pathing related errors (although I was disappointed they then posted a negative review due to incorrectly thinking this was the cause of a crash they suffered)
-
V203 Hotfix
Mini-update to fix a couple of bugs agead of today’s Rainbow Cup:- Fixed a bug from v202 with M28’s ‘attack ACUs hiding in water’ logic
- T2 navy should be got sooner if enemy has t2 navy
- Fixed a bug that could cause frigates to suicide if the enemy had a submarine
- ACUs should try and stay slightly closer to a stealthed ACU they’re attacking
Acknowledgements
- Radde - mapgen replay
-
v204 Update
Small update for a few changes from the Swamp City Redux rainbow cup semi-final game that I had time to put through, with 7 changes, including:- If a teammate's ACU dies in full-share, and later loses their base, M28 should no longer treat that base as a safe location to run to (and so should be less likely to suicide into Wifi and an army of tanks...)
- Various adjustments relating to certain AI personalities, including increased use of PD for turtle AI, and decreased use of factories
- Certain AI personalities should no longer adopt a 'spam T1' approach to the game even if they had a teammate who was adopting such an approach and died
Acknowledgements
- Fearghal - RCVIII tournament
-
v205 Update
Update for the first rainbow cup finals match (amongst others) with 30 changes, including:- Swamp City (RC Semi-final) - 5 changes, incl PD placement adjustment, and logic to drop engineers to capture neutral civilians
- Kolbut (RC Semi-final) - 7 changes, incl improved T1 bombing of engineers where M28 hasn't gone first air (with clumps of engineers prioritised, and use of micro to increase chances of dropping bombs), and delying T2 land for navy personality
- Fortress Ascent II (RC Final) - 12 changes, incl more aggressive GCs when underwater; greater use of PD for turtle AI; more aggressive subs when enemy lacks anti-navy units; and fixing some issues caused by M28 inheriting a far away base (and thinking it can send its air units to that base)
- 2 Radde mpagen replays - 3 changes, incl a bugfix that made ACUs too aggressive when on full health
- 3 other general or mod specific changes (slightly decreased the advantage M28 wants to engage with outranged units, it should build a higher ratio of asfs to gunships when lacking air control, and slightly adjusted its initial build order for QUIET and LAND)
Acknowledgements:
- Radde – Mapgen replay
- Azraeel – Highlighting M28 heavily stalling mass with its QUIET build order
- Fearghal – Rainbow Cup VIII
-
@maudlin27 said in M28AI Devlog (v205):
Kolbut (RC Semi-final) - 7 changes, incl improved T1 bombing of engineers where M28 hasn't gone first air (with clumps of engineers prioritised, and use of micro to increase chances of dropping bombs), and delying T2 land for navy personality
I'd also suggest for it to change engy targets if there are multiple engineers nearby (indicating a base, u wouldnt want it to drop 1 bomb on expanding engineer and then leave). It was super easy to deal with ai first bomber because it only went for 1 engineer and has predictable aim. The power of an early bomber honestly lies in disrupting all engineer orders by forcing dodges more so than killing 2-3
-
@waffelzNoob I'm not clear what you mean/what scenario it was easy to beat - are you saying that expanding engineers should be ignored altogether and the bomber should just try and find clumps of engineers (and if it cant it keeps looking)? Or just that it should prioritise groups of engineers over single engineers? If the latter, then that's what the quoted change aims to achieve (although it does depend on whether the AI has intel of the engineers).
Engineer targets should also get reassessed when the bomber isn't that close, but once it gets to a certain difference it needs to retain its target to avoid the risk it gets stuck in a cycle of switching targets and never actually dropping a bomb. -
v206 Update
7 changes from 1v1 games against M27 on maps where M27 was initially winning, including:- Added logic for tanks to do an all-in push to kill an enemy ACU
- Significant increase in the global MAA M28 should consider building.
- ACU should be a bit more aggressive vs enemy air
- Land units should be more aggressive if they outrange the nearest enemy unit and the enemy doesn’t have longer ranged units close by.
- A second air factory should be built on 10km+ maps even in t1 spam mode.
Acknowledgements
- Relent0r - providing a mapgen and a non-mapgen map where M28 was losing to M27 1v1
-
@maudlin27 Sorry, typed that on my phone so it wasn't super clear. What I mean is that it should not always repeatedly try to bomb the same engineer if that engineer did not die after the first bomb (it dodged).
https://replay.faforever.com/24337913 In this replay the AI first bombs me and gets one kill, then repeatedly tries to bomb the same engineers. There's a few issues with this:
- It's predictable for me what engineer to dodge with
- If the bomber had gone for the other engineers I would've had to dodge them around which cancels their build queue that I'd then have to requeue, very tedious and in my opinion the main reason early bombers are so powerful. In addition to this my other engineers were not 'ready' to dodge, as they're stood still, so higher chance the bomb lands there
- Its perfect aim makes it incredibly easy to dodge because it's so predictable. Maybe give it a 50/50 chance to not drop on the engineer's course but behind it, or directly on top of the engineer?
So if the AI can recognise our spawn point, make it so that it won't try to repeatedly go for the same engineer if near our spawnpoint, but switch it up
-
Makes sense, thanks
-
V207 Update
11 changes, mostly relating to the Skadi RC finals game, including:- More adjustments to t1 bombers to prioritise engineers that haven’t had bombs fired at them
- Fewer land factories should be built by M28 when its base is on an island
- Delayed T3 air if torp bombers are wanted for a nearby enemy naval threat
Acknowledgements
- waffelznoob - notes on M28’s early bomber approach
- Fearghal - RCVIII
-
v208 Update
Added logic for sharing engineers, along with a couple of bugfixes:- M28 should now gift an engineer to teammates who ask for one. To request one, use a marker on the area where you want the engineer and say 'M28 please would you be so kind as to give me one of your Engineers' in the marker (or just say 'Engi pls' or some variation thereof). If M28 has a nearby engineer that doesnt have any high priority tasks he should give it to you.
- Added a bunch of redundancies to try and fix rare error messages that would appear when a unit died in a pond
- Fixed some typos with the naval logic that in some cases would result in M28's naval logic erroring out
Acknowledgements
- Vortex - v207 QUIET setons replay
-
v209 Update
12 changes, mostly relating to improving how M28 plays with certain mods, including:- If a mod adds a unit with really good shielding M28 should build that shielding in preference to T3 shielding (or its special stacked T3 shielding for protecting game-enders), and should be more likely to build game-enders.
- Fixed an issue with a mod that added multiple upgrades to T3 mexes, including an experimental mex, resulting in M28 thinking the experimental mex was a paragon
- Added a redundancy to better support mods that have upgradable PGens
-
v210 Update
13 changes mostly relating to unusual maps and mods:- Various adjustments to fix and then improve how M28 handles maps with no mexes
- Improved speed of getting upgrades if a 'low cost upgrade' mod is enabled (and fixing some bugs that would cause ACUs to get stuck in an upgrade loop)
- Reducing the mass cost limit at which to consider experimental shielding, and adding better support for QUIET/LOUD experimental shielding (in the event they were to be cheap)
Acknowledgements
- Chucups - Highlighting a no mex map where M28 wasn't working
-
v211 Update - Naval experimentals
Various changes relating to using SACUs in ponds to help build naval experimentals - in the case of FAF this should mean M28 starts on a naval experimental a bit sooner if it builds SACUs and is a naval personality (or is on a naval map), while it should be more impactful for LOUD and QUIET which prevent engineers building experimentals.4 other changes relating to fixing some issues with engineer build logic in some niche scenarios (including better support for mods that add units with an unusual size)
-
v212 Update
15 changes, including:- Various fixes and improvements to how M28 plays the enemy AI on Black Day (including no longer having the rally point for air units based on the AI's start position if that location is in range of enemy cruisers), and fixing some errors on campaign maps more generally.
- Fixed a bug with bombers that meant if bombers were getting more kills than losses they'd avoid enemy units with ground based anti-air.
- ASFs should no try and protect strategic bombers as a priority target
- Fixed some issues that could cause short ranged units to suicide into longer ranged ones on land.
Acknowledgements
- Vortex - QUIET replay
- Samofflive – Replay and highlighting a bug with M28’s SACUs in campaign
-
v213 Update
11 changes, including:- Support for M28 personalities in campaign - to apply M28 personalities to the allied or hostile campaign AI, you can specify in game options (in place of the previous option for applying M28Easy, you now have a selection of the different M28AI personalities). Note that this is likely to be less impactful than in a normal game, since a significant part of the effect of the personalities is how many and what type of factories to build, whereas in campaign missions the AI often has the factories pre-built for it.
- Support for experimental PD and AA buildings, including where they need building by SACUs (QUIET+LOUD)
- Added in tracking for AirAA kills and deaths to make M28 more cautious if it has taken bad air fights, along with fixing some bugs with tracking gunship and bomber kills and losses
Acknowledgements
- c04spoon replay against v211 M28AI (where it failed to beat restorers with its air force)
-
v214 Update
14 changes, mostly relating to extra voice taunts:- Campaign AI should ignore its assigned start position and record a different one if the mission's start point for it has no factories or ACU
- 9 voice taunt additions for various niche scenarios
- 3 QUIET specific adjustments, including having Czar use manual attack orders instead of attack-move orders
Acknowledgements
- c04spoon replay where Czar failed to use its main weapon