AI-Uveso (v112) - AI mod for FAForever

@Matthus

Many many thanks.
I am glad that you and your friends like my mod.

Did you also tested the other AIs that are available for FAF?
We always try to keep our AI mods compatible to each other, so you can also use different AIs together.

@uveso Yes, my friend and I just did a 2 v 2 versus an AIx-Swarm (Eternal) and an AIx-Uveso (Adaptive). Both mods worked perfectly! I got rushed by the Eternal and lost. 10/10

Does AI-Uveso currently work with Total Mayhem and the BlackOps mods? For the last 3-6 months only the Aeon AI plays well. Aeon builds plenty T4 of all types). UEF builds almost no T4 land. Very rarely I'll see them build a single Fatboy. It's definitely not a mass issue. This has been repeated across many games.

@bsee

Thanks for reporting this.
I am not aware of any faction related bugs.

in case you have played online can you provide me a replay ID where this happened ?

https://replay.faforever.com/16710956
Total Mayhem & Blackops enabled. Cybran plays normal. UEF only builds T4 structures. We disabled teleporting, nukes, satellite, and a couple more. I can find more replays if needed.

@bsee

Thaks a lot!

Well yes, the AIs can have wheird behaviors when you disable single units.

On the UEF side unit xeb2402 is always forced to build first. (Experimental Satellite System)
With no Satellite the UEF will not build the fatboy (or other category 3+ experimentals).

Also having the nuclear repulsor shields mod on and blocking the city and metro shield is also not advised.
They have a buildpriority of 12000 and 13000. Most builders have a priority of 1000 or less.
So in case the platoonformer selects a new building it will always select the shiled platoon first, but
can't start build because they are restricted.
The problem is, if the mod finds the village shields then its clear you can build shilds.
Restricting the upgrade will not be recognized by the mod.

@uveso I've played a few more games and the AI definitely plays better with all units enabled. Enabling nukes seems to make them smarter too. We've been able to disable cybran metropolis shields and have Cybran still play well. However, UEF seems to need everything enabled.

Would it be possible for the AI to know if city/metropolis shields are disabled?

Other odd quirks:

  • Cybran drives the experimental artillery into my base.
  • Nuke subs don't launch nukes?
  • AI builds way too many stellarators. This makes their base very explosive.
  • Sometimes UEF builds satellites and never moves them.
  • I've never seen the ai build the experimental nuke. Not sure if this is a uveso-ai problem. Sorian doesn't seem to build it either.

@bsee

thanks for the great feedback!

i try to fix some of the issues with v100

Update 27.Apr.2022(v100)

  • New: ACU will now evade from nuke blast area
  • Fix: nukes fired after 35 minutes, not respecting option for gameender
  • Fix: excluded URL0401 (Exp. Mobile Rapid-Fire Artillery) from mobile platoons
  • Fix: fixed a bug in T4 Artillery platoon that was not building Seraphim T4 Nuke
  • Opt: decrease braveness of ACU in case an experimental or T3 units are detected
  • Opt: decrease braveness of ACU for enemy air units
  • Opt: increase detection range of pointdefenses by 10
  • Opt: increase threatweight for low tech enemy land units
  • Opt: changed targets for land experimentals

We've been playing with that update for a while. The AI is much smarter and harder now. Great update. Thanks! The game has slowed down significantly, but I think that's just the AI building a much larger army.

@bsee

thanks for the feedback!

the new version is already finished and will be released this or next week.
Should be a bit better in performance and has some significant enhancements.

@Uveso
Hello There!
I've been testing other AIs for a while.
M27AI is the most impressive when it comes to eco management and great placement of structures but it lacks naval logic.
There are a few things that you could implement to improve the Uveso AI.

  1. Always placing a t3 shield that covers a t3 arty and a group of t3 engies supporting it.
    It's a great defensive thing that M27AI does and it makes any AI extremely hard to crush in arty wars.
  2. I've noticed that Uveso likes to use gunships while M27AI is more bomber focused.
    Spamming t1 bombers to counter incomming land experimentals would be a great thing.
    Also using t2 and strategic bombers to kill unprotected mexes would make games more challenging.

