learning damage bonuses

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • PowerDiver
    Prophet
    • Mar 2008
    • 2820

    learning damage bonuses

    Consider the simple case where a char with strong pseudo is wielding a good dagger (1d4). Suppose further that no other items that could add a damage bonus are wielded. After a few hits, if you know the foes hitpoints and you watch the monster health bar you can guess pretty accurately what the bonus is. If you kill a dragon, stoically count your hits and make sure none are good [or adjust if unluckily you get one] that's generally enough.

    I believe that tedious counting and arithmetic should be done by the program, not the player.

    How should the code be set up to figure out the bonus? Should one assume the char knows the exact damage done, so that a hit doing 7 points with a (4d4) weapon guarantees that the total bonus lies between +3 and -9? Should it only be based on the monster health bars? How should the estimate be presented?
  • Mangojuice
    Z+Angband Maintainer
    • Jun 2008
    • 318

    #2
    Originally posted by PowerDiver
    Consider the simple case where a char with strong pseudo is wielding a good dagger (1d4). Suppose further that no other items that could add a damage bonus are wielded. After a few hits, if you know the foes hitpoints and you watch the monster health bar you can guess pretty accurately what the bonus is. If you kill a dragon, stoically count your hits and make sure none are good [or adjust if unluckily you get one] that's generally enough.

    I believe that tedious counting and arithmetic should be done by the program, not the player.

    How should the code be set up to figure out the bonus? Should one assume the char knows the exact damage done, so that a hit doing 7 points with a (4d4) weapon guarantees that the total bonus lies between +3 and -9? Should it only be based on the monster health bars? How should the estimate be presented?
    There's a lot of complicating issues that make this really difficult. In fact, I challenge you to figure out the damage bonus of a weapon manually while not altering gameplay (e.g. fighting one monster type over and over when you wouldn't normally do so) so as to learn better.

    Here are the complications I see:

    1. Players may not know the life ratings of monsters they are fighting.
    2. Even if they do, the HPs are random.
    3. Calculating over multiple hits is complicated by monsters regenerating or healing.
    4. IIRC the monster's AC can also affect the damage it takes.
    5. Critical hits, sneak attacks, temporary player status effects, strength, dexterity all can affect damage.
    6. Obviously such a system, if it's worth bothering with, ought to work not only for strong pseudo-id characters with {good} weapons, and then there's unknown damage-affecting special powers to worry about.
    7. The life meter is somewhat imprecise.

    So I think that the learning, if implemented, ought to be simulated: perhaps, you get a feel for the quality (average/good/excellent) just by owning the object, but you will gradually learn the bonuses of the object (though not any hidden powers) by using it to strike enough blows.
    -----------------------------------------
    Z+Angband: A Zangband evolution
    http://tinyurl.com/5pq2bd

    Comment

    • PowerDiver
      Prophet
      • Mar 2008
      • 2820

      #3
      Originally posted by Mangojuice
      In fact, I challenge you to figure out the damage bonus of a weapon manually while not altering gameplay.

      ...

      you will gradually learn the bonuses of the object (though not any hidden powers) by using it to strike enough blows.
      There is no need for a challenge, I do it all the time. I pay attention until it gets too annoying, and I am generally right maybe +/- 1 [except when I forget to account for the str bonus ].

      Would you please give me a specific proposal about how to do "gradual learning"?

      Simply wait until the sample std deviation of the avg damage of that many hits is below .5?

      Comment

      • PowerDiver
        Prophet
        • Mar 2008
        • 2820

        #4
        Originally posted by Mangojuice
        7. The life meter is somewhat imprecise..
        The life meter is precise. N *'s means that the current hitpoints are less than fullhp times 10 / N, except for full hp which is not 11 *'s.

        E.g., I just picked up a good shortbow. Using avg ammo, my first shot on Grip dropped him to 7 *'s. My second shot dropped him to 1 *. At this point, I knew *for sure* that my shortbow was +3 or +4. That info should be presented when I inspect the bow. More importantly it should be available if I choose to squelch the bow.

        Frankly, I don't see the point of hiding the damage bonus. However, I am resigned to the fact that the community sees things differently. I am interested in any suggestions, even if it is only to see what argument I use against them.

        Comment

        • Nick
          Vanilla maintainer
          • Apr 2007
          • 9637

          #5
          Originally posted by PowerDiver
          How should the estimate be presented?
          It seems to me that the natural place to present this kind of info is from the 'I' command. Some variants have a calculation of average damage here; for example, FA would show something like this:
          Code:
          Wielding it you would have 3 blows and do an average damage per blow of 14 against all monsters.  
          Your + to-hit would be 5.
          This information has criticals rolled into it, but I'll ignore that for now.

          It seems that there are two obvious ways to present this sort of information here.
          1. Just show it - so your bow would have something like "it's + to-dam is 3-4";
          2. Roll the max and min values into the average calculation, so it says something like "an average damage of 12-16 against all monsters", where the 12 is based on the lowest estimate of the bonus and the 16 is based on the highest estimate.


          Alternatively, you could do a more direct method of just keeping a list of the last 10 or 20 damaging blows with the weapon, and quote an average of that for the average damage (I do this for druid blows in FA).
          Last edited by Nick; December 5, 2008, 11:06.
          One for the Dark Lord on his dark throne
          In the Land of Mordor where the Shadows lie.

          Comment

          • Big Al
            Swordsman
            • Apr 2007
            • 327

            #6
            As Eddie demonstrates, it's quite possible to figure out this information by hand, so you might as well give it to the player after some amount of time. Sure, you could figure it out by hand but that hardly sounds fun; this is a game so anything that increases the enjoyment of the game should be considered.

            I would think that an easy solution would be to just reveal the +to-dam after some number of uses of that weapon (say, a random number between 20 and 40?). It would quite a nightmare for the computer to try to figure out all the ranges for weapons and keep track of everything. Say if you had an unidentified ring of +damage, while firing unidentified arrows from an unidentified bow. Using a few different combinations of equipment, you might be able to figure out all the values, but it wouldn't be easy for the computer. If you just reveal the +dam after some number of uses, it might make the game a bit easier, but I don't think that that's the end of the world, and would be more realistic.

            Consider revealing the +ac to armour if you've been hit x number of times for consistency? Though, I don't really like the idea of encouraging the player to rest next to some weak monster for a lot of turns just to id stuff. I dunno.
            Come play Metroplexity!
            Un, V MX H- D c-- f- PV s- d+ P++ M+
            c-- S I++ So+ B+ ac- !GHB SQ RQ+ V+

            Comment

            • buzzkill
              Prophet
              • May 2008
              • 2939

              #7
              Originally posted by Big Al
              I would think that an easy solution would be to just reveal the +to-dam after some number of uses of that weapon (say, a random number between 20 and 40?). It would quite a nightmare for the computer to try to figure out all the ranges for weapons and keep track of everything. Say if you had an unidentified ring of +damage, while firing unidentified arrows from an unidentified bow. Using a few different combinations of equipment, you might be able to figure out all the values, but it wouldn't be easy for the computer. If you just reveal the +dam after some number of uses, it might make the game a bit easier, but I don't think that that's the end of the world, and would be more realistic.
              I like it. Start out with pseudo ID, then give more information with use. This info should come fairly quickly with just a single unknown item being used. With multiple unknown items, just have it take longer to ID each. Wielding items with conflicting modifiers (good and cursed) would render any ID beyond pseudo nearly impossible.

              To get more complicated... base the time it takes to ID on WIS/INT, class level, and/or class vs. item type (fighters quicker to ID swords, thieves with daggers, mages with staffs, and so on)
              www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012.
              My banding life on Buzzkill's ladder.

              Comment

              • Mangojuice
                Z+Angband Maintainer
                • Jun 2008
                • 318

                #8
                Originally posted by PowerDiver
                There is no need for a challenge, I do it all the time. I pay attention until it gets too annoying, and I am generally right maybe +/- 1 [except when I forget to account for the str bonus ].

                Would you please give me a specific proposal about how to do "gradual learning"?

                Simply wait until the sample std deviation of the avg damage of that many hits is below .5?
                Simply wait until you have struck, say, (85 - level) blows. Simulated, instead of precise. You could learn it by hand faster than that, maybe, in some circumstances.

                Re: the life meter: Your example doesn't impress me because Grip is a unique monster, possibly the *very* best in the game for this purpose. Clearly monsters with fixed life ratings are better candidates for testing weapons with unknown bonuses against. Even monsters with fixed ratings, though, can be tough to use for this. A * represents 10% of the monster's hit points, but a hit that knocks off a * may have done as little as 1 damage and as much as just under 20% of the monster's hit points. You get a little better information if the monster is fully healed before your hit, but the range is still [10%, 20%). For Grip, this would be 3-4 hp... but for Mughash, it would be 15-29 hp. For something with a non-fixed amount of HP, say, an Uruk, the amount would be anywhere from 1-15 hp; for a tougher monster, say, a Cloud Giant, the range would be 4-139 hp. It's very unlikely that 4 damage would knock a star off a cloud giant, but even if you stick to relatively likely values, you'd get a range like 30-86, still not much help.
                Last edited by Mangojuice; December 5, 2008, 16:10.
                -----------------------------------------
                Z+Angband: A Zangband evolution
                http://tinyurl.com/5pq2bd

                Comment

                • PowerDiver
                  Prophet
                  • Mar 2008
                  • 2820

                  #9
                  Hey guys, I would really like *specific* proposals. Let me summarize badly, and you can correct me.

                  First off, none of you believe in statistics. You only want me to print 100% learned knowledge, rather than best guesses. Let me reiterate, as someone who actually does this, that one can make a very good guess a whole lot faster than you are suggesting. You do everything with averages and take votes and see who wins. E.g. fighting a 4d8 monster with a 2d4 weapon that takes 3 hits to kill, you get a vote of {+2 to +4}. For simplicity you can count that as +3 and average these values for an excellent estimate in not too long. You can do better/faster if you watch the health *s on every hit as you go. Also, the wise player searches out dragons for other reasons, and they all have fixed hp. Kill just one dragon, and your estimate is usually accurate to within +/- 1 just counting total hits, and it can be more accurate if you watch every *.

                  Nick's approach comes down to giving the player access to his precise damage rolls. Unfortunately, for a 4d5 weapon, it will take on average nearly 1000 hits to hit both extremes, but at least it will be down to a range like +2 to +6 pretty quickly and the player will "know" it is most likely +4, just with a messy description.

                  Mangojuice wants me to base everything off of health stars. That's more annoying to code and slows the process compared to exact values, but is still doable. I find it most inelegant, and am hoping others prefer something else, but it's better than nothing.

                  I keep getting people telling me to "learn it gradually", but the question is how? If you will have exact knowledge after 40 hits, what should you know after 20 hits? Where does the 40 number come from?

                  Here's another question. You get it down to +3 to +4 with 10,000 to 1 odds that it is +3. Do you still output (+3 to +4)? As someone who believes in statistics, I would prefer (+3.0001) or better yet just tell the exact answer once the odds are 10 to 1 or better.

                  Comment

                  • camlost
                    Sangband 1.x Maintainer
                    • Apr 2007
                    • 523

                    #10
                    Of course, the problem is that it's relatively hard to code due to the large number of variables. Plus, at some point there is a cutoff where you have to decide to just say what it is. Science does this all the time, frequently using a 95% cutoff. Angband likes to cut things off at 95/5% all the time, so that seems like a good choice. Report all the possible integers within a 95% confidence interval.

                    I would go off the raw damage. Stars is a really obnoxious abstraction. I'd rather artificially slow down the learning to approximate using stars rather than code that bit (personally). Also, it seems unnecessary; this might use information that is easily accessible, but that is ok to my mind.

                    I very much approve of the idea of gradual learning of items abilities.
                    a chunk of Bronze {These look tastier than they are. !E}
                    3 blank Parchments (Vellum) {No french novels please.}

                    Comment

                    • Nick
                      Vanilla maintainer
                      • Apr 2007
                      • 9637

                      #11
                      Originally posted by PowerDiver
                      Hey guys, I would really like *specific* proposals. Let me summarize badly, and you can correct me.

                      First off, none of you believe in statistics.
                      Well, I'll correct you on this for a start

                      Nick's approach comes down to giving the player access to his precise damage rolls. Unfortunately, for a 4d5 weapon, it will take on average nearly 1000 hits to hit both extremes, but at least it will be down to a range like +2 to +6 pretty quickly and the player will "know" it is most likely +4, just with a messy description.
                      I was only really trying to answer the 'how to display' question, and chiefly from a UI point of view. My suggestion is to put the info in the 'I' display rather than clutter the one-line item description. What you display there is a matter of quasi-religious preference

                      Here's another question. You get it down to +3 to +4 with 10,000 to 1 odds that it is +3. Do you still output (+3 to +4)? As someone who believes in statistics, I would prefer (+3.0001) or better yet just tell the exact answer once the odds are 10 to 1 or better.
                      Well, there is an underlying exact value here, which the player is approximating by repeated experiments. I'd be happy with camlost's 95% probability - although if you really believe in statistics you could go nuts and give a sample mean and standard deviation.

                      On the other hand, you could take the monster memory approach, and just give the exact bonuses after a (variable dependent on whatever you like) number of hits. This actually seems moderately sensible combined with instant pseudo-ID - you get an immediate feeling for how good your weapon is, and then you go and test it out to get a better idea.

                      In fact, and without thinking it through at all, my first reaction is that maybe magical ID could be removed altogether and replaced with this type of thing, which I guess is what UnAndrew has been trying to do all along. Hmmm.
                      One for the Dark Lord on his dark throne
                      In the Land of Mordor where the Shadows lie.

                      Comment

                      • PowerDiver
                        Prophet
                        • Mar 2008
                        • 2820

                        #12
                        Originally posted by Nick
                        Well, there is an underlying exact value here, which the player is approximating by repeated experiments. I'd be happy with camlost's 95% probability - although if you really believe in statistics you could go nuts and give a sample mean and standard deviation.
                        I presume that I am a true believer, but what I'd use is a dagger(1d4)(+3?,+4?) where the ?s mean that the value is a best guess so far, and has certainty less than some amount like the suggested 95%. When you hit 95%, make it object_known even if your estimate is off. "You get a lucky critical in learning -- more" Extra statistics could be available through the 'I' screen.

                        However, in order to get there, you have to model how you receive and process information. By far the cleanest method is to use the actual damage inflicted, which generalizes immediately to learning +hit, and can be generalized to +ac if you take the right viewpoint. For the confidence intervals, you need to sum up the variances of your attacks as well as the variance of the monster hps you face and IMO that should be acceptable for estimating the sample standard deviation on damage done.

                        OTOH, there is a longstanding tradition that giving the exact values is cheating, and should only be done in wizard mode. If someone could come up with a good specific alternative method of gradual learning, I'd be happy to implement it to avoid giving the oldtimers fits. But it's got to be more reasonable than taking 40 hits to learn a 1d4 weapon which is absurdly pessimistic, and it's got to specify exactly how much info is known after say 4 hits.

                        In game turns, IMO the char should learn much much faster, because he should be able to tell the difference between a good hit and a bad hit, irrespective of total damage, so a single good hit of 5 points with a 1d4 dagger should immediately mean +1 or +2, and a single bad hit of 5 points should mean +3 or +4, or something to that effect. I know I'm off alone in my own private universe here, but those suggestions of requiring huge numbers of hits make me want to vent.

                        Comment

                        • Nick
                          Vanilla maintainer
                          • Apr 2007
                          • 9637

                          #13
                          Originally posted by PowerDiver
                          In game turns, IMO the char should learn much much faster, because he should be able to tell the difference between a good hit and a bad hit, irrespective of total damage, so a single good hit of 5 points with a 1d4 dagger should immediately mean +1 or +2, and a single bad hit of 5 points should mean +3 or +4, or something to that effect. I know I'm off alone in my own private universe here, but those suggestions of requiring huge numbers of hits make me want to vent.
                          Here's a possible simple means of mimicking the statistical analysis. Have a set number of points needed to determine the to-dam bonus - variable on dice (so a 1d4 weapon needs less points than a 4d5). A hit at the extremes of the damage range gives more points than a hit in the middle of the range. Once you have enough points you learn the bonus. This adapts nicely to criticals, too, since messages already indicate how good a critical is. Should be fairly straightforward to implement, too.
                          One for the Dark Lord on his dark throne
                          In the Land of Mordor where the Shadows lie.

                          Comment

                          • Slonk
                            Rookie
                            • Sep 2007
                            • 18

                            #14
                            Not to totally derail the thread, buy IIRC, EyAngband has coding that ID's wielded items after a certain amount of use. I'm not quite sure, but I think that turns resting do not help in this regard. I really liked that feature, as it meant I didn't have to waste ID on (good) stuff that was an obvious upgrade for me.

                            Comment

                            • Mangojuice
                              Z+Angband Maintainer
                              • Jun 2008
                              • 318

                              #15
                              Originally posted by PowerDiver
                              Hey guys, I would really like *specific* proposals. Let me summarize badly, and you can correct me.

                              Mangojuice wants me to base everything off of health stars. That's more annoying to code and slows the process compared to exact values, but is still doable. I find it most inelegant, and am hoping others prefer something else, but it's better than nothing.
                              No, I don't. I'm criticizing the idea that you can learn an object's exact bonsus with the information actually available to the user. All you have to go on is health stars, and it doesn't help very much.

                              I keep getting people telling me to "learn it gradually", but the question is how? If you will have exact knowledge after 40 hits, what should you know after 20 hits? Where does the 40 number come from?
                              I say keep it simple. After 40 hits (or however many) you get to learn the exact bonuses; before that you know nothing, except its pseudo-id level if you knew that.

                              But I see the goal here as fairly minimal. It's not really the point of this to deemphasize ID, it's to have a system to encourage people like PowerDiver to put down the pencil and just enjoy the game. I think if it was relatively quick to learn an object's bonuses by using it, he wouldn't bother with the sophisticated math, even if doing so would allow him to be a little faster at it.

                              Obviously, 40 is arbitrary; the number shouldn't be too big, but other than that it doesn't much matter. I suppose warrior-types should be a bit faster at it than others, though, and it could depend on perception somewhat.

                              EDIT: 40 is probably a bit high in this system. I would say, for a xdy weapon, you should take about O(x y^1.5) hits, say, 1+(x*(y^1.5))/4 hits. My thinking is that if we aren't going to actually keep track of hits and really analyze them, we should recognize that the worst kind of dice to learn are ones like 1d20 (23 hits) since the distribution is flat; ones like 4d4 (9 hits) are much better since you are much more likely to be getting hits of average quality. This would be for a Warrior; a Mage might take 4 times as long.
                              Last edited by Mangojuice; December 6, 2008, 19:24.
                              -----------------------------------------
                              Z+Angband: A Zangband evolution
                              http://tinyurl.com/5pq2bd

                              Comment

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