Attribute Potions

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Ighalli
    Scout
    • Oct 2017
    • 32

    #31
    I've opened a PR to change the stats from 3-18/220 to 1-40. There's no particular reason to keep the minimum of 3, if we're doing away with D&D conventions, though I doubt it will come into play very often.

    Comment

    • Derakon
      Prophet
      • Dec 2009
      • 9022

      #32
      I see you added entries for adj_mag_fail and adj_mag_stat, but wouldn't the other stat tables also need to be adjusted? What's your HP penalty if your CON is 1, for example?

      Comment

      • AnonymousHero
        Veteran
        • Jun 2007
        • 1393

        #33
        Originally posted by Ighalli
        I've opened a PR to change the stats from 3-18/220 to 1-40. There's no particular reason to keep the minimum of 3, if we're doing away with D&D conventions, though I doubt it will come into play very often.
        Hmm, that's interesting from a ToME2 perspective: In T2, this is purely a display option, but I suppose there have been a few tweaks in Angband since then that would necessitate actual code changes. (The "mixed" attribute potions being one of them.)

        I think I'll be removing the 18/xxx option too in T2 soon.

        There just isn't any point to keep the old system around. (I actually grew quite accustomed to it from playing Vanilla/Entro for a loooong time, but it's probably time for it to go.)

        Comment

        • Ighalli
          Scout
          • Oct 2017
          • 32

          #34
          Originally posted by Derakon
          I see you added entries for adj_mag_fail and adj_mag_stat, but wouldn't the other stat tables also need to be adjusted? What's your HP penalty if your CON is 1, for example?
          The diff of the relevant file is too big to display by default, but I set Con 1 to be -3.5 hp per level. Here is the line in question.

          Comment

          • takkaria
            Veteran
            • Apr 2007
            • 1951

            #35
            So when I tried this out in the dev branch some years ago (maybe 5?), people pointed out that when you switch from the current scheme to one where you basically move from 18/10 -> 18/20 -> 18/30, you spend a lot longer at the lower end of the 18/x stats and it takes a lot less time to go from 18/80 to 18/100.

            I reverted this change but not completely (by accident). The historic algorithm [1] gained 1/6 to 1/3 of of the distance to 18/100 between 18 and 18/98. The modern one [2] retains this behaviour between 18 and 18/90, but then moves straight to 18/100. I think it's worth thinking about the historic behaviour rather than the new one, because the idea was to make stat gain more marginal over time, relative to equipment bonuses. This is an interesting bit of design that deserves some consideration.

            You could preserve this by having fractional stats, so 11.3 or 18.3 or whatever. (I think maybe late Zang did this.) You can retain the increasingly marginal gains of stat potions while still removing the bizarre display, and without having to rejig the stat tables. Drinking a potion of stat gain at 18.0 will still on average take you to 20.6 and the next one to 22.6, while a +1 stat piece of equipment would move you from 18.0 to 19.0.

            Maybe the decimals feel too metric for Angband, which has always had a bit of an imperial units thing going on. Maybe stats could go up in increments of 1/3. Less clinical feeling than decimal places, maybe more in theme, but with similar functionality. Or you could keep the decimal representation behind the scenes but just show the whole numbers.

            The other option, which is removing the fractional component completely, decreases the early power of stat gain potions but increases their later power. At the moment the average progression from stat gain, starting at 18, is:

            0. 18
            1. 18/26
            2. 18/46
            3. 18/61
            4. 18/72
            5. 18/80
            6. 18/86
            7. 18/91
            8. 18/100 [3]

            (The historic algorithm had an extra three steps:

            8. 18/94
            9. 18/97
            10. 18/99
            11. 18/100)

            So with a simple linearisation that didn't adjust the stat tables, the power of stat gain at the beginning of the game would be less. However, at the end of stat gain, when it used to take 7 potions (and currently takes 4) to get from 18/80 to 18/100, it now takes 2. That's a big change!

            So I there would have to be some reassessing of the stat tables. Maybe the old 18 to 18/100 isn't 18 to 28, but 18 to 32 or 34. Compress the beginning of the range a bit, and stretch out 18/80 to 18/100 over 4 or 5 different increments.

            There are probably other things I've not thought about with this. But a simple linearisation is quite a major gameplay change and is worth looking at in more depth.

            [1] https://github.com/angband/angband/b...pells1.c#L1004
            [2] https://github.com/angband/angband/b.../player.c#L142
            [3] If you want to see how I worked these out, it's a Google Sheet: https://docs.google.com/spreadsheets...it?usp=sharing
            Last edited by takkaria; June 2, 2018, 00:44. Reason: It was wrong the first time
            takkaria whispers something about options. -more-

            Comment

            • Nick
              Vanilla maintainer
              • Apr 2007
              • 9647

              #36
              Originally posted by takkaria
              There are probably other things I've not thought about with this. But a simple linearisation is quite a major gameplay change and is worth looking at in more depth.
              Thanks for the detailed history.

              Now that this can of worms is open, I am going to open another one.

              My first thought was "why not just multiply all the stats by 10?"; so rather than 3 to 40, we would go from 30 to 400. Then I recalled an intention I had to try and make some of the calculations in the game simpler and more transparent.

              So I went and had a look at the various tables for things like effect of WIS on saving throw, and my next thought was "what if we could get rid of all those, and have simple relationships from the stats to all the things they depend on?".

              So (and here narrative catches up with reality) I am now wondering if this is a realistic aim. There are a great many little calculations in the game - class.txt, for example, is full of them - and they all form a massive web of interdependence. On thing that's clear from the class/magic branch process is that detail of things like exactly how much mana spells cost and what level they are available at and what their fail rate is like are critical to gameplay (mage Frost Bolt and necro Dispel Living, for example, are probably too much mana to be useful). Maybe Angband is now fundamentally a complex game, and simple, clean calculations as used to such great effect in Sil are simply too coarse-grained for Angband.

              So that's the "simpler" bit dismissed. As for "more transparent", I'm starting to wonder about that too. I've been on a drive to push stuff out to data files, and this has reached possibly ridiculous lengths now that there is an object_power.txt which basically contains the algorithm for calculating powers of objects (used for determining prices and level feelings, and in the randart algorithm). It seems unlikely that anyone is ever actually going to edit that for their own play, in which case what was the point?

              In summary, I think this entire post was a waste of time, but if it gives anyone an idea of something useful to the contribute to the discussion, please fire away
              One for the Dark Lord on his dark throne
              In the Land of Mordor where the Shadows lie.

              Comment

              • takkaria
                Veteran
                • Apr 2007
                • 1951

                #37
                Originally posted by Nick
                Maybe Angband is now fundamentally a complex game, and simple, clean calculations as used to such great effect in Sil are simply too coarse-grained for Angband.
                This is why I reverted the linearisation change I made
                takkaria whispers something about options. -more-

                Comment

                • Nick
                  Vanilla maintainer
                  • Apr 2007
                  • 9647

                  #38
                  Originally posted by takkaria
                  This is why I reverted the linearisation change I made
                  Yeah, I really probably should have just deleted that post, but I had spent too long thinking I was saying something useful...
                  One for the Dark Lord on his dark throne
                  In the Land of Mordor where the Shadows lie.

                  Comment

                  • Moving Pictures
                    Adept
                    • Mar 2018
                    • 191

                    #39
                    Originally posted by Ingwe Ingweron
                    It is a line-drawing problem. At what point is something a special trick or a silly hoop? Is it a special trick to read unid scrolls on stairs, so that @ has a convenient escape... .
                    Or if it's an ironman you read scrolls after clearing a level so if you hit deep descent, you're only really being pushed down four levels not five.

                    Comment

                    • Derakon
                      Prophet
                      • Dec 2009
                      • 9022

                      #40
                      Originally posted by Ighalli
                      The diff of the relevant file is too big to display by default, but I set Con 1 to be -3.5 hp per level. Here is the line in question.
                      Aha, GitHub deceived me. I apologize for having doubted you.

                      Comment

                      • fizzix
                        Prophet
                        • Aug 2009
                        • 3025

                        #41
                        I think trying to make the effects of stats on gameplay effects simple and transparent is going to be very difficult, and will probably sacrifice some significant amount of gameplay. Pretty much every major roguelike has very complicated calculations. The ones that get away with simple calculations do it by really simplifying. (Sil and Brogue come to mind here). These games do tend to be shorter overall, and extending Sil style gameplay to Angband is probably very difficult.

                        Other roguelikes have super complicated stats and effects (Tome, DCSS, and probably many others I haven't played) and they do fine. So I don't think this is a big turn-off. The important part is that the results of the complicated calculations should be made apparent to the player. We do this by displaying hit chance on monster recall screens, increased blows chance on weapon inspect screens, and damage boosts on device inspect screens. This is good, and we should keep things like these.

                        Fixing the scale from 3-40 or whatever is a good idea. If we are worried about a midgame effect on gameplay because you lose the stat gain boost after 18/00, then we can counteract that by making stat potions a bit more common, or more likely to drop in pairs, or whatever.

                        Comment

                        • wobbly
                          Prophet
                          • May 2012
                          • 2633

                          #42
                          Are Sil mechanics actually simpler then V? The stealth mechanics certainly aren't & it certainly worth considering making the V stealth mechanics more complicated like Sil (though teleports as usual would be a headache to balance for). The basic melee mechanics are "simple" in Sil in the sense you'd have an easier time doing them with pen & paper but you certainly have a much harder time comparing 2 weapons & having a good idea which to use without going up & hitting a bunch of stuff. Then when you start adding in the other modifiers: penalties for being surrounded, bonus for lights, bonus for bane, status effects, special abilities. I'm not convinced.

                          So what is actually complicated about V mechanics? I get the impression the code calculates to-hit in an overly convoluted way, but underneath that are the mechanics too complex, or are they actually too simple? I actually suspect it's the later. Angband has a lot of incredibly binary mechanics(like FA - on/off, alive or screwed). There's a fair argument that it's too often simplistic, rather then overly complicated.

                          Comment

                          • Ighalli
                            Scout
                            • Oct 2017
                            • 32

                            #43
                            Originally posted by takkaria
                            So when I tried this out in the dev branch some years ago (maybe 5?), people pointed out that when you switch from the current scheme to one where you basically move from 18/10 -> 18/20 -> 18/30, you spend a lot longer at the lower end of the 18/x stats and it takes a lot less time to go from 18/80 to 18/100.

                            ...

                            At the moment the average progression from stat gain, starting at 18, is:

                            0. 18
                            1. 18/26
                            2. 18/46
                            3. 18/61
                            4. 18/72
                            5. 18/80
                            6. 18/86
                            7. 18/91
                            8. 18/100 [3]

                            (The historic algorithm had an extra three steps:

                            8. 18/94
                            9. 18/97
                            10. 18/99
                            11. 18/100)

                            So with a simple linearisation that didn't adjust the stat tables, the power of stat gain at the beginning of the game would be less. However, at the end of stat gain, when it used to take 7 potions (and currently takes 4) to get from 18/80 to 18/100, it now takes 2. That's a big change!

                            So I there would have to be some reassessing of the stat tables. Maybe the old 18 to 18/100 isn't 18 to 28, but 18 to 32 or 34. Compress the beginning of the range a bit, and stretch out 18/80 to 18/100 over 4 or 5 different increments.
                            It looks to me that we can kind of eyeball it by making stat gain potions give 2 points of a stat until you get to 24 (18/60), and then they'd give just 1. We'd also have to make the new max stat into 29 if we want the same number of potions. Or we could make the final potion(s) have a failure chance to take effect. Of course, the stat interaction with items is not great around the 18/80 + item bonus territory, but the tables that use the stats to apply bonuses are rather coarse in any case, so these changes amount to edge cases, IMO.

                            Code:
                            Before	After	Before	After	Error
                            16	17	16	18	New way too good
                            18	~18/26	18	20	0.06 below average
                            18/26	~18/46	20	22	0.06 below average
                            18/46	~18/61	22	24	Accurate average
                            18/61	~18/72	24	25	Accurate average
                            18/72	~18/80	25	26	Good here
                            18/80	~18/86	26	27	New way a bit better
                            18/86	~18/91	27	28	Done 1 potion too soon?
                            18/91	18/100	28	29	Unless we extend the range by 1
                            It can be argued that this benefits low starting stats too strongly. I expect improving your dump stats from abysmal to good territory isn't all that important to preserve, but maybe it's a big change for folks who don't start with points in con.

                            Edits:
                            Originally posted by Nick
                            So I went and had a look at the various tables for things like effect of WIS on saving throw, and my next thought was "what if we could get rid of all those, and have simple relationships from the stats to all the things they depend on?".
                            The tables are quite ugly. I'd be happy to be rid of them and make the mechanics use the stats directly. I don't like having big jumps along with ranges that have no mechanical impact. But this is beyond the scope of stat representation, I think.

                            Originally posted by Derakon
                            Aha, GitHub deceived me. I apologize for having doubted you.
                            After you asked and I didn't see it in GitHub either, I actually panicked and thought somehow I had lost my changes. But the review is appreciated. I just discovered a bug in the blows calculations in my version, so more eyes are always welcome.
                            Last edited by Ighalli; June 2, 2018, 18:33.

                            Comment

                            • Pete Mack
                              Prophet
                              • Apr 2007
                              • 6883

                              #44
                              The current stat gain model has the following attributes:
                              * punishes mediocre and bad starting stats (11 and less), giving lousy character attributes, with long slow climb.
                              * gives a huge boost at 18/00, when next stat potion gives ~3 extra, and significant improvement to character attributes
                              * Generally gives diminishing returns above 18/60 when equipment is added in, except for CON (which is valuable to the end for most race/class combos.)

                              The above is why !Toughness is the most potentially valuable (as opposed to immediately valuable) stat swap potion. It also means that any roughly linear solution (including modifications like +2 stat gain up to some limit) will mean significant gameplay changes.
                              The origin of this is the roughly normal distribution of dice rolls for 3d6. (18 is much better than 10.5, and 3 is much worse.)

                              Comment

                              • Ingwe Ingweron
                                Veteran
                                • Jan 2009
                                • 2129

                                #45
                                In my opinion, the complexity of Angband with all its nuances, intricacies, and deep, deep, learning curve are one of the principle reasons for the longevity of the game and my continued interest in playing all these years. I still learn things I never knew, and this is a good thing. The current push to simplify and make things less opaque not only runs the risk of destroying much of the nostalgia and fond memories of this game, but the very fabric that makes the game worth coming back to again and again. Please, be very careful about these changes.
                                “We're more of the love, blood, and rhetoric school. Well, we can do you blood and love without the rhetoric, and we can do you blood and rhetoric without the love, and we can do you all three concurrent or consecutive. But we can't give you love and rhetoric without the blood. Blood is compulsory. They're all blood, you see.”
                                ― Tom Stoppard, Rosencrantz and Guildenstern are Dead

                                Comment

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