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

    M28AI Devlog (v228)

    Scheduled Pinned Locked Moved AI development
    575 Posts 56 Posters 1.7m 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.
    • maudlin27M
      maudlin27 @kagurazakanana
      last edited by maudlin27

      @kagurazakanana
      Thanks for the feedback, in respect of your points:

      • AIx Overwhelm issues - I'm assuming you're playing with AIx M28, could you send me the replay ID where this doesn't work? Testing just now it's working as I'd expect.

      • 40km 3v3 - If you send me the replay ID I can have a look at what it did for if there are any obvious improvements that could be made. I suspect given the map size and it being a naval map it was simply too slow to capitalise on its higher AIx modifier, since it may choose to invest heavily in navy (and I'm assuming the paragon was outside of naval range)

      • Not attacking with T4 air - This will depend on how much anti-air there is, so I'd need a replay to check whether it was being over-cautious

      • Bomber snipes - it should intercept strats with asfs (as well as having the ACU under a shield, with health upgrades, and SAMs). My guess would be this was on a 40km map and its air force was too far from the ACU when the strats were spotted (but if it had asfs and didn't even try to intercept the strats then send me the replay)

      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 1
      • K
        kagurazakanana
        last edited by

        Hi Maudlin27,

        Thanks for your prompt response! Here's my feedback and follow-up on the points you raised:

        Replay Upload:

        Unfortunately, our last game was played on a local LAN setup, so no replay was saved. I’ll make sure to upload the replay from our next match for you to review once we've played another game.

        AIx Overwhelm Settings:

        Regarding the Overwhelm Rate, Overwhelm Interval, and Overwhelm Limit, I did notice that M28’s economy improves over time, but the build rate (e.g., engineers' build speed) didn’t noticeably change. One specific example: M28 was set to a (1.21.0) multiplier, with Overwhelm values of 0.1, 5, and 10. By the 28-minute mark, a T3 power generator should have been producing 25001.2(1.1^5) = 4831.53, but it was only producing 4000. Similarly, T3 mass extractors were only producing +28 mass/second when I expected them to be around +52.

        40km Naval Map:

        Yes, it was indeed a naval map, and it’s based on an older version you can find on the FAF client under the name "Durex 40km".

        Paragon and Naval Battles:

        The Paragon was outside of naval range, and the AI spent considerable resources on its navy. However, the AI couldn't effectively leverage its battleships. The players were able to focus fire with battleships and used nukes to clear specific targets, leading to a cost-ineffective navy for the AI. This allowed the players to cheaply fend off sea attacks.

        T4 Air Attacks in Late Game:

        M28’s air strategy was solid during the early and mid-game (with many successful gunship strikes), but by the late game, even though it had significant T4 air units, it stopped attacking aggressively. In that match, the defending player had about 300+ T3 sam AA, 500 ASF (with 50 T3 air factories constantly producing), as well as a large number of Aeon T2 move AA and cruisers; however, these defenses were spread thin across the map. Meanwhile, M28 had 10-15 CZARs, along with many gunships and ASFs, which could have broken through. I suspect M28 evaluates the total number of AA units rather than factoring in the map size and positioning when deciding whether or not to proceed with an attack.

        Unit Sharing After Ally Defeats:

        One observation was that once all of M28’s allies were defeated and their units were shared, M28 started attacking with those units, but by then it was too late. I suspect M28 isn’t accounting for the availability of allied units earlier in the match, which could have provided an advantage.

        Bomber Snipes and ASF Response:

        M28 did respond by sending ASFs to intercept once it detected T3 bombers, but my teammates deliberately distracted the ASFs by sending forward CZARs and Soul Rippers. This shifted the AI’s focus, allowing bomber attacks at the map’s edge to go unnoticed.

        Misuse of ASFs:

        In some cases, M28 ASFs would dive directly into dense anti-air zones, leaving behind large wreck fields. There were also times when the factory rally points were placed inside AA zones and remained there for the rest of the game.

        Some Minor Suggestions for Improvement:
        Allied Unit Management:

        Multiple AI allies producing the same type of experimental units (like CZARs or Soul Rippers) don’t share them efficiently amongst each other. Perhaps consolidating some of these forces under the control of one stronger AI could make their use more effective.

        Mass Extractor Sharing:

        M28 AIs on the same team don’t seem to gift upgraded mass extractors to their allies. When one AI upgrades its mass points, sharing the upgraded extractors with allies could help boost their economies, especially on larger maps.

        Engineer Sharing:

        M28 AIs on the same team don’t share engineers, which could improve characteristic and construction efficiency.

        Experimental Construction Prioritization:

        M28 doesn’t seem to prioritize certain experimental units correctly. It often builds Salvation or Scathis, which are ineffective against shields, rather than opting for more impactful units like Paragon or Mavor.
        -some m28and game setting:
        1.5*1.5 (other def)
        no mod open(only m28ai(v142) )
        Thanks again for all your efforts. I’ll get you the replay from our next game as soon as possible for further review.

        maudlin27M 1 Reply Last reply Reply Quote 1
        • maudlin27M
          maudlin27 @kagurazakanana
          last edited by maudlin27

          @kagurazakanana Thanks for the suggestions. Some are already present in M28AI, others the approach taken is intentional, while others I'd need a replay to consider further:

          • AIx overwhelm - The main thing I'd be interested in is if the limit of the AIx overwhelm doesn't apply properly - I'm more relaxed if the timing is slightly out on when the bonus gets applied, as in the basic sandbox tests I've applied the bonus seems to take place roughly when I'd expect. So for example if you're applying AIx overwhelm with a 1.5 limit, and well after the time that it should've reached that limit it still isn't at +50% resources, then send me hte replay and I can check.
          • Paragon and naval battles - replay would be needed - e.g. the one scenario that might be possible to adjust is where M28 starts losing significant navy to nukes, in which case it could switch to other units like a game-ender. It should already reduce battleship construction once it gets a large amount if it has control of the waters (so my guess is the battleships keep dying to things like nukes, causing it to keep investing in navy instead of a game-ender). A replay would simplalry help re deciding whether it's worth adding logic to switch to a game-ender where the enemy is getting one and it can't be reached with navy or non-amphibious land units.
          • T4 air attacks - If there were 500 asfs then there's a good chance it'd be enough to dissuade M28. If it's getting to the point where M28 has a czar for every 25 enemy asfs and it's still not attacking then let me know and I can do some sandbox tests, but the enemy having c.50 asfs per czar doesn't sound too unreasonable for it to be cautious (from memory the break even point was somewhere between 30-50 asfs when I sandboxed a couple of years ago as a human player)
          • Impact of allied units - yes M28 ignores allied units for the most part, with the exception of human players if shared armies is enabled. This is intentional, as particularly with weaker AI (like the default AI) M28 can't rely on those units attacking at the same time as it. It'd also have cpu and memory implications if it was to factor in those units the same as its own.
          • Bomber snipes working due to experimental decoy - Although it evidently cost it the game, I'm relatively relaxed about such a decoy working, as it means the AI can be tricked, and often an experimental air unit presents its own existentional threat for the AI
          • Misuse of ASFs - I'd need a replay for anything like that, it's meant to avoid SAMs in most cases (an exception would be if it had a czar or other high value unit nearby it was trying to protect)
          • Multiple AI allies not sharing - M28 doesnt have this problem, all M28 AI on the same team will share all units between themselves (i.e. it applies a hive mind approach to control for the most part).

          That said, where the team is spread out on a large map it might divie itself into 2 'hive-minds' for certain things like air units.

          • Extractor sharing - M28 gifts mass storage to whoever owns the mex to ensure the adjacency bonus. It doesnt need to share mexes between other M28AI as it shares mass instead

          • Engineer sharing - Engineers work together to build something, e.g. if you have 4 M28AI on the same team, and they all have engineers in the same small area, then they'll work together on big projects such as experimentals. Coupled with the resource sharing mentioned above, that means this would have minimal impact (the main use case, which M28 already caters for to some extent, is a teammate's engineer can block construction of a unit)

          • Experimental construction prioritisation - It prefers paragon and mavor to scathis. Salvation gets built if it's eco so high already that paragon wouldn't provide a significant benefit. What I expect is happening is that the Cybran M28AI is in a position to build a game-ender, and has no T3 engineers of another faction near where it wants to build the game-ender, in which case it builds scathis. This is intended, as it's a balance between M28 going for what it htinks is best, allowing players to have influence on how the AI will play to some extent i.e. having a Cybran in a team so there's a chance scathis gets built), and avoiding scenarios where the Cybran in a safe eco slot doesnt build anything, while the UEF in the front 'mid' type slop gets a mavor (that is easily killed due to being on the frontline).

          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 2
          • maudlin27M
            maudlin27
            last edited by

            v144 Update
            9 changes, including:

            • Transports shouldn't drop a zone already being dropped
            • Pre-emptive PD against further away enemy threats
            • Asfs should be less likely to engage non-priority enemy air threats if lacking air control
            • 2 LOUD specific changes - more Blackops ACU upgrade support, and M28's nuke dodging logic should now be supported in LOUD

            Acknowledgements

            • Vortex - several replays, and highlighting that M28's nuke dodging logic wasn't working

            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 3
            • maudlin27M
              maudlin27
              last edited by

              v145-146 Updates

              • In shared armies mode, if there is a mix of M28AI and human players on the team, M28AI should only consider the eco of the M28AI players when deciding if it is overflowing mass (to cater for a game played between players who would control M28AI's units while letting M28 choose what to build)
              • 4 changes relating to M28 trying to better deal with gunships with MAA (it should consider retreating/consolidating its MAA forces in some scenarios, as well as retreating more generally if faced with a gunship threat it cant handle)
              • 3 changes primarily related to improving M28's build order on the ditch and similar maps with huge amounts of reclaim so it scales its power and build power faster
              • Slightly reduced the tendancy to build t1 arti early on
              • 1 LOUD specific change (relating to getting t1.5, 2.5 and 3.5 units a bit sooner)
              • Very minor optimisation and a couple of minor profiling bugfixes

              Acknowledgements

              • Tryth - replay of a shared armies game where M28 overbuilt engineers due to human teammates overflowing mass
              • Sladow - several replays against M28, including one where M28 AIx 1.4 was beaten (on the ditch)
              • Vortex - LOUD replay and highlighting potential improvements

              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 2
              • K
                kagurazakanana
                last edited by kagurazakanana

                Hi maudlin27
                Thank you for your detailed feedback. I have gone through your response, and I appreciate the clarification you have provided on various issues. I’ve also taken your suggestion to prepare a replay showcasing one specific issue observed with the M28 AIX Overwhelm rate.

                Replay Details:
                In the attached replay, you can observe the following anomaly:

                AIX Overwhelm rate inconsistency: In the replay, many of the factories themselves fail to respond to the overwhelm multiplier properly. In the later stages of the game, there are also instances where production power seems to get applied without any observable incremental increase. Additionally, energy and mass extractors seem to receive a partial benefit, but the benefit applied is inconsistent and varies across different buildings.
                I believe this has to do with how the multiplier is handled in relation to newly constructed buildings, which may not be adjusted correctly.

                Reference to FACN Platform Fix:
                About ten years ago, I was working on a similar AI system for the FACN platform (similar to FAF but based in China, forked from an older version of FAF). At that time, while facing a similar issue with adaptive AI not applying overwhelm and cheat buffs accurately to new buildings, I managed to implement a fix to resolve it on that platform.

                Here is an example of how I approached it in Unit.lua under Unit = Class(moho.unit_methods):

                lua

                OnStopBeingBuilt/--------------Enable AIX Detection Thread
                if ScenarioInfo.type ~= 'campaign' then
                local AIBrain = self:GetAIBrain()
                if string.lower(AIBrain.BrainType) ~= 'human' and self:GetAIBrain().CheatEnabled then
                if ScenarioInfo.Options.AdpAI ~= 'off' then
                self:ForkThread(self.CheckAutoAIbuff)
                end
                end
                end
                Additionally, I implemented a periodic check function to ensure proper multiplier adjustments:

                lua

                CheckAutoAIbuff = function(self)
                if not self:IsDead() then
                if ScenarioInfo.type ~= 'campaign' then
                local AIBrain = self:GetAIBrain()
                if ScenarioInfo.Options.AdpAI ~= 'off' then
                local refreshTime = (tonumber(ScenarioInfo.Options.AdpAI) * 60)
                if not nextRefresh then
                nextRefresh = refreshTime
                end
                if string.lower(AIBrain.BrainType) ~= 'human' and self:GetAIBrain().CheatEnabled then
                local timeSecs = GetGameTimeSeconds()
                RemoveCheatBuffs(self)
                if timeSecs < nextRefresh then
                SetupAICheatS(AIBrain,self,AdpCheatMult,AdpBuildMult)
                elseif timeSecs >= nextRefresh then
                if (AdpCheatMult <= 1000) and (AdpBuildMult <= 1000) then
                AdpCheatMult = AdpCheatMult + (AdpCheatMult/2)
                AdpBuildMult = AdpBuildMult + (AdpBuildMult/2)
                end
                SetupAICheatS(AIBrain,self,AdpCheatMult,AdpBuildMult)
                nextRefresh = nextRefresh + refresh time
                end
                end
                end
                end
                self:ForkThread(self.AIXWaitUnit)
                end
                end
                This was one of the approaches that I found effective for resolving the inconsistent multiplier application for newly constructed buildings. However, with the passing of time, I no longer recall all the intricate details of this solution and how specifically it was implemented, which makes it challenging to apply the same exact logic to the current FAF system.

                FACN Lua.nx2 File:
                To support your investigation, I will include a FACN lua.nx2 file for your reference. This might provide useful insights during the repair process. Unfortunately, I could not attach the entire file due to its size (over 1GB). In this version of the AI system, I had successfully addressed the issue of inaccurate multiplier application on new buildings. However, as mentioned earlier, some of the finer details of that implementation have since been lost, and I’ve found it difficult to map this solution onto the FAF environment.

                Additional FACN Code (for Health Scaling):
                Regarding AI scalability, I had implemented a setting in FACN that allows the AI to have X times the normal health. This feature, when combined with the proper adaptive AI system configuration, can allow the AI’s health to increase progressively over time. Below is the relevant code that implements the health multiplier, which can be adapted further for dynamic health growth.

                Example from Unit.lua/SetupAICheat:

                lua

                if ScenarioInfo.Options.AIMultHP ~= "off" then
                AISetMaxHealth = tonumber(ScenarioInfo.Options.AIMultHP)
                unit:SetMaxHealth(unit:GetMaxHealth() * AISetMaxHealth)
                if EntityCategoryContains(categories.COMMAND, unit) then
                unit:SetHealth(unit, unit:GetMaxHealth())
                end
                unit.HealthM = tonumber(ScenarioInfo.Options.AIMultHP)
                end
                Supporting function in Unit.lua:

                lua

                function setupHealthMultiplier(unit, Mult)
                unit:SetMaxHealth(unit:GetMaxHealth() * 10)
                unit:SetHealth(unit, unit:GetMaxHealth())
                end
                This code ensures that AI units can initially have a health multiplier (X times their normal health). To achieve the goal of having dynamic health growth over time, you can combine this multiplier setup with a proper adaptive AI configuration that adjusts the multiplier periodically. The health multiplier would then increase as game time progresses, allowing AI units to scale effectively in longer or more challenging scenarios.

                Regarding Other Mentioned Issues:
                As for the other points I previously raised (such as the behavior of naval battles, air attacks, and misuse of ASFs), I haven’t encountered those issues again as of this response. Should any of those issues arise in future matches, I’ll make sure to record the replays for further analysis and share them with you for a better evaluation. I look forward to understanding how these can be improved further.

                Replay Settings:
                M28: 1.0*1.0

                M28AIX Overwhelm rate: 0.1

                M28AIX Overwhelm interval: 0.5

                M28AIX Overwhelm limit: 10.0

                Mods included:

                M28AI v145
                All Faction Quantum Gate V2.0 (created by jayTac)
                Map:

                3v3 Durex v10 Hotfix
                lua(FACN) (2).zip 3v3_durex_v10.v0005.zip lastgame.zip

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

                  @kagurazakanana said in M28AI Devlog (v146):

                  3v3 Durex v10 Hotfix

                  Do you have a copy of the map you used? I can't find it on the FAF map vault

                  Edit: Although doing a sandbox test of AIx overwhelm to check if it was adjusting the build rate I realised the implementation was only adjusting resource generating units, so the build rate adjustment should be fixed in the next version. If you still run into issues after this then post a replay (and the map if it's not on the vault) with an example unit and timestamp illustrating the issue and I can look into further.

                  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 2
                  • maudlin27M
                    maudlin27
                    last edited by

                    v147 Update
                    8 changes, mostly relating to minor bugfixes, including:

                    • Fixed a bug with AIx overwhelm not increasing the build rate of units
                    • M28Land should consider building non-land experimentals occasionally late-game to give it a small bit of variety
                    • Fixed a couple of bugs that could result in air factories not building units in rare cases

                    Acknowledgements

                    • Fearghal – replay which contained a number of niche errors
                    • Kagurazakanana – Highlighting that M28’s Aix overwhelm modifier wasn’t adjusting build rates
                    • c04spoon - LOUD replay where M28 overextended

                    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 4
                    • maudlin27M
                      maudlin27
                      last edited by

                      v148 Update
                      13 changes, including:

                      • Naval AA units should be more likely to retreat from enemy units
                      • Fixed a bug where naval units would think they were always outranged by the enemy
                      • Subs should prioritise shield boats and then other subs
                      • Low ranged skirmisher units should be more aggressive when lacking intel if the ACU is nearby
                      • 4 MOD specific changes, including support for mods that require a build rate for factory units, building PD if it can be built on water in LOUD, and having M28 make use of the Blackops experimental aerial fortress

                      Acknowledgements

                      • c04spoon - Naval replay prompting a number of this update's changes
                      • Vortex - Replay where M28 failed to support his ACU with land units

                      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 4
                      • maudlin27M
                        maudlin27
                        last edited by

                        v149 Update
                        27 changes, including:

                        • New performance mode option in game settings which uses simpler approaches for parts of M28 logic to make it run slightly faster, although also not quite a strong. As a rough guide, I'd expect this makes things run 10-20% faster overall, and if combined with M28Easy and the maximum delay between land unit orders, it ends up being roughly 50% faster.
                        • 6 mod specific changes, including better support for experimental factories and the XtremeWars experimental spaceship (which should no longer idle), and more aggressive use of Seraphim bombardment ships when navy is won
                        • Increased experimental unit variety if M28's unit prioritisation is disabled (meaning it will build a much wider range of units, but they are much more likely to not be appropriate in the circumstances)
                        • Gunships should be more aggressive when they have a large threat and sufficient AA to handle the enemy asfs
                        • Reduced the number of LABs built early on
                        • Limited the number of engineers to be built on small islands

                        Acknowledgements

                        • Vortex - LOUD replay highlgihting issues with the Seraphim bombardment ship and overbuilding engis on islands
                        • WesMaggs - describing a scenario where M28's gunships were too cautious
                        • Radde - A number of 1v1s on Xander Adaptive, whigh highlighted some early-game issues M28 had, as well as some other niche issues (such as land experimentals being overly cautious in some scenarios)

                        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 5
                        • maudlin27M
                          maudlin27
                          last edited by

                          v150 Update
                          12 more changes, including:

                          • Sub consolidation logic to try and group subs together when fighting more often
                          • Gunships should retreat to heal up sooner if they're having a habit of dying to ground defences
                          • Made adjustemnts to ACU aggression to only factor in friendly direct fire units
                          • Several adjustments for dodging missiles (to make it less likely units try to dodge)
                          • 2 MOD specific changes, including improving M28's assessment of whether it will win an air fight in LOUD when inties are involved.

                          Acknowledgements

                          • Radde – Several more replays (on v148)
                          • C04spoon – LOUD replay
                          • Vortex – LOUD replay

                          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 5
                          • maudlin27M
                            maudlin27
                            last edited by

                            v151 Update
                            Smaller hotfix update with 7 changes:

                            • Short ranged units should be less likely to attack enemies and should try and group closer together
                            • Units whose shots are blocked should be slightly more likely to move than before.
                            • Fixed a bug that would break all M28 ACUs for the rest of the game if M28 thought an enemy ACU could be killed. Also added in a redundancy so in future it should only temporarily break the logic if such a bug was to reoccur.
                            • Experimentals should be slightly more likely to suicide into an enemy experimental instead of retreating (although this will need further refinement).

                            Acknowledgements

                            • Radde - A number of replays
                            • Vortex - several LOUD replays

                            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 5
                            • maudlin27M
                              maudlin27
                              last edited by

                              v152 and v153 updates
                              21 changes, including:

                              • Fixing a bug where M28 wouldnt build mass storage if player 1 was an M28 teammate who died
                              • Fixed several issues relating to shared armies (message should only display to the person clicking the button; air staging should release M28 controlled units even if they haven't been toggled to have control; non-M28 controlled friendly units shouldnt be reclaimed for mass)
                              • Land experimentals that cant kite should be less likely to retreat from an enemy experimental
                              • Fixed a bug where M28 would incorrectly consider the enemy to have no naval threat
                              • Torpedo launchers should no longer be built in response to an enemy engineer
                              • Transports should be more likely to be built, and introduced 'engineer support' transport logic so if a plateau wants an SMD and has no t3 engineers one should be airlifted over

                              Acknowledgements

                              • Radde – Various replays (which were the basis for the majority of changes)
                              • Marlo – Highlighting issue on fort Clarke assault where some of the M28 ACUs would suicide into T1 PD
                              • Cleo – describing some issues with shared armies mode where M28 would reclaim friendly units.

                              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 4
                              • maudlin27M
                                maudlin27
                                last edited by

                                v154 Update

                                • Fixed a bug that meant M28 logic relating to units damaging others wasn't triggering (e.g. relevant for determining if units aren't blocked from hitting enemies) and expanded to add a redundancy for gunships to make sure they retreat when damaged.
                                • Island drops should no longer try and drop on islands with enemy PD
                                • Fixed several occasional issues with M28's late-game arti template (building T3 pgens in the designated place for T3 arti; engineers owned by an M28 teammate blocking construction)
                                • When an experimental dies, most of hte time M28 should assign an engineer from a nearby base to reclaim the wreck (in additino to its normal reclaim logic)
                                • Fixed a rare bug that could mean a unit on attack-move being given a move order would stay attacking.

                                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 4
                                • maudlin27M
                                  maudlin27
                                  last edited by

                                  v155 Update
                                  Another mini update:

                                  • Fixed a typo relating to a niche scenario where considering whether to get a novax to help with enemy naval threats
                                  • Reworked ASF support logic so they should try and stay even closer to a friendly experimental air unit than before
                                  • Fixed a bug with working out if a table is empty (that I presume has been around in both M28 and M27 for 3-4 years!)
                                  • Asfs should be more likely to engage enemies attacking restorers and czars (by including the restorer/czar anti-air capabilities when deciding whether the fight can be won)
                                  • Fixed an issue with M28's chat messages not working in LOUD (introduced in v152)

                                  Acknowledgements

                                  • Radde - several more replays
                                  • C04spoon - Mentioning that M28's chat messages had stopped working in LOUD

                                  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 1
                                  • M
                                    MrPhalanx
                                    last edited by MrPhalanx

                                    Hey Maudlin! I also found out, that the chat messages do not work with the Steam Version as well now, also a small bug, when you select MULTIPLE repair drones (UEF) (For ex. at the Kennel), the UI in the left is broken (only a blank square is visible), if you select a SINGLE drone, then everything works fine.

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

                                      @MrPhalanx Just to check, is the chat bug something that happens in the latest version v155 (as there was a bug with this in a previous version)

                                      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 2
                                      • maudlin27M
                                        maudlin27
                                        last edited by

                                        v156 Update
                                        14 changes, including:

                                        • A few different build orders and early game approaches added to try and make M28 a bit more unpredictable (for now whether it rushes a bomber; gets no bomber at all; gets LABs or no LABs, although long term I'm hoping to add some further variation)
                                        • Adjusted how short range units support longer ranged units where they're having their retreat cut off
                                        • A team with a mix of different factions should prioritise ahwassas if they decide to build an air experimental

                                        Acknowledgements

                                        • Jorne - 1v1 vs M28 Easy
                                        • Radde - Lots of teamgame replays vs M28

                                        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 2
                                        • A
                                          art-wiedzmin
                                          last edited by

                                          FA Mission 6 (Overlord) with Combined human-AI armies. https://pastebin.com/yAmjETHf

                                          maudlin27M 1 Reply Last reply Reply Quote 0
                                          • A
                                            art-wiedzmin
                                            last edited by

                                            Okay It works fine if comment out these lines in M28Overseer.lua.

                                                elseif not(bApplyM28AI) and oBrain.M28AI then
                                                    --oBrain.M28AI = false
                                                    --oBrain.M28Team = nil
                                                    --M28Team.CreateNewTeam(oBrain)
                                                    if bDebugMessages == true then LOG(sFunctionRef..': No longer applying M28AI to brain '..oBrain.Nickname..'; assigned it to the team '..(oBrain.M28Team or 'nil')) end
                                                end
                                            

                                            (2112 - 2114 lines in version 157 from git)

                                            log with enabled debug: https://pastebin.com/yKHa4hbH
                                            log with enabled debug (after comment out): https://pastebin.com/nNqUA4ME

                                            I don't quite understand the logic structure itself, but it seems to be designed for an individual AI player, and breaks down with a combined AI-Human mode (player moves to the newly created team number 5 after Fletcher's betrayal).

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