Since the no rush for game enders option Uveso struggles to pump all of his available eco into units. It's always overflowing alot, not making a good use of mass untill it can start making experimentals, arties and nukes. I would suggest improving its behaviour before the game ender timer, making it swarm players with everything it has (t3 land, air, navy).

I've also noticed a strange behavoiur with walls. It feels like the AI doesn't know how to counter it and gets stuck. The AI is piling lots of units outside of the walls and doesn't attack it or change path to overcome the obstacle. Unfortunately i don't have a specific replay that i can post to show the problem... it's something that I forgot to mention when I gave my feedback the first time. To fix this I would suggest simply making the AI treat walls like a standard enemy with low priority. Simply getting rid of it by attacking may work well.

I also have a suggestion regarding no rush for game ender option.
Could you split the option into 4 categories?
One for land and air experimentals, second specifficaly for nukes and nuke subs, third for t3 static arty and last for the t4 game enders.
It may get rid of the eco problem that i've mentioned before, because if we let the AI to make the land and air experimentals earlier, before other game enders, it would pump mass into them.
It also would make the game more fun for the players if we can decide about the flow of the game. For example if the AI can start making land and air experimentals min 20, we know what to expect and it's possible to get prepared, then the next phase would be nukes by min 25, then static arties after 30 and t4 game enders late in the game 35~40 min.

I'm looking forward for the future improvements! 🙂

Hey radde!

Thanks for the good feedback. Is always a pleasure to read it.

I have alrady an update for the AI since end of may.
Sadly i suffer from long covid since may (need to sleeping all the day)
So all the time I'm awake I spend doing my job

nevertheless i will try to bring the update as soon as possible
(need to write the patchlog and remove some debug lines)

Talking about feedbacks, the shipyards of your AI already are built more spaced between them.

Update 17.Jul.2022(v101)

  • New: pressing [ALT]+[a] (Toggles opponent AI) suspends all AI functions (also sets all units to hold fire).
  • New: AI is now aware of allies capturing friendly structures and will report abuse when this happens
  • New: added function to shorten a path when units are stopped on a path and try to continue the path to the previous destination
  • New: MoveToLocationInclTransport is now using the path from the target function instead of creating its own
  • New: naval units now return to the closest naval base not to the base where they where build
  • New: naval units that have no special target will now attack all units (on water)
  • New: UEF satellite now has its own targeting priorities and attack function.
  • Fix: disabled the function TransferUnfinishedUnitsAfterDeath again. Crashed the game too often.
  • Fix: fixed bug in aibuildstructures.lua with restricted units
  • Fix: unit count buildcondition "NavalBaseWithLeastUnits" no longer takes MAIN base into account
  • Fix: fixed bug in platoon.lua that caused some functions to lose target
  • Fix: ACU sniper platoon now works with gunship, bomber and fighterbomber
  • Fix: Fatboy and other long range experimentals will now fight at their optimal weaponrange
  • Fix: fixed several issues where buildings are build to close to each other
  • Fix: switched some variables inside target function from global to local
  • Fix: added extra T2 Energy builder to prevent energy stall with Black Ops upgradeable hydrocarbon power plants
  • Fix: removed the old BaseTargetManagerThread and replaced it with a new target manager
  • Fix: naval factory builders will now check for at least 20% water on the map
  • Fix: naval factories will now be build with a bit more space between each other
  • Fix: fixed bug in UnitCountBuildConditions.lua that broke the naval unit build
  • Fix: added assister for building UEF satellite structure
  • Fix: base panic builder no longer only spam T1 units
  • Fix: removed unessisary overload with aiBrain table for some forked functions in ExecuteAIPlan
  • Opt: pathing will now get enemy threat from the new heatmap data
  • Opt: engineer will continue to cap mass spots even on energy/mass stall
  • Opt: increased buildrate for T3/T4 artillery and UEF satellite
  • Opt: changed artillery and nuke behavior and target priorities
  • Opt: increased number of nuke/nuke defense ratio from 0.80 to 1.00
  • Opt: added an early air factory and transporter for water maps
  • Opt: changed targets for air experimentals
  • Opt: optimized Base Ranger, moved locals to function start
  • Opt: optimized Eco Manager, moved locals to function start
  • Opt: assister that help building a paragon will now be paused on low energy
  • Opt: expansions are now also building missile defense systems (anti nuke)
  • Opt: AI Rush: increased build priority for T3 engineers
  • Opt: AI Rush: added builder to create more energy structures
  • Opt: AI Rush: now aggressively eco up
  • Opt: AI Rush: will no longer pause factories with unit production due energy/mass stall
  • Opt: target function: added more search range rings, caching already checked targets
  • Opt: target function: increased targeting speed by rearranging search parameters
  • Opt: target function: new system to determine platoon and enemy strength
  • Opt: optimized placing of local variables for performance
  • Opt: removed reclaim cleaner function. (was removing wrecks/reclaim after 15 minutes)
  • Opt: CanPathNavalBaseToNavalTargets is now using CanGraphAreaTo instead of pathing
  • DEV: endless game option does no longer use the splitscreen. It's now zooming out to see the full map
  • DEV: removed function to debug threat inside waypoint markers. AI has now a new threat system.
  • DEV: Log and debug print will now show gametime, Lua file and line number in game.log

