[Feature Request] Learned Slays

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • s0be
    Apprentice
    • Jan 2008
    • 96

    [Feature Request] Learned Slays

    Well, I've been looking at the number of monster kills my character has, and noticed that I've killed a lot of things. This lead me to thinking "man, you'd think I'd start getting better at killing these things". So here's my idea:

    1-1000 kills of a specific monster each adds 0.1% bonus to damage. Basically, this means that once you've killed 1000 of something, you do double damage.
    1001-1000 kills each add 0.01% This means 10000 kills of a monster would yield you triple damage.

    My rationale is, at least in my character (who I have done a TONNE of farming with), very few monsters are even close to 1000 kills, and none are over 4000. Based on that, these counts sound reasonable. It wouldn't make uniques any easier, just monsters you've already killed once or twice.

    For a more computationally complex equation, I was thinking an logrithmic curve that starts at maybe 0.8 for 0 (so the first time you battle something, you have a small penalty) then at around 1000 you get to 2, and so forth. If this was the case, you'd either want to not apply the factor to Uniques, or scale their HP accordingly (as you only face them once, you'd always do 80% damage).

    To lower the overhead, a lookup table could be used for values less than say, 1000, then after that, use the log calculation.

    The idea behind the logarithmic curve is that it more accurately represents natural learning. This could be something you could toggle during birth options.

    It was my thinking that it would *not* apply across similar creatures, as a Blue Dragon might have different Weak spots than a Red Dragon.

    I'll attack implementing this if there's interest.
  • Djabanete
    Knight
    • Apr 2007
    • 576

    #2
    It would make the game a lot more interesting if monsters got *harder* to kill rather than easier.

    Comment

    • s0be
      Apprentice
      • Jan 2008
      • 96

      #3
      Originally posted by Djabanete
      It would make the game a lot more interesting if monsters got *harder* to kill rather than easier.
      That would add a whole new strategy for the slow divers.(me) That might get real interesting. Suddenly that pack of orcs you run into at 3000' can really school ya.

      Comment

      • Djabanete
        Knight
        • Apr 2007
        • 576

        #4
        Yeah, it's not really justified from a realism perspective, but in terms of gameplay I think making monsters gradually harder is a better idea than making monsters gradually easier.

        Comment

        • will_asher
          DaJAngband Maintainer
          • Apr 2007
          • 1124

          #5
          Personally, I think monsters should have a minimum and maximum level they can appear on, in addition to a native level, so that you just stop seeing the easy monsters when you get deep.
          Will_Asher
          aka LibraryAdventurer

          My old variant DaJAngband:
          http://sites.google.com/site/dajangbandwebsite/home (defunct and so old it's forked from Angband 3.1.0 -I think- but it's probably playable...)

          Comment

          • s0be
            Apprentice
            • Jan 2008
            • 96

            #6
            Perhaps a combination of all of these. I don't think min/max level ranges would be a good idea, but perhaps something like a bell curve centered around the 'native' level that controls the probabilities of the monster being on the level. This could be paired up with a function that takes those probabilities and adjusts the strength of the [non unique] monsters to where they are out of depth. This way, if you run into a troll that's native at level 12, on level 9, it'd be some portion weaker (not appreciable), or on 15, it'd be some portion stronger. I'd say that it should NOT be a huge difference, but as you get deeper, the trolls you run into should get stronger. This would likely balance out the 'learned slays' I proposed in my first post. The only thing left to tease players deeper is to tie the drops to the proportional strengths of the monsters.(maybe adjust the monster level to be the average of the monster's native level and their current level? or 1/3rd the difference between the two or something?, to go along with the average of the two already done)

            So basically:
            Troll, Native 10
            Found on level 5 is weaker, has an adjusted monster level of 7, meaning his drop is at level 6.
            Found on level 20 is stronger, has an adjusted monster level of 15, meaning his drop level would be 17.

            You would probably want to clamp that adjustment to 5 or so, so a level 1 monster on Dlvl 100 isn't dropping at level 66 but at level 53.

            Comment

            • Pete Mack
              Prophet
              • Apr 2007
              • 6883

              #7
              Originally posted by s0be
              Perhaps a combination of all of these. I don't think min/max level ranges would be a good idea, but perhaps something like a bell curve centered around the 'native' level that controls the probabilities of the monster being on the level. This could be paired up with a function that takes those probabilities and adjusts the strength of the [non unique] monsters to where they are out of depth. This way, if you run into a troll that's native at level 12, on level 9, it'd be some portion weaker (not appreciable), or on 15, it'd be some portion stronger. I'd say that it should NOT be a huge difference, but as you get deeper, the trolls you run into should get stronger. This would likely balance out the 'learned slays' I proposed in my first post. The only thing left to tease players deeper is to tie the drops to the proportional strengths of the monsters.(maybe adjust the monster level to be the average of the monster's native level and their current level? or 1/3rd the difference between the two or something?, to go along with the average of the two already done)
              Just be aware--this kind of leveling is done in ToME, and there is nothing more frustrating than running around at dl 60 killing orcs that (a) move at speed +10, (b) are level 50 or so, and (c) still give you only a handful of EXP points. They are not really dangerous, they are just in the way, a whole lot.

              Comment

              • z118
                Apprentice
                • Jan 2008
                • 61

                #8
                Originally posted by will_asher
                Personally, I think monsters should have a minimum and maximum level they can appear on, in addition to a native level, so that you just stop seeing the easy monsters when you get deep.
                I totally agree with this. It always strikes me as just plain silly to run into a scruffy looking hobbit or a small kobold on level 90'. What the heck are they doing down there? Not only does it not make sense, but at that point, they really add nothing whatsoever to the game anyway.

                Comment

                • s0be
                  Apprentice
                  • Jan 2008
                  • 96

                  #9
                  Originally posted by z118
                  I totally agree with this. It always strikes me as just plain silly to run into a scruffy looking hobbit or a small kobold on level 90'. What the heck are they doing down there? Not only does it not make sense, but at that point, they really add nothing whatsoever to the game anyway.
                  Except lowering the average difficulty of the level they appear on. You have to remember, if all the monsters were generated at or near your current dlvl, 'diving' would require near perfect play.

                  The lower level monsters showing up at deeper depths make those levels doable.

                  As far as other variants doing the leveled monster thing. I had thought about that 'problem' and that's why I suggested clamping a monster's 'growth' to within 5 levels of their natural depth.

                  Comment

                  • z118
                    Apprentice
                    • Jan 2008
                    • 61

                    #10
                    Originally posted by s0be
                    Except lowering the average difficulty of the level they appear on. You have to remember, if all the monsters were generated at or near your current dlvl, 'diving' would require near perfect play.

                    The lower level monsters showing up at deeper depths make those levels doable.
                    I guess this makes sense. As usual, my comments are from almost completely a gameplay perspective without much insight into the inner mechanics of the game. And while I do think that there should be weaker monsters on any particular level, I do find it nonetheless silly to run into a scruffly looking hobbit on level 90. I think his description says he's looking for a pub... we he sure is looking in the wrong place that deep in the dungeon!

                    Maybe monsters shouldn't appear more than 50 levels deeper than their native depth, unless they appear in groups. Again, I'm not real familiar with the mechanics.

                    Comment

                    • Nick
                      Vanilla maintainer
                      • Apr 2007
                      • 9634

                      #11
                      Originally posted by z118
                      And while I do think that there should be weaker monsters on any particular level, I do find it nonetheless silly to run into a scruffly looking hobbit on level 90. I think his description says he's looking for a pub... we he sure is looking in the wrong place that deep in the dungeon!
                      Someone needs to get the balrogs their coffee
                      One for the Dark Lord on his dark throne
                      In the Land of Mordor where the Shadows lie.

                      Comment

                      • s0be
                        Apprentice
                        • Jan 2008
                        • 96

                        #12
                        Well, after reading these posts, I guess I'll take a stab at implementing this. The goal of this is not to increase or decrease the actual difficulty of the game, but add a small change to the strategies involved.

                        First, it would continue to reward you for all of the things you had killed in the past. This would add to the strategy that you would want to pay attention to what you're facing as you may be able to knock off some of them more quickly than others due to the bonuses. Also, there'd be a slight advantage to battling a given monster at level 6 than 5 as it'd drop slightly better $$.

                        Here's my basic plan:

                        it will be split into 3 separate patches.

                        Learned Slay:

                        I'm going to come up with a logarithmic growth function that starts at BASE_GROWTH (a compile time option that I'm going to test with 0.9 as it's initial value). This function is going to reach 2 at 1000 and 3 at around 10000. I'll also multiply it by BASE_GROWTH_FACTOR (another compile time option, defaulted to 1) so that, if we find that the 'boost' is too much, we can scale it down.

                        I plan on having the function use a lookup table for values 0-1000, and calculating for 1000+. This should minimize the additional CPU overhead for weaker systems.


                        Additional Control of Monster Depths:

                        I'm going to add, for beginning, a function that returns a curve similar to a bell distribution. Centered around a monster's 'level/depth'. My target for this function will be very low chances more than MAX_SHALLOW_DEPTH (which I'll default to 5) under the monster's natural depth. After the monster's natural depth, it will gradually decrease deeper than that. My target would be something like 99% decrease in probability at 99 levels deeper than the monster's natural level, with it being like a 33% decrease at 50 levels out of depth. I'm not sure how I'll implement this as I'd like it to be easily tunable, which probably means it's going to be a piecewise function centered around some constant. I'd like to discuss this part more with others who might have good ideas on the topic.


                        Scaled Monsters:

                        This will take how far a monster is out of depth, and scale the monster's strength to that depth. So if a monster is 3 levels deeper than it's natural depth, it would get 3% more HP, etc. I'm thinking that breath weapons, etc should scale less strongly (as they're already potentially devastating). This growth/penalty will be 'clamped' to something like a 5% difference maximum. This way, a Great Wyrm in a vault on level 5 is not a cake walk as it's sacrificing 60+% of it's HP, etc. Maybe monsters shallower than their native depth should not be penalized at all. Again, this is something I'd like more input on. The monster's ObGenLvl would be shifted slightly based on this too, so a level 5 monster at level 10 would have an ObGenLvl of floor((MonsterLevel + Dlvl)/2) or 7, in this example, with a max Shift of ObGenLvl of 5 or so. This would mean a monster generated 30 level deeper than their native level would drop based on it being 5 levels stronger than it's natural drop. This should help prevent scumming weak monsters at deep depths for artifacts. (If you allowed unlimited scaling, a _Clone + an orc in a room would allow you to generate a LOT of good drops at dLvl 90 or so.)

                        This 'scaling' would be based off of the already generated monsters. So you'd still have that Random HP for the monster, it'd just be +% or -%.

                        ============
                        My Justifications for these ideas (so people understand where I'm coming from):

                        Learned Slay: You kill a lot of one thing, you should become better at killing it.
                        Additional Control of Monster Depths: Monsters should be a LOT more likely to live around their comfortable depths.
                        Scaled Monsters: If a monster is willing to go deeper than it's native area, it is likely to be stronger, meaning it would also be carrying better stuff.

                        Does anyone have additional input/ideas before I attack this?

                        Comment

                        • Orillian
                          Scout
                          • Dec 2007
                          • 37

                          #13
                          I'll be watching this! I like the Monster depth and monster scaling changes your suggesting, the slays could be interesting, but I think I'd like them as a character birth option. JUST in case I don't want to use them. Sometimes you want the game to be harder.

                          O.

                          Comment

                          • s0be
                            Apprentice
                            • Jan 2008
                            • 96

                            #14
                            Originally posted by Orillian
                            I'll be watching this! I like the Monster depth and monster scaling changes your suggesting, the slays could be interesting, but I think I'd like them as a character birth option. JUST in case I don't want to use them. Sometimes you want the game to be harder.

                            O.
                            Yeah, I was planning on making these birth options.

                            Comment

                            • s0be
                              Apprentice
                              • Jan 2008
                              • 96

                              #15
                              Preliminary Patch for Learned Slays. This implements the linear growth slays as follows:

                              After all other damage is calculated (post weapon slay calculation) but before stunning, etc is calculated, it adjusts by 0.1% per kill 0-1000 and 0.01 for each additional kill beyond that. I have not clamped it, so if you kill 100,000 of something, you'll do 11x damage.

                              Now I'll look at a good 'controlled' multiplier function. Some logarithmic growth type of thing.

                              You can see it working in wizard mode as:

                              You do {adjusted damage}[{base damage}](out of {remaining hp}) damage

                              Code:
                              You hit the Cherub.
                              You do 64[63] (out of 221) damage.
                              You hit the Cherub.
                              You do 60[60] (out of 157) damage.
                              And I had killed 17 of those, which yields a roughly 1.7% bonus.
                              Attached Files

                              Comment

                              Working...
                              😀
                              😂
                              🥰
                              😘
                              🤢
                              😎
                              😞
                              😡
                              👍
                              👎