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 51.9k Views
    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.
    • G
      Gladry @Uveso
      last edited by Gladry

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

      @Gladry
      Do you mean the no rush option ?
      My AI has special builders for the no Rush Option, maybe i missconfigured the AA builders.
      I will check this.

      Question #1: T1 AA mobile units

      • In this game no-rush was not turned on - I assume the answer is about this, in any case no-rush was not on for either question.
      • T1 AA mobile were still being built at 18 minutes in, I know as I allied with an Ai-Uveso player and reclaimed (killed) 20+ T1 AAs to remove them - more were built

      Question #2: Base planning

      • If a ground turret costs as much to build as 4 T1 tanks, and 4 tanks combined do 10% more damage build faster in 80% of the time - it makes sense to build the tanks instead.
      • However if someone added a mod which changed the range or DPS, build time, or build cost of the fixed turret, turret would probably be better - especially if range is significantly farther.
      • Code might check for this. AI designer might presume tanks or mobile light artillery are go-to solutions, or make comparison code

      Question #3: DPS calculation

      • In your function CalculatedDPS(weapon)
      • your comment states "--Game logic rounds the timings to the nearest tick -- math.max(0.1, 1 / (weapon.RateOfFire or 1)) for unrounded values"
      • You use the calculation of actual rate of fire which I have seen mentioned elsewhere, but in no cases have I seen, when mentioned, round up or round down. I don't know for certain (you probably do) if it rounds up or rounds down.
      • Will effective rate of 1/rate = 1.66666 end up being 1.7 or 1.6. Rounding up by 0.5, as your code does, will make it 1.7 which of course is slower . 17 game ticks being more than 16 ticks.
      • Do you or others know where the FAF lua code that actually decides? I can see if the game code puts the 1/rate value into a variable, and every tick subtracts 0.10 from the value until it is <= 0, that would effectively be rounding up.
      1 Reply Last reply Reply Quote 0
      • UvesoU
        Uveso
        last edited by

        @ctrlaltdelete
        please update Nomads, a patch for the error was already released in Nomads 6 days ago:
        https://github.com/FAForever/nomads/pull/626

        @Gladry
        T1 AA mobile units:
        I will reduce the amount of mobile AA in the next update.

        Base planning:
        My AI is meant to be played with unit mods like Total Mayhem. Thats why i have builder for pointdefenses.
        Sadly you can't determine the cost of a unit before you build it.
        The AI will assign a buildtask to an engineer and only the engineer will know how much the unit costs.

        DPS calculation:
        The game does not have any DPS calculation in LUA, it's all calculated hidden inside the c-engine.
        we only try to mimic the c-eninge with LUA functions. (it is not always accurate)

        G 1 Reply Last reply Reply Quote 0
        • G
          Gladry @Uveso
          last edited by

          @Uveso

          if bp.Economy then
                if bp.Economy.BuildCostEnergy and bp.Economy.BuildCostMass 
          ...
          end
          
          if bp.Economy.BuildTime then
                 bp.Economy.BuildTime = 
          end
          
          1 Reply Last reply Reply Quote 0
          • UvesoU
            Uveso
            last edited by

            @Gladry

            I am sorry i don't know what you want to tell me with this code snippet

            Its not a part of the code we talked about, enhancements don't have a Economy sub table.

            Also you don't need to ask for if bp.Economy then when you need to know if bp.Economy.BuildCostEnergy exists.
            Just call directly if bp.Economy.BuildCostEnergy. it will return false if bp.Economy is missing.

            1 Reply Last reply Reply Quote 1
            • A
              Accipian
              last edited by

              @Uveso
              I appreciate the response. I thought Nomads was always up to date through the patching mechanism? I am running the most recent version of FAF and it still produces the same result. Is there a way to check to make sure I am running the most recent version of nomads?

              Thanks!

              1 Reply Last reply Reply Quote 0
              • UvesoU
                Uveso
                last edited by

                @ctrlaltdelete :

                Good question; i always use the develop version of nomads downloaded from Git-Hub:
                https://github.com/FAForever/nomads

                I thought it is the same version that you can play through the FAF client.
                Its both printing version 98 to the log, but the client version has still this error.

                1 Reply Last reply Reply Quote 0
                • I
                  Idalgos
                  last edited by

                  @Uveso
                  Hi! Encountered the same problem as ctrlaltdelete, and as I am not that techsavy, wanted to ask how should I update nomads to fix this problem?
                  P.S. Really like your AI, it wrecked me and my friends good, was fun expirience! Thank you for providing that!

                  1 Reply Last reply Reply Quote 0
                  • P
                    plasia
                    last edited by

                    In case you missed it on discord @Uveso

                    Seraphim Experimental Bomber likes to gift itself as a mass donation. It does this via a ctrl+k. It does this before dropping any bombs. I have seen this multiple times.

                    https://youtu.be/oBbjImRz6jA

                    1 Reply Last reply Reply Quote 0
                    • UvesoU
                      Uveso
                      last edited by Uveso

                      @plasia

                      Yes this bomber was driven by a suicide platoon. it was meant to just destoy itself.

                      This was the corresponding platoon former:
                      https://github.com/Uveso/AI-Uveso/blob/master/lua/AI/AIBuilders/Mobile Experimental-Air.lua#L431

                      Its driven by this function (AirSuicideAI):
                      https://github.com/Uveso/AI-Uveso/blob/master/hook/lua/platoon.lua#L2518

                      The suicide platoon was searching for Economic buildings.
                      That's why he destroyed the first Tech3 energy building closest to the AI's base.

                      Maybe a bad decision to do it with a suicide attack, but not a bug 🙂

                      1 Reply Last reply Reply Quote 0
                      • P
                        plasia
                        last edited by

                        I'm not trying to be rude, but follow along here:

                        If my teammate got up an experimental and just suicided it into something like an energy building I would be.... most upset.

                        It's simply a mass donation. "Oh no! not my T3 reactor, that will inconvenience me for a whole minute!" Then I profit from all that mass dropped on my front door.

                        Suiciding into energy... is just silly. Suiciding into something that matters, like a SMD... that makes sense.

                        1 Reply Last reply Reply Quote 0
                        • UvesoU
                          Uveso
                          last edited by Uveso

                          Hey Plasia,

                          i am a german, and i like direct and honest answers!

                          You are absolutly right, its a total waste of mass and fight power.

                          And its already fixed!
                          The new target priorities for suicide platoons are:

                                          categories.STRUCTURE * categories.EXPERIMENTAL * categories.ECONOMIC,
                                          categories.STRUCTURE * categories.EXPERIMENTAL * categories.SHIELD,
                                          categories.STRUCTURE * categories.EXPERIMENTAL * categories.ARTILLERY,
                                          categories.STRUCTURE * categories.TECH3 * categories.ARTILLERY,
                                          categories.STRUCTURE * categories.TECH3 * categories.NUKE,
                          
                          P 1 Reply Last reply Reply Quote 0
                          • UvesoU
                            Uveso
                            last edited by Uveso

                            Comming soon:

                            Advanced ACU attack function
                            https://youtu.be/LvLNFyNk3kg (5 minutes)

                            Amost 90% of the function is finished.
                            I guess i will be able to make an mod update in the next 14 days.

                            1 Reply Last reply Reply Quote 0
                            • P
                              plasia @Uveso
                              last edited by

                              😄

                              @uveso said in AI-Uveso (v92) - AI mod for FAForever:

                              Hey Plasia,

                              i am a german, and i like direct and honest answers!

                              You are absolutly right, its a total waste of mass and fight power.

                              And its already fixed!
                              The new target priorities for suicide platoons are:

                                              categories.STRUCTURE * categories.EXPERIMENTAL * categories.ECONOMIC,
                                              categories.STRUCTURE * categories.EXPERIMENTAL * categories.SHIELD,
                                              categories.STRUCTURE * categories.EXPERIMENTAL * categories.ARTILLERY,
                                              categories.STRUCTURE * categories.TECH3 * categories.ARTILLERY,
                                              categories.STRUCTURE * categories.TECH3 * categories.NUKE,
                              
                              1 Reply Last reply Reply Quote 0
                              • UvesoU
                                Uveso
                                last edited by Uveso

                                Update31.May.2021(v93)

                                • New: Added advanced ACU fight function. Microing, threat management, proper overcharge targets.
                                • New: AI is now able to use gifted factories also after full share or player disconnect.
                                • New: Adding "DoNotAllowMarkerGenerator = true," to the map scenario file will block autogenerating markers.
                                • Opt: Added builder for an early energy storage to enable ACU overcharge
                                • Fix: Hardcaped the amount of mobile AA that can be build per location
                                • Fix: Fixed a bug inside the AI-Marker generator (thanks to chp2001)
                                • Fix: Ecomanager will no longer pause the build of Tech1 factories.
                                • Opt: Decreased the massextractor upgrade ratio for Sub AI Storm
                                • Opt: 2nd factory now needs at least 2 mex and 4 energy buildings to be build.
                                • Opt: Air Suicide Platoons no longer attack none game ender buildings.
                                • Opt: Panic Builders are now also building tanks and bots, not only arties.
                                • Opt: ACU will now assist engineers (energyproduction and factories)
                                • Opt: Aeon ACU is now first enhancing with CrysalisBeam, not HeatSink.
                                • Opt: Optimized AI marker generator. (fixed issue with Open Palms)
                                • Opt: Added a value to the AI-Marker to identify related layer areas (.GraphArea)
                                1 Reply Last reply Reply Quote 0
                                • The_JanitorT
                                  The_Janitor
                                  last edited by

                                  The AI is not doing anything on some maps ex. Twin Rivers, can we get list of maps that AI should be working on?

                                  Secure the kill and send it off.

                                  1 Reply Last reply Reply Quote 0
                                  • UvesoU
                                    Uveso
                                    last edited by

                                    @HintHunter

                                    My AI is working on almost every map.
                                    It has a build in AI waipoint generator so you also can play maps without any AI markers.

                                    I tested Twin Rivers right now, and its working like expected.

                                    Can you post a full game.log ?

                                    The_JanitorT 1 Reply Last reply Reply Quote 0
                                    • The_JanitorT
                                      The_Janitor @Uveso
                                      last edited by

                                      @uveso Contacted you on discord.

                                      Secure the kill and send it off.

                                      1 Reply Last reply Reply Quote 0
                                      • maudlin27M
                                        maudlin27
                                        last edited by

                                        While I expect the AI has been designed for more conventional ladder 1v1 matches rather than the 1v1 map I chose, I've still noted various issues/flaws with what the AI did which I think would be applicable more generally. This was using the 1 June uveso mod:

                                        Replay ID #14646432
                                        Uveso adaptive Vs guncom:

                                        • 1st Land fac location - it picks somewhere that requires the com to move (losing a couple of seconds)

                                        • Power order - It has a hydrocarbon right by the starting location, yet focuses on building 3 T1 power gens first. It'd be more efficient to have the com assist the hydrocarbon once the first engi is done (e.g. have the com get t1 mexes while the engi is being built, then assist the hydrocarbon); on a map where the hydrocarbon is further away then I could see more merit in getting more t1 pgens first

                                        • Power stalling and lack of focus - the AI has a com building 1 T1 pgen, an engi building a 2nd T1 pgen, and a 2nd engi building a hydrocarbon, all while power stalling. Far better to focus on the most power efficient option (Hydro), and pause any construction while power stalling until the power generation is completed

                                        • Mass stalling/not claiming T1 mex - the AI mass stalled for a while (with far more spent mass then generated) all while 2 unclaimed mexes are in range of engineers. While mass stalling, more power is being started/built, and then a t1 factory; far better to focus on generating easy mass (t1 extractors), then the factory (assuming more build power is needed), and then more t1 power (assuming the planned strategy requires significantly more energy), than to try and do all at once

                                        • Too much power - Far more power is built than needed (12 T1 and hydro would be enough if going for a gun upgrade, but instead the power is wasted)

                                        • Engineers sent out dont start building at nearest t1 mexes

                                        • Strange order changing - The first t1 engi sent out of the main base passes 2 unclaimed mexes, then goes all the way back to base while other engis go to where it originally was; presumably some command given to that first engi, but it would've make sense to take one of the others nearer the base for the new command and use the far out engi to build t1 mex

                                        • Unused build power/factories - Lots of t1 land factories built, but some of these appear to sit idle.
                                          No need to construct more factories if the existing ones aren't going to be used. The factory also sat idle despite a big threat [guncom] being scouted

                                        • Feeding an enemy kills - Scouts come across guncom - instead of sending all defenceless units away from it, and building up something to try and counter it, the AI keeps sending engineers and unarmed scouts piecemeal (giving the guncom free kills)

                                        • Storage before T2 Mex - Engineers build mass storage between 2 t1 mex; better to first upgrade those mex to t2 before building the storage

                                        • Mass generation prioritisation - The mass storage is built at the same time as the T2 mex upgrade, all while mass stalling. Normally it's best to focus on 1 mass generation (i.e. the t2 mex upgrade) first, and once complete move on to the next (e.g. mass storage). The exception being if there's significant amount of mass built up that can be used (not the case here).

                                        • Unit mix - Preference for lots of engineers over any combat units, meaning vulnerable to just about any attack. Although lots of buildpower gives the option to try and respond quicker to threats (e.g. get quick PD up, or assist an air factory to rush bombers etc.), the AI didn't make use of the engineers and hence offered no resistance to the enemy commander.

                                        • Counterproductive COM micro - The AI sent its unupgraded com (with no support) to fight mine. The AI com then 'stutters' (about 6m5s in), getting about 1 shot to every 4-5 of my coms (I'd expect 1 shot for every 2 of mine given mine had a speed upgrade) - it keeps rotating as if it's thinking about doing something else before switching to attacking my com. In observer mode it looks like this might be due to move commands sent to the com - maybe they're being sent/changed too often?

                                        • Energy storage for combat - In the situation where you have lots of surplus power and build power, minimal ground units, but your com is about to get into battle, then getting 1 energy storage as a top priority might help sway the battle in your favour.
                                          In this scenario it wouldn't have been enough, but would still have been of a bit of use given the excess T1 pgens that had been built

                                        • Response to attack - similarly to the unit mix point above, despite scouting an enemy guncom advancing on the main base, no units or pd were built in response to this threat (lots of engineers, land facs and an air fac were available). Instead some factories are idle, others are producing engineers, and 2 new naval yards are being built, all while mass stalling

                                        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
                                        • UvesoU
                                          Uveso
                                          last edited by

                                          @maudlin27

                                          great feedback!

                                          Well, my AI is a turle AI and normaly i would play on this map against the "rush" sub AI with a cheat and buildfactor of 1.7
                                          The adaptive AI uses 40% of its overall income to upgrade mex etc. So it has no eco for combat units at the beginning.
                                          Thats because turtle playes don't attack in the first 5 minutes with a Gun Com ^^ They use the ACU as engineer 😄

                                          I am not sure if we could make an duel style AI.
                                          There are some limits by the game engine and we can't make everything possible.

                                          Its like the ACU torsotwist. its adjusting the torso on almost every movement command.
                                          So its sometimes not firing at all when evading.

                                          But build order and better timing can be done.
                                          I will do a test AI with your recommendations and see how it works.

                                          Thank you again for your much appreciated feedback!

                                          1 Reply Last reply Reply Quote 0
                                          • maudlin27M
                                            maudlin27
                                            last edited by

                                            Is it possible for the AI to be reactive (e.g. the moment a scout reveals a threat the AI changes strategy), or does it have to try and pre-empt potential enemy attacks by covering all bases (e.g. build AA, PD, TMD, T2 arti in anticipation of potential attacks regardless of whether the enemy has any of the units in question)?

                                            Similarly, if a command is sent to start construction of something, and a critical event happens (power stall, or to a much lesser extent mass stall) can the AI be told to change what it's doing then, or would it have to wait until the next event (e.g. construction finishes)?

                                            In terms of the eco side, if the intention is to eco and not build any defence then I'd do a 'hard eco' - i.e. there's no point building so many t1 factories, engineers and power initially; better to get more mass generation (so t1 engi's prioritise any near unclaimed mex first, then switch to upgrading a mex near the core base to t2), enough power to support an upgrade to T2, get T2 upgrade on com or factory, and hope to then make use of the tech and eco advantage to turtle up before the enemy catches on and tries to rush. That is, a couple of token t1 land units won't help unless the enemy sends their com with no upgrades and no support, or builds zero land units (meaning their mex can be killed), both of which are highly unlikely, but having the capability to build lots of land units (without using such capability) is using up alot of resource and delaying the point at which you can get t2 defence.

                                            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
                                            • First post
                                              Last post