• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Login
FAForever Forums
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Login

AI-Uveso (v116) - AI mod for FAForever

Scheduled Pinned Locked Moved AI development
162 Posts 41 Posters 52.0k Views 4 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    maudlin27
    last edited by 5 Jun 2021, 19:39

    Interesting, thanks for the info and link

    With the massive caveat that I've never coded AI before, I thought I'd set out some thoughts on possible approaches to having the AI avoid some of the more detrimental issues regarding performance that I'd hope wouldn't be too resource intensive, in case my ramblings are of any use (although I expect better solutions to the below have probably already been worked through!)

    • Have a choice of several (pre-planned) initial build orders which is decided when the map loads (e.g. based on no. of mexes, proximity of those mexes, and the distance of the nearest hydrocarbon, a preset build order is settled on, which would be setup for the preferred AI strategy - in this case an AI turtle), the idea being to get to a certain initial goal assuming minimal attacks from the enemy (e.g. for a turtle it might be getting t2 defences up). At its simplest level this could just be a build order for if there's a hydrocarbon in the main base area, a build order for if there's a hydrocarbon relatively near the initial base, and a build order for if there's no near hydrocarbon, with further subsequent adjustments re the no. of T1 power to be built and when to upgrade the first T2 mex based on how many nearby extractors and reclaim there is. This would only need calling once which may allow CPU overload issues to be avoided.

    • Assuming it's possible to have some sort of event occur when an engineer is either idle or has finished construction (?), then before an engineer starts a new construction it considers the current resource expectations based on what's being built, and then decides if it should proceed or wait. If it was possible, then the accuracy of this approach would be improved if this check took place just before an engineer started building (i.e. when it's within range), to avoid the risk of say 10 engineers queuing up production that they have to move to, and all 10 thinking there's enough resources to start construction. If its not too resource intensive it could also check if the same building is already being built nearby, and assist that instead, with a few exceptions (e.g. t1 mex are so cheap that it's usually better to send engineers to multiple extractors at once instead of having them assist 1 at a time). If such a check would be too tough, could a variant be to store a temporary variable/array recording details of buildings that start being constructed, allowing a cycling through such variables once there're sufficient resources to resume construction

    • If the engi chooses to wait, then either via a delayed command or a new construction event that causes idle engineers to be cycled through the engineer would then commence construction (once sufficient resources will be available)
      The delay command wouldn't apply where the unit/building to be built will help with the resource shortage (e.g. you don't stop a T1 engineer building a t1 mass extractor if there won't be enough mass, or stop them building a power generator if there won't be enough power)

    • Certain 'critical' events cause a reprioritisation of existing engineers, with two of these critical events being power stall and mass overflow (or ideally the point at which such an event in the near future looks likely rather than waiting for it to actually occur). Assuming there's no way to create an event based off this, code relating to such a reprioritisation could be checked for at the point at which an engineer decides what to build (i.e. just before construction/when construction is completed), assuming there's some sort of event linked to this. Where such an event occurs then all engineers near the base get re-assigned (with any part-completed buildings recorded in an array to be referred to/resumed later). In the case of a power stall, the solution would be building more power (requiring an assessment of whether it's better to get t1, T2 or T3 where there's access to more than 1 tech level). In the case of mass overflow it'd be a bit harder to code a fix -if not at the experimental stage then a temporary fix is to upgrade mexes assuming enough power, while also getting more build power and if necessary energy as a priority so that the mass can be used.

    More generally though, if the aim is to get the AI to improve it's 1v1 performance, it may be worth considering whether to always go for an 'eco/turtle' initial approach. That is, if I was to try and turtle/eco, on the majority of ladder 1v1 maps I reckon I'd get crushed by a rank 700+ player, since the preferred strategy seems to be mass t1 land spam coupled with a map that has loads of extractors and reclaim. If I dont do t1 land spam and instead try to e.g. upgrade my mexes to t2 early on with the mass that woudl've been spent on units I find I'll lose almost all the map control, and since t1 mexes are vastly more efficient than T2 mexes my opponent will be able to out-eco me, while also applying lots of pressure with their land spam (since unless the map is huge, they'll probably be able to have t1 arti attacking my core base before I can get t2 pd up).

    I figured I'd have a go on a slightly more conventional 1v1 map for a comparison, and go with a more conventional mix of T1 spam units (although this is less t1 spam than I normally face as I need to work on my initial build order for 1v1 maps so I ended up upgrading my T2 mexes quite early instead) - see replay ID #14660835:

    • As expected the AI still has similar issues with the initial build order (although my build order also wasn't great on this map!) and is slow to expand - due to this, about 4m in I've got about twice the mass income with a similar build power (and sufficient energy for my needs)
    • I was pleased to see the AI reclaiming the nearby mass deposits
    • My attack was slower this time, and the AI ACU did a much better job of defending, both dealing with an initial push by a handful of land units, and then having energy storage which it used effectively with overcharge to kill clumped up t1 land units, so I expect the previous map was just that I was a bit too fast with my rush.
    • However, most of the ACU's shots were missing units (I purposively wasn't microing my units - just sent an attack command for all land units to attack the ACU) - if you check 7m30s in, almost all the shots miss. Not sure if this is due to the microing of the com again?
    • It also failed to get any defence against me (bar a couple of land units) so my com could stroll in with no upgrades and do lots of damage (as the AI sent their com to hold off my land attack)

    M27AI and M28AI developer; Devlogs and more general AI development guide:
    https://forum.faforever.com/topic/2373/ai-development-guide-and-m27ai-v71-devlog
    https://forum.faforever.com/topic/5331/m28ai-devlog-v150

    1 Reply Last reply Reply Quote 0
    • U Offline
      Uveso
      last edited by 6 Jun 2021, 21:44

      Update 06.Jun.2021(v94)

      • Fix: ACU was waiting for 5000 energy not 500 to issue an enhancement.
      • Fix: Sub AI Rush was not building Hydrocarbons
      • Fix: LocationRangeManager can now create new locations everywhere. (no location marker needed)
      • Fix: ACU was not building if the buildarea was between 12 and 13 map units away.
      • Opt: Nomads ACU is now first enhancing with GunUpgrade, not Capacitor.
      • For AI devs: New function CanGraphAreaTo(). Check if two points are on the same land/sea area
      1 Reply Last reply Reply Quote 0
      • U Offline
        Uveso
        last edited by 20 Jun 2021, 23:56

        Update 21.Jun.2021(v95)

        • Opt: ACU-AI point defenses are detecting as threat now.
        • Opt: ACU-AI increased threat for mobile enemy units.
        • Opt: Eco management optimized for first buildorders.
        • Opt: ACU can now walk closer to the map border while evading from the enemy
        • Opt: Added assist platoon for energy build and mass upgrade
        • Opt: Increased the speed of the AI markergenerator by 15%
        • Fix: fixed an issue with adding the first locationamanger on water.
        • Fix: CanGraphAreaTo() no longer needs a unit, only position and layer
        • Fix: SACU teleport function had an error while checking for SACU health.(thanks to Wingflier)

        @maudlin27
        I am still reading your feedback while testing buildorders. Great stuff! 😄

        1 Reply Last reply Reply Quote 0
        • I Offline
          Izzban
          last edited by 22 Jun 2021, 02:04

          Grabbed it from the "vault" (not sure why it's called that since there is nowhere I have seen that actually calls it the vault except the forums) Tradition runs deep, young padawan?

          Anyway, I tried to DL from your link, it might be broken or not updated yet? I am also generally known to be an idiot so just ignore me if your link is fine and I am too dense to figure out how to DL it.

          1 Reply Last reply Reply Quote 0
          • U Offline
            Uveso
            last edited by Uveso 22 Jun 2021, 06:44

            I checked the link and its working.

            Here is the full download link for copy & paste:

            http://faforever.uveso.de/AI-Uveso-Mod-v95.zip
            
            1 Reply Last reply Reply Quote 0
            • I Offline
              Izzban
              last edited by 22 Jun 2021, 19:43

              That link worked, thank you. I don't know why the AI-Uveso-Mod-v95.zip link in the first post sends me to an untitled and about:blank page. Still doing it, but I'm sure it's something on my end.

              Thanks for the help and I'm looking forward to your AI. 🙂

              1 Reply Last reply Reply Quote 0
              • U Offline
                Uveso
                last edited by 23 Jun 2021, 13:12

                @Izzban

                yes the link from the first post will open a new blank window and also should show you the download window.

                Maybe you browser is downloading without your need to accept the downlod ?
                Then you maybe have downloded the mod several times ?
                (look at your download history).

                I hope you enjoy the new AI.
                If so, we have several more AIs in development, you should try them all 😄
                (join us on Discord if you like)

                1 Reply Last reply Reply Quote 0
                • B Offline
                  bude132
                  last edited by bude132 23 Jun 2021, 17:15

                  @Uveso
                  Is there a way to disable the suicide functions?
                  I rather have an all out war with the AI and defend myself from an onslaught of nukes, units and shells, than to have a t4 bomber hug my acu and commit seppuku.

                  G 1 Reply Last reply 3 Jul 2021, 03:49 Reply Quote 0
                  • S Offline
                    Sprouto
                    last edited by 23 Jun 2021, 20:19

                    How did the T4 bomber reach your ACU ? If the AI could reach your ACU with a T4 bomber then the problem is not the AI's.

                    B 1 Reply Last reply 24 Jun 2021, 23:10 Reply Quote 1
                    • U Offline
                      Uveso
                      last edited by Uveso 24 Jun 2021, 01:15

                      @bude132

                      well, there is no option to disable the suicide function.

                      Only in case you are playing alone and not online, then there is a way to disable it.

                      The two platoonformers for the suicide platoons are located in
                      AI-Uveso/lua/AI/AIBuilders/Mobile Experimental-Air.lua
                      Your mod directory should be:
                      C:\Users\YOURNAME\Documents\My Games\Gas Powered Games\Supreme Commander Forged Alliance\Mods

                      To disable them you only need to set the priority of the platoons to "0"
                      You can find the two priority settings line in 436 and line 473:

                      Here are links to Git Hub to show you the exact lines:
                      https://github.com/Uveso/AI-Uveso/blob/master/lua/AI/AIBuilders/Mobile Experimental-Air.lua#L436
                      https://github.com/Uveso/AI-Uveso/blob/master/lua/AI/AIBuilders/Mobile Experimental-Air.lua#L473

                      To set the priority to 0 you only need to change the lines to:
                      Priority = 0,

                      If you do so have in mind the mod will instantly desync when played in multiplayer.

                      1 Reply Last reply Reply Quote 1
                      • B Offline
                        bude132 @Sprouto
                        last edited by bude132 24 Jun 2021, 23:10

                        @Sprouto

                        Ah yes, the problem lies with me, I see.
                        Seriously... Why do you even comment.

                        The AI ganked me with two T4 Seraphim bombers from a non frontline position.
                        Before I noticed what was happening, it was to late and it instantly ended the match, because my whole shield installation was useless.
                        At the end I wasn't thinking "huh, I fucked up but died a glorious death." I was thinking "welp, that's fucking lame."

                        Just because I don't like a mechanic , doesn't mean there's an issue with me.
                        You should stop being an ass.

                        @Uveso
                        Thanks for the detailed answer.
                        In the meantime we've created a mod that disables the impact damage since we didn't want to break the AI.
                        We'll give it a go with the changes you suggested.

                        By the way, kudos for the AI.
                        When it doesn't yeet itself into your bases and suicides, it's a very enjoyable opponent and is way more challenging than the default ones.

                        FemtoZettaF 1 Reply Last reply 25 Jun 2021, 01:05 Reply Quote 0
                        • FemtoZettaF Offline
                          FemtoZetta @bude132
                          last edited by 25 Jun 2021, 01:05

                          @bude132 said in AI-Uveso (v95) - AI mod for FAForever:

                          Before I noticed what was happening, it was to late and it instantly ended the match, because my whole shield installation was useless.
                          At the end I wasn't thinking "huh, I fucked up but died a glorious death." I was thinking "welp, that's fucking lame."
                          Just because I don't like a mechanic , doesn't mean there's an issue with me.
                          You should stop being an ass.

                          Oversensitive much?
                          You didn't scout and the AI surprised you with bombers, it's a pretty normal way to die against players too. You disliking the mechanic does mean the issue lies with you, because it's just part of the game. It's not the AI's fault for being good enough to make use of it. Telling you that fact doesn't make him an ass.

                          1 Reply Last reply Reply Quote 3
                          • U Offline
                            Uveso
                            last edited by 26 Jun 2021, 03:33

                            Back to topic please, the question was:

                            Is there a way to disable the (AI) suicide functions?

                            So any answer that leads to disable the Suicide function is welcome.

                            1 Reply Last reply Reply Quote 0
                            • UvesoU Offline
                              Uveso
                              last edited by 28 Jun 2021, 22:12

                              Update 28.Jun.2021(v96)

                              • Opt: ACU-AI was evading from non combat units like massextractors.
                              • For AI devs: removed marker pruning from function CleanMarkersInMASTERCHAIN for all layers.
                              1 Reply Last reply Reply Quote 0
                              • S Offline
                                Stin
                                last edited by Stin 29 Jun 2021, 08:08

                                Hello,
                                First of all, thank you for this brilliant AI mod.
                                It has breathed new life into the game for us.

                                Has the recent FAF patch impacted this AI much?
                                E.g, the Aeon seem to build A LOT of shield disruptors. Attacking forces can seem composed almost entirely of them.

                                1 Reply Last reply Reply Quote 0
                                • UvesoU Offline
                                  Uveso
                                  last edited by Uveso 29 Jun 2021, 17:10

                                  Hello @Stin,

                                  Thank you for your kind words.

                                  The FAF patch has normally no impact to my AI.
                                  I develop my AI on the deploy/FAFdevelop branch of the game, and test
                                  gamepatches with my AI before they are released.

                                  The Aeon shield disruptor is a special unit and has maybe some wrong bluprint entries.
                                  I guess the AI gives a buildorder for shield or cloak units and gets a shield disruptor if it has the Aeon faction.

                                  I will check that, thanks for reporting !

                                  1 Reply Last reply Reply Quote 0
                                  • DeribusD Offline
                                    Deribus Global Moderator
                                    last edited by 30 Jun 2021, 02:37

                                    Any self-awareness features planned to celebrate the upcoming v100?

                                    1 Reply Last reply Reply Quote 1
                                    • UvesoU Offline
                                      Uveso
                                      last edited by 30 Jun 2021, 02:43

                                      Oh, i never thought about the v100

                                      Maybe its time for an easter egg 🙂

                                      1 Reply Last reply Reply Quote 1
                                      • G Offline
                                        Gladry @bude132
                                        last edited by 3 Jul 2021, 03:49

                                        @bude132 said in AI-Uveso (v96) - AI mod for FAForever:

                                        suicide

                                        Depending on whether you can generate enough energy and mass (eg: multiple paragons or the like) you can add and build the mod "Experimental SquareSheilds".

                                        Square edged LARGE shield, lots of damage absorption, and no impact damage to any shielded unit/structure.

                                        1 Reply Last reply Reply Quote 0
                                        • FearghalF Online
                                          Fearghal
                                          last edited by 29 Jul 2021, 00:14

                                          Just catching up on release notes.
                                          Love update version 93, Especially this change:
                                          New: AI is now able to use gifted factories also after full share or player disconnect.
                                          This is great for Full Share AI / Human games
                                          where the AI will Now control the gifted bases the same as the Human players.
                                          Gotta close that gap 😉

                                          1 Reply Last reply Reply Quote 1
                                          • First post
                                            Last post