Update 21.Jul.2022(v102)

  • Opt: rebuild nuke function to sync targets with artillery and satellite.
  • Opt: added better calculation for nuke missile flight time (lead target)
  • Opt: increased calculation speed for target manager
  • DEV: added function to convert gameTimeSeconds to hour:minute:second (FormatGameTimeSeconds(GTS))
  • DEV: removed hook for BrainConditionsMonitor
  • DEV: temporarily disabled unit uea0203 - UEF T2 Air Gunship. (could cause game freeze)

Update 31.Jul.2022(v103)

  • Fix: unit no longer ignore walls. (they will destroy walls now)
  • Fix: nuke distance to target was calculated by platoon center position, not launcher position.
  • Fix: artillery targets were accidentally sorted by satellite sort function
  • Opt: nuke "Jericho attack" now uses all launchers for an attack (was only 1 launcher per target)
  • DEV: removed platoon function "IsTargetNukeProtected", it's now calculated from the targetmanager.
  • DEV: PLatoonNameDebug does no longer start the LocationRangeManager for other AIs

v104 (01.Aug.2022)

  • Fix: naval expansion builder checks now for map water ration > 20%
  • Fix: unreachable mass spots will now be blacklisted in AIExecuteBuildStructure()
  • Fix: abuse report for reclaiming ally buildings is now restricted to AI-Uveso only.
  • Fix: in some cases waypoints were created when a map has DoNotAllowMarkerGenerator = true
  • Opt: moved AI debug options to the end of the lobby option list
  • Opt: Rush sub AI: decreased mass extractor upgrades by 5%
  • Opt: Rush sub AI: AI will no longer pause factory upgrades on low energy/mass
  • DEV: IsNavalExpansionsAllowed() now checks for water ratio and expansion count
  • DEV: EngineerMoveWithSafePath() now only call for transport if transporter actual exist

Update 06.Sep.2022(v105)

  • Fix: updated AI Fn OnDefeat() to match latest FAF version
  • Opt: decreased energy need for 9 unit SACU teleport platoon from 120000 to 90000
  • DEV: Fn GetDangerZoneRadii() will use ScenarioInfo.size in case playableArea is not present

Update 05.Oct.2022(v107)

  • New: completely new marker generator - every movement layer is now created independently
  • New: added movement layer for hover units (was using amphibious layer before).
  • Del: removed lobby option for AI waypoint genertor. (it's now always on)
  • Fix: fixed a bug that could cause the nuke function to error out after a launcher died
  • Opt: minor improvement in EconomyBuildConditions calculation speed
  • Opt: removes special pathing for engineers (pathing without heuristic search)
  • Opt: check for mass spots are now based on playerarea instead of map size
  • DEV: Fn OnDefeat() now first checks for the existence of a manager before trying to delete it
  • DEV: changed check for defeat to aiBrain.Status ~= "Defeat"
  • DEV: pathing debug will now display expansions first (from game second 5 to 10)

Note:
The new marker generator is ported from the Sanctuary-RTS game i am working on.
With the kind permission and support of Enhearten Media