1 items

File information

Last updated

Original upload

Created by

MacCarell

Uploaded by

MacCarell

Virus scan

Safe to use

28 comments

  1. Maelstrom89
    Maelstrom89
    • premium
    • 29 kudos
    Locked
    Sticky
    I think I can understand this. Proficiency is calculated with a formula like.. [Skill Level] / [AIMaxLevelCalc] * [0.01]. With that, I can see where you get 50% and 37.1% with 130 Skill Level with 260 / 350.

    With your value of 260, their proficiency with a bow at 130 bow skill is 50% and at 350 it becomes ~134% (up from 37.1% and 100% respectively). So you're basically giving them a boost across the board. If you changed it to 250, small boost. If you changed it to 150 like another comment was curious about.. oof.. that 'archer' would be operating at ~86.6% prof with that 130 bow skill. Pain.

    Anyway, very nice mod. Yoink.

    1. MacCarell
      MacCarell
      • supporter
      • 4 kudos
      Exactly. It's subtle but I think it does a good job at making fights more intense. Thanks

      Edit: The (0.01) value is the lowest it can go. Not multiplied into the formula. It is the "min" value within the "clamp" function.
      What is multiplied is the difficulty modifier ("diffmod"), which is around 1. The lower "diffmod" is, the lower the proficiencies.
  2. Ping827
    Ping827
    • member
    • 0 kudos
    I don't think this works anymore. Playing on the 1.2.12 latest version of the game. Can you update please?
    1. MacCarell
      MacCarell
      • supporter
      • 4 kudos
      Just downloaded and tested the version right here, it works fine.

      Idk if maybe DLL unblocking is needed -- but I more suspect it's another mod causing whatever issue ur seeing.
    2. Ping827
      Ping827
      • member
      • 0 kudos
      I have difficulty set to challenging along with this mod. They don't really seem that much harder to fight but maybe its cuz my character is really strong. Was hoping to find a mod that made combat more difficult against ai. How were you able to test it was working and active?
    3. MacCarell
      MacCarell
      • supporter
      • 4 kudos
      It just alters a number for a ratio calculation. `SkillLvl / 350` becomes `SkillLvl / 260`. I could debug and breakpoint it but that seems excessive.
      They should be smarter with how they use their weapons and should deal more damage. It's most apparent in tournaments, I think, where you have to 1v1 them in close combat.
  3. irulannaba
    irulannaba
    • supporter
    • 35 kudos
    For everyone that is using RBM you don't need this, it has already adjust the ai level (this mod use 260 while rbm use 250). It should generally comparable to this mod but I'd advise using this mod since it can be problematic applying 2 mod that patches the same thing. 

    sorry for bad grammar english
    edit: nevermind rbm using difficulty level *1 instead of 0.01, so i don't know the calculation anymore...

    edit2: gosh Im bad at reading code
    anyway rbm use this:
    MBMath.ClampFloat((float)relevantSkillLevel / 250f * difficultyModifier, 0f, 1f);

    with its own campaign difficulty modifier instead of vanilla
    very easy: 0.7
    easy: 0.85
    realistic : 1

    this mod using this:
    MBMath.ClampFloat((float)relevantSkillLevel / 260f * difficultyModifier, 0.01f, difficultyModifier);

    can someone explain how does the 2 compare?
    1. irulannaba
      irulannaba
      • supporter
      • 35 kudos
      I use chat gpt to compare the 2 mod so bear with me hehe, here's how the 2 mod compare at different skill level

      the first function is this mod, it also uses vanilla base difficulty modifier.
      the 2nd function is RBM, it has its own difficulty modifier (comparable though) but its capped at 1
      Spoiler:  
      Show

      Example Calculations for Different relevantSkillLevel ValuesLet's calculate the output for both functions with different relevantSkillLevel values: 250, 100, 50, 330, and 260.
      Difficulty Modifier for Different Levels:

      • First Function:

        • VeryEasy: 0.1
        • Easy: 0.32
        • Realistic: 0.96
        • Default: 0.5

      • Second Function:

        • VeryEasy: 0.7
        • Easy: 0.85
        • Realistic: 1
        • Default: 1

      For relevantSkillLevel = 250:

      • First Function:
        csharp

        MBMath.ClampFloat((float)250 / 260 * difficultyModifier, 0.01f, difficultyModifier);

        • VeryEasy: Clamp(0.9615 * 0.1, 0.01, 0.1) = 0.09615
        • Easy: Clamp(0.9615 * 0.32, 0.01, 0.32) = 0.30768
        • Realistic: Clamp(0.9615 * 0.96, 0.01, 0.96) = 0.92304
        • Default: Clamp(0.9615 * 0.5, 0.01, 0.5) = 0.48075

      • Second Function:
        csharp

        MBMath.ClampFloat((float)250 / 250 * difficultyModifier, 0f, 1f);

        • VeryEasy: Clamp(1 * 0.7, 0, 1) = 0.7
        • Easy: Clamp(1 * 0.85, 0, 1) = 0.85
        • Realistic: Clamp(1 * 1, 0, 1) = 1
        • Default: Clamp(1 * 1, 0, 1) = 1

      For relevantSkillLevel = 100:

      • First Function:
        csharp

        MBMath.ClampFloat((float)100 / 260 * difficultyModifier, 0.01f, difficultyModifier);

        • VeryEasy: Clamp(0.3846 * 0.1, 0.01, 0.1) = 0.03846
        • Easy: Clamp(0.3846 * 0.32, 0.01, 0.32) = 0.12307
        • Realistic: Clamp(0.3846 * 0.96, 0.01, 0.96) = 0.36923
        • Default: Clamp(0.3846 * 0.5, 0.01, 0.5) = 0.1923

      • Second Function:
        csharp

        MBMath.ClampFloat((float)100 / 250 * difficultyModifier, 0f, 1f);

        • VeryEasy: Clamp(0.4 * 0.7, 0, 1) = 0.28
        • Easy: Clamp(0.4 * 0.85, 0, 1) = 0.34
        • Realistic: Clamp(0.4 * 1, 0, 1) = 0.4
        • Default: Clamp(0.4 * 1, 0, 1) = 0.4

      For relevantSkillLevel = 50:

      • First Function:
        csharp

        MBMath.ClampFloat((float)50 / 260 * difficultyModifier, 0.01f, difficultyModifier);

        • VeryEasy: Clamp(0.1923 * 0.1, 0.01, 0.1) = 0.01923
        • Easy: Clamp(0.1923 * 0.32, 0.01, 0.32) = 0.06153
        • Realistic: Clamp(0.1923 * 0.96, 0.01, 0.96) = 0.18461
        • Default: Clamp(0.1923 * 0.5, 0.01, 0.5) = 0.09615

      • Second Function:
        csharp

        MBMath.ClampFloat((float)50 / 250 * difficultyModifier, 0f, 1f);

        • VeryEasy: Clamp(0.2 * 0.7, 0, 1) = 0.14
        • Easy: Clamp(0.2 * 0.85, 0, 1) = 0.17
        • Realistic: Clamp(0.2 * 1, 0, 1) = 0.2
        • Default: Clamp(0.2 * 1, 0, 1) = 0.2

      For relevantSkillLevel = 330:

      • First Function:
        csharp

        MBMath.ClampFloat((float)330 / 260 * difficultyModifier, 0.01f, difficultyModifier);

        • VeryEasy: Clamp(1.2692 * 0.1, 0.01, 0.1) = 0.1
        • Easy: Clamp(1.2692 * 0.32, 0.01, 0.32) = 0.32
        • Realistic: Clamp(1.2692 * 0.96, 0.01, 0.96) = 0.96
        • Default: Clamp(1.2692 * 0.5, 0.01, 0.5) = 0.5

      • Second Function:
        csharp

        MBMath.ClampFloat((float)330 / 250 * difficultyModifier, 0f, 1f);

        • VeryEasy: Clamp(1.32 * 0.7, 0, 1) = 1
        • Easy: Clamp(1.32 * 0.85, 0, 1) = 1
        • Realistic: Clamp(1.32 * 1, 0, 1) = 1
        • Default: Clamp(1.32 * 1, 0, 1) = 1

      For relevantSkillLevel = 260:

      • First Function:
        csharp

        MBMath.ClampFloat((float)260 / 260 * difficultyModifier, 0.01f, difficultyModifier);

        • VeryEasy: Clamp(1 * 0.1, 0.01, 0.1) = 0.1
        • Easy: Clamp(1 * 0.32, 0.01, 0.32) = 0.32
        • Realistic: Clamp(1 * 0.96, 0.01, 0.96) = 0.96
        • Default: Clamp(1 * 0.5, 0.01, 0.5) = 0.5

      • Second Function:
        csharp

        MBMath.ClampFloat((float)260 / 250 * difficultyModifier, 0f, 1f);

        • VeryEasy: Clamp(1.04 * 0.7, 0, 1) = 0.7 (capped at 1)
        • Easy: Clamp(1.04 * 0.85, 0, 1) = 0.85 (capped at 1)
        • Realistic: Clamp(1.04 * 1, 0, 1) = 1 (capped at 1)
        • Default: Clamp(1.04 * 1, 0, 1) = 1 (capped at 1)

      Summary:

      • First Function: The output varies significantly with relevantSkillLevel and is further adjusted based on the difficultyModifier. The clamp ensures that the result stays within a specific range relative to the difficulty.
      • Second Function: This function normalizes the skill level effect to a 1.0 basis and then adjusts based on the difficultyModifier. It's more straightforward in scaling the effect of skill levels, capping at 1 for higher skill levels regardless of the difficulty setting.
      These calculations demonstrate how each function scales with skill level and difficulty modifier, impacting gameplay mechanics such as task difficulty, success rates, or experience gain rates differently.
    2. irulannaba
      irulannaba
      • supporter
      • 35 kudos
      Anyway it means for this mod the different of skill by the AI would be much visible, ensuring each tier of troops are always guarantee better than their lower tier while for RBM the different in skill is much more uniform, ensuring a comparable skill for each unit, but it also means that for each faction the different is more on their armor and weapon rather than their skill level which is why RBM put emphasize more on their weapon and armor adjustment.

      You also feels the difficulty spike much more pronounce in this mod, but it's generally easier unless you plays at realistic settings and in RBM they raise the bar for lower difficulty which means you gonna feel the grind more at lower level as you should, but the difficulty gonna be much more consistent through out each difficulty settings.

      what happen if you use both? well you can be sure that higher tier unit is guaranteed to be better than their lower tier exponentially since you also use RBM weapon and armor adjustment. for me this means that it puts more emphasize on reaching the highest tier troops as much as possible,  and it can snowball really fast based on the quality of troops.

      To each their own, but if you use RBM troop overhaul and DRM which relies only on RBM adjustment you may want to remove this mod since it breaks the troop balance that they're based on.

      But if you use other mod that have compatibility for both and they're only adjust their armor and weapon based on RBM you can use this mod, and I even go as far as this would be generally more advisable since the author usually creates their troops on vanilla, then adapting to RBM values, thus it preserves the author intended balance. But then again, that is ONLY if the author did a good job spending hours balancing each troops properly based on their skill level, weapon, and armor. 

      Thanks for reading my quick analysis of this mod, feel free to correct me if I'm wrong, since english is not my first language, there might be some ambiguous word, sorry for that
    3. MacCarell
      MacCarell
      • supporter
      • 4 kudos
      That's a pretty intense breakdown. I didn't realize RBM touched this but I'm not surprised.

      Anway, my goal was to make AI more effective in a very simple way just based on the vanilla implementation. I used it in my playthroughs and it felt better for me.

      I don't use RBM but I imagine if you are going to use both mods then this one should be prioritized otherwise mine won't do anything. If they changed the difficulty modifiers then that would have an effect on my function as well.
      Not really sure what happens when two Harmony patches Postfix the same method, but since mine returns false I assume that means that no other Postfixes would get triggered afterwards.
  4. ganix15
    ganix15
    • member
    • 0 kudos
    That mod increases stats related to AI skills? RBM increases damage based on skill level, is that the case? Or just increases AI behaviour and moving speed?
    1. MacCarell
      MacCarell
      • supporter
      • 4 kudos
      Basically all NPC hit chances, block chances, damage, and probably some other things like target acquisition are determined by (lvl / max level). By decreasing max level in the calculation they just get a very general buff across the board. I'm not exhaustively sure of everything it determines though.
  5. rimpshrimp
    rimpshrimp
    • premium
    • 1 kudos
    Is it possible to tune to a lower maximum level. If 260 is 50% is is possible to tune to around 66% almost double starting prof, so the value would be around 150 to 160?
    1. MacCarell
      MacCarell
      • supporter
      • 4 kudos
      It's possible but not something I'm interested in doing. The source code is on Github linked in the description if you're interested in learning how to do that yourself
  6. aceboy21
    aceboy21
    • premium
    • 0 kudos
    Can anyone confirm compatibility with 1.2.7?  Thanks.
    1. MacCarell
      MacCarell
      • supporter
      • 4 kudos
      To be honest you're better off just plopping the mod in your list and trying to play the game.
      It's not going to break your save or anything.
      If it works it works, you'll know pretty quick.

      I have not tested or played Bannerlord recently but I kinda doubt this mod will ever break.
    2. rimpshrimp
      rimpshrimp
      • premium
      • 1 kudos
      Yes. WORKING ON 1.2.7
      It works. I'm running it with Warbandlord, BEST combat mod, and RBM.
  7. Sompari
    Sompari
    • supporter
    • 1 kudos
    Does this mod increase movement speed of AI or what? They run much faster now even with shields.
    1. MacCarell
      MacCarell
      • supporter
      • 4 kudos
      It should, since running speed = some form of (Athletics Lvl) / (Max Athletics Lvl), and this mod decreases the value for (Max Athletics Lvl) as well as for every other stat.

      As for how much their speed increases it depends on the specific troop and the difficulty you're playing on.
  8. RusskyGoKu
    RusskyGoKu
    • member
    • 0 kudos
    Does this work with Warlords Battlefield and RBM?
    1. MacCarell
      MacCarell
      • supporter
      • 4 kudos
      It should. At the very least it's not gonna break anything.

      Only case it wouldn't work is if TaleWorlds updates the specific function I override by changing its parameters or intended result.
  9. rimpshrimp
    rimpshrimp
    • premium
    • 1 kudos
    Whatever you did troops seem more aware, and its the little things like turning around to the player even when occupied, and pursuing with the shield held up, and being better fighters. Working on 1.1.5. I'm curious what exactly did you do to tune the ai
    1. MacCarell
      MacCarell
      • supporter
      • 4 kudos
      As noted in the description it was a very lightweight patch. Take a look at SimpleAIBoost/dev/aiboost/Patches/Patches.cs at main · mrj760/SimpleAIBoost · GitHub if you're curious. The function overrides the vanilla one `CalculateAILevel` and does nearly the same thing but uses 260 instead of 350 as the max level in the calculation.
  10. feelingcold
    feelingcold
    • member
    • 0 kudos
    questions

    works with rbm?
    is there a option to turn off ai boost only our troops boost?
    1. MacCarell
      MacCarell
      • supporter
      • 4 kudos
      Yes it works with RBM. At the very least most of it. I didn't see anything in their code that affects the same function. To be safe just load this after theirs and/or turn on their vanilla block/parry/attack option.

      And no, this affects all troops.
  11. cantung
    cantung
    • supporter
    • 0 kudos
    Artificial Intelligence