[Un] Race and class balancing

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Bandobras
    Knight
    • Apr 2007
    • 726

    [Un] Race and class balancing

    As you all know, UnAngband has a multitude of races and classes. They are not very well game-tested, so their stats are not well-balanced. I'd like to discuss some issues.

    In particular, after recent changes, Warriors in CVS have lower hitpoints than Artisans. Also, sums listed in comments for some races are no longer correct and they (and possibly some classes) are probably stat-wise unbalanced, and stats are very important in Un, because you cannot just max them all. Moreover, the very negative CON and SIZ for some races/classes is removed and the effects of CON/SIZ is changed, disrupting the delicate (Un)balance of stats, e.g. probably making raising both CON and SIZ equally wise strategy for all races and classes; also probably making it wise for all races and classes to put starting stat points into CON and SIZ, while before for some combos the points would have no immediate effect whatsoever; probably making the very high CON and SIZ of some races much more valuable and increases at the start more beneficial for them, because the stats are now far away from the regions where HP gains are small, etc.

    The "+ siz_bonus" line in the HP calculation seems strange, because then it is no longer the case that initial HP are equal to Hit Dice. I'm also not sure if doubling CON effect on HP with respect to SIZ is a good idea, because then CON is better than SIZ for almost all classes. This is not bad in itself, but thinking about the game seems to be much easier if the stats are roughly equivalent in usefulness averaged over all classes. Anyway, this decision requires heavy rebalancing in many places (e.g. SIZ item bonuses should be valued less than CON bonuses, CON table for HP bonus should be scaled down and SIZ table scaled up, etc.). The system before the last CVS changes was designed to mimic the old HP values --- even if it put both base HP and bonus HP under the same name as Hit Dice. The current system, after the recent CVS changes seems to result in much higher HP at high levels than before new races and SIZ were introduced.

    All this said, the system really needs rebalancing (preferably after play-testing) so it's nice it's changing, even if randomly. Eventually it will stabilize at something interesting (even if different from the old Un) for sure.
  • andrewdoull
    Unangband maintainer
    • Apr 2007
    • 872

    #2
    Originally posted by Bandobras
    As you all know, UnAngband has a multitude of races and classes. They are not very well game-tested, so their stats are not well-balanced. I'd like to discuss some issues.
    You'd mean you'd like to discuss the recent changes I made in CVS

    In particular, after recent changes, Warriors in CVS have lower hitpoints than Artisans. Also, sums listed in comments for some races are no longer correct and they (and possibly some classes) are probably stat-wise unbalanced, and stats are very important in Un, because you cannot just max them all. Moreover, the very negative CON and SIZ for some races/classes is removed and the effects of CON/SIZ is changed, disrupting the delicate (Un)balance of stats,
    The main reason I made these changes to start with is that it felt too hard with many race / class combinations to get a character with semi-adequate starting stats. I haven't gone to the same lengths as you did to balance them out however.

    e.g. probably making raising both CON and SIZ equally wise strategy for all races and classes; also probably making it wise for all races and classes to put starting stat points into CON and SIZ, while before for some combos the points would have no immediate effect whatsoever; probably making the very high CON and SIZ of some races much more valuable and increases at the start more beneficial for them, because the stats are now far away from the regions where HP gains are small, etc.
    Please note that CON now gives extra mana and is therefore more worthwhile than SIZ for casters.

    The "+ siz_bonus" line in the HP calculation seems strange, because then it is no longer the case that initial HP are equal to Hit Dice. I'm also not sure if doubling CON effect on HP with respect to SIZ is a good idea, because then CON is better than SIZ for almost all classes.
    But that's how hit dice used to work. Because you'd get maximum hit points from your first level, then an average of (max+1)/2 per level thereafter, CON was less effective than hit dice to start with, but immediately the CON bonus comes more effective than overall hit dice with each level gain.

    I believe I've actually halved the effects of SIZ, rather than doubling CON. I could be wrong here.

    If we apply the 'SIZ' modifies hit dice approach, than size should provide (approximately) twice as many starting hit points, than the bonus gained every level thereafter.

    Note that I've also modified the SIZ table so that the bonus hit points is approximately twice the old values.

    You're correct that I should change the 'displayed hit dice'.

    I'm actually tempted to go even further and have SIZ provide a constant HP modifier, rather than one that is scaled by level... that may be too radical.

    This is not bad in itself, but thinking about the game seems to be much easier if the stats are roughly equivalent in usefulness averaged over all classes.
    But they're not. Thieves and Warriors can increase more combat stats, because they don't have to worry about increasing any spell related stats. We've made the choice between which stats to choose to increase harder (and hopefully more interesting), but they don't have the same incentive to increase e.g. Int and Wis together, that the majority of spell casters and semi-spell casters have.

    Anyway, this decision requires heavy rebalancing in many places (e.g. SIZ item bonuses should be valued less than CON bonuses, CON table for HP bonus should be scaled down and SIZ table scaled up, etc.).
    I've already scaled the SIZ bonuses up to compensate.

    The system before the last CVS changes was designed to mimic the old HP values --- even if it put both base HP and bonus HP under the same name as Hit Dice.
    I believe it missed the distinction I'm making between SIZ and CON.

    The current system, after the recent CVS changes seems to result in much higher HP at high levels than before new races and SIZ were introduced.

    All this said, the system really needs rebalancing (preferably after play-testing) so it's nice it's changing, even if randomly. Eventually it will stabilize at something interesting (even if different from the old Un) for sure.

    Andrew
    The Roflwtfzomgbbq Quylthulg summons L33t Paladins -more-
    In UnAngband, the level dives you.
    ASCII Dreams: http://roguelikedeveloper.blogspot.com
    Unangband: http://unangband.blogspot.com

    Comment

    • Bandobras
      Knight
      • Apr 2007
      • 726

      #3
      Originally posted by andrewdoull
      You'd mean you'd like to discuss the recent changes I made in CVS
      You can't be fooled.

      The main reason I made these changes to start with is that it felt too hard with many race / class combinations to get a character with semi-adequate starting stats.
      This is a totally valid reason. However, you like warriors --- perhaps you tried to melee with the combos with minimal HP and STR? Perhaps some combos could be augmented with some initial buff scrolls, wands, spells, throwing weapons, etc. instead of stats? Perhaps the effects of encumberance should be lowered to allow combos that do not rise STR ever? Etc. But of course, at the end, the stats have to be balanced, too, as they are not tested adequately, so obviously they cannot be balanced right now...

      What I was striving to obtain were viable strategies where some of the stats are never raised and other raised only till 18/50. Ideally, at least one sensible combo for each stat or even each pair of stats. I think it makes the character development more fun, beyond the stereotypical "Mages don't need DEX, Priests don't need INT". Now you can have many kinds of Priests, depending on which stats they neglect. Of course generalists should also be a viable strategy, and I'm quite sure they already are, for all combos.

      I believe I've actually halved the effects of SIZ, rather than doubling CON. I could be wrong here.
      Oh, indeed. This means my conjecture that end-game HP are now higher were wrong --- they are actually lower and not by much. But then the displayed Hit Dice (p_ptr->hitdie) is wrong (p_ptr->hitdie is only used for display, BTW!): it should be 10 + con_bonus + siz_bonus/2. I'm still worried CON is overpowered now, even more after the mana tweak. Perhaps halve the CON bonus and leave SIZ bonus intact? Or rather double SIZ bonus now that you lowered the values in script files, so that starting hit die with all initial body stats at 10 is exactly as you specified in your draft of the new races (my system had this property, though you removed the birth-screen hit die display, so it's hard to see now).

      If we apply the 'SIZ' modifies hit dice approach, than size should provide (approximately) twice as many starting hit points, than the bonus gained every level thereafter.
      If I remember correctly, the fact that the starting HP are equal to hit dice, not to, on average, half this value is assured in the procedure that calculates p_ptr->player_hp. So no need to hack this. Even if it's buggy, just correct p_ptr->player_hp.

      Note that I've also modified the SIZ table so that the bonus hit points is approximately twice the old values.
      Sorry, I missed that. But, ..., ugh, why halve bonus and then double the table? It seems it evens out and so has no visible game-play effect, whatsoever, even in the UI. But at least SIZ is not made weaker than CON this way, which is good. Hmm, perhaps you think HP is calculated based on p_ptr->hitdie? It is not --- only p_ptr->player_hp (which is the same for every combo) and SIZ and CON bonuses are used, see xtra1.c.

      I'm actually tempted to go even further and have SIZ provide a constant HP modifier, rather than one that is scaled by level... that may be too radical.
      Go ahead. Your wild ideas are the best. However the UI cost is big --- you no longer have the single Hit Die factor that is uniformly modified by SIZ and CON and that generates HP as in every Angband variant (but SIZ and CON have not other effect on HP, which is simpler than in variants).

      But they're not. Thieves and Warriors can increase more combat stats, because they don't have to worry about increasing any spell related stats.
      This is why I said "averaged over all classes" meaning that the values of each stat summed for all classes should be similar. This makes balancing races easier, at least if we want to make every race reasonably good at, say, half of all classes. (Which is of course not true, since we obviously have generalists and specialists among races, but well, whatever. ;>)

      I believe it missed the distinction I'm making between SIZ and CON.
      Either you eventually make no distinction (assuming the UI bugs are ironed out), or most probably, I'm missing something.

      Comment

      • andrewdoull
        Unangband maintainer
        • Apr 2007
        • 872

        #4
        Originally posted by Bandobras
        This is a totally valid reason. However, you like warriors --- perhaps you tried to melee with the combos with minimal HP and STR?
        I actually came to this conclusion after playing priests. It seemed pretty impossible to get Speed >= 0 and one useful starting stat (either Int or Wis). In general, I think the stat bonuses 'looked' too high, and I suspect it was because a hit die 7 class or race had a minus 6 to SIZ, as opposed to a -3. And similiarly the hit die 13 classes and races had a SIZ bonus that caused them to have too much of a speed penalty.

        What I was striving to obtain were viable strategies where some of the stats are never raised and other raised only till 18/50. Ideally, at least one sensible combo for each stat or even each pair of stats. I think it makes the character development more fun, beyond the stereotypical "Mages don't need DEX, Priests don't need INT". Now you can have many kinds of Priests, depending on which stats they neglect. Of course generalists should also be a viable strategy, and I'm quite sure they already are, for all combos.
        We agree here.

        Oh, indeed. This means my conjecture that end-game HP are now higher were wrong --- they are actually lower and not by much. But then the displayed Hit Dice (p_ptr->hitdie) is wrong (p_ptr->hitdie is only used for display, BTW!): it should be 10 + con_bonus + siz_bonus/2.
        Hit dice should be 10 + (2 * con_bonus) + size bonus. In fact, since its a display only attribute, we should really just make it 10 + size bonus since that will make Angband players more comfortable.

        This equates to Angband, where hit points ~= (hit dice + 1)/2 + con_bonus, except at first level where hit points = hit dice + con_bonus.

        I'm still worried CON is overpowered now, even more after the mana tweak.
        You're probably right, but I'm too much of a fan of the mana reserve system now (Can you say Raistlin?).

        Sorry, I missed that. But, ..., ugh, why halve bonus and then double the table? It seems it evens out and so has no visible game-play effect, whatsoever, even in the UI. But at least SIZ is not made weaker than CON this way, which is good. Hmm, perhaps you think HP is calculated based on p_ptr->hitdie? It is not --- only p_ptr->player_hp (which is the same for every combo) and SIZ and CON bonuses are used, see xtra1.c.
        I only halve the bonus for levels after level 1. So you still get the full bonus at first level based on size.

        Go ahead. Your wild ideas are the best. However the UI cost is big --- you no longer have the single Hit Die factor that is uniformly modified by SIZ and CON and that generates HP as in every Angband variant (but SIZ and CON have not other effect on HP, which is simpler than in variants).
        Andrew
        The Roflwtfzomgbbq Quylthulg summons L33t Paladins -more-
        In UnAngband, the level dives you.
        ASCII Dreams: http://roguelikedeveloper.blogspot.com
        Unangband: http://unangband.blogspot.com

        Comment

        • Bandobras
          Knight
          • Apr 2007
          • 726

          #5
          I've looked at the code again. You've added a comment to tables.c to byte adj_siz_die:

          Code:
          This is the total bonus at 1st level, plus every 2 levels thereafter.
          I claim, this comment was true before your changes (after CL 1 only on average), but is true no longer.

          In birth.c you see
          Code:
          p_ptr->player_hp[0]
          is always 10, so, assuming the CON bonus is zero,
          Code:
          p_ptr->player_hp[p_ptr->lev - 1] * bonus / 10
          is in this case exactly the value from the adj_siz_die table. Similarly for levels after CL 1.

          After your changes, the comment would be true for the CON bonus (as it was also before the changes). However, it is no longer true for SIZ, since you exactly halved the value (and added a spurious constant factor, which breaks things even more).

          If you had trouble understanding my enigmatic hacks, why not just ask (e.g. through the bug system, or commit messages), as I did when I was learning your code...

          Comment

          • andrewdoull
            Unangband maintainer
            • Apr 2007
            • 872

            #6
            Originally posted by Bandobras
            I've looked at the code again. You've added a comment to tables.c to byte adj_siz_die:

            Code:
            This is the total bonus at 1st level, plus every 2 levels thereafter.
            I claim, this comment was true before your changes (after CL 1 only on average), but is true no longer.

            In birth.c you see
            Code:
            p_ptr->player_hp[0]
            is always 10, so, assuming the CON bonus is zero,
            Code:
            p_ptr->player_hp[p_ptr->lev - 1] * bonus / 10
            is in this case exactly the value from the adj_siz_die table. Similarly for levels after CL 1.

            After your changes, the comment would be true for the CON bonus (as it was also before the changes). However, it is no longer true for SIZ, since you exactly halved the value (and added a spurious constant factor, which breaks things even more).

            If you had trouble understanding my enigmatic hacks, why not just ask (e.g. through the bug system, or commit messages), as I did when I was learning your code...
            Point taken. I'll have another go at patching this later in the week, and see if you're happy/ier with the changes. I've just rolled the repository over to svn, and there's a 6 hour delay in updating some permissions via a cron job on berlios, so won't be able to fix this tonight.

            Andrew
            The Roflwtfzomgbbq Quylthulg summons L33t Paladins -more-
            In UnAngband, the level dives you.
            ASCII Dreams: http://roguelikedeveloper.blogspot.com
            Unangband: http://unangband.blogspot.com

            Comment

            • Bandobras
              Knight
              • Apr 2007
              • 726

              #7
              *bows deeply*

              P.S. Hehe, I've just stolen the first SVN commit in the history UnAngband. SVN rulez, and even the CVS->SVN export seems to be quite good. E.g. at http://svn.berlios.de/wsvn/unangband/?rev=1200&sc=1
              you can see the whole 4-file commit changing HP stuff, this thread is about. Or try this one:
              Code:
              svn merge -r 1200:1199 http://svn.berlios.de/svnroot/repos/unangband/trunk/unangband; svn ci

              Comment

              • Bandobras
                Knight
                • Apr 2007
                • 726

                #8
                I see you've not reverted to my original SIZ/CON mechanics, but rather moved back closer to the standard V way of handling CON and you consider SIZ just a total replacement of the hit dice. OK, are you happy with that direction? If so, I can live with that, but I can try to repair and tweak the new system, so that it does not crash, is simpler to understand and show in the UI and is better balanced (both in the way it mimics V and in our extra goals, such as encouraging players to neglect some stats). Is it OK, or do you perhaps want to tweak it yourself?

                Then we can start arguing about the stats of particular races and classes. In particular, it may be that I've made Hobbits and Shadow Fairies too similar, at least in the early game. Your changes equated them even more, IIRC. But then, boosting Shadow Fairies' archery could make them too similar to Wood Elves. Perhaps change their cool flag to invisibility flag good enough to flee anything in the first 5 levels, including uniques (and later on still giving some edge)? Or something...

                Comment

                • GCD
                  Rookie
                  • Aug 2007
                  • 7

                  #9
                  I think the whole idea of size being a stat that improves with levels is kind of strange. I would suggest keeping size as a stat that's mostly dependent on the race you start with. There could be some variation within the race. Size could then be modified by equipment or by potions (that would make you temporarily bigger or smaller) but would otherwise stay unchanged throughout the game.

                  Comment

                  • Bandobras
                    Knight
                    • Apr 2007
                    • 726

                    #10
                    Originally posted by GCD
                    I think the whole idea of size being a stat that improves with levels is kind of strange. I would suggest keeping size as a stat that's mostly dependent on the race you start with. There could be some variation within the race.
                    Weight is race-dependent and with some minor variations. Size is only initially race-dependent. I you talk about realism, I think if in this world a charactere can get 4 times more intelligent or strong, he may as well quadruple his muscles' weigh. Think about it as growing up, superhero powers, drinking too much magical coca-cola, or anything you like. Perhaps characters should age quicker (now they do slowly, IIRC), if growing up is a plausible explanation.

                    If you have game-play objections, however, I'm all ears.

                    P.S. I think we have a problem with Nexus swapping stats in Un (if it's not disabled already). It's basically a disaster or an exploit rendering races moot. The reason is that you cannot max stats in Un and you don't have any "maximize" mode, so Nexus swaps forever everything related to stats, unlike in V. I guess nexus could have it's effect timed, perhaps with the same timer as the long-lasting stat drains in Un.
                    Last edited by Bandobras; August 28, 2007, 09:07.

                    Comment

                    • andrewdoull
                      Unangband maintainer
                      • Apr 2007
                      • 872

                      #11
                      Originally posted by Bandobras
                      Weight is race-dependent and with some minor variations. Size is only initially race-dependent. I you talk about realism, I think if in this world a charactere can get 4 times more intelligent or strong, he may as well quadruple his muscles' weigh. Think about it as growing up, superhero powers, drinking too much magical coca-cola, or anything you like. Perhaps characters should age quicker (now they do slowly, IIRC), if growing up is a plausible explanation.
                      I decided to go with a size stat because of the hobbits in Lord of the Rings. There's at least 1 instance (the Ent draught) where hobbits definitely increase in size as a result of drinking something. Its also a fantasy trope that heroes are taller than others.

                      Besides which, realism in a fantasy game isn't the greatest of arguments.


                      If you have game-play objections, however, I'm all ears.

                      P.S. I think we have a problem with Nexus swapping stats in Un, if it's not disabled. It's basically a disaster or an exploit rendering races moot. The reason is that you cannot max stats in Un and you don't have any "maximize" mode, so Nexus swaps forever everything related to stats, unlike in V. I guess nexus could have it's effect timed, perhaps with the same timer as the long-lasting stat drains in Un.
                      You're right - nexus is really problematic. Not just for stat gain - but for changing the starting race as well (there's not as much impact, because we are not using maximise anymore).

                      Andrew
                      The Roflwtfzomgbbq Quylthulg summons L33t Paladins -more-
                      In UnAngband, the level dives you.
                      ASCII Dreams: http://roguelikedeveloper.blogspot.com
                      Unangband: http://unangband.blogspot.com

                      Comment

                      • Bandobras
                        Knight
                        • Apr 2007
                        • 726

                        #12
                        Originally posted by andrewdoull
                        for changing the starting race as well
                        You mean nexus can change the race? Like the mushrooms of Metamorphosis in S? I must have understood you wrong...

                        BTW., what about my previous post?

                        Comment

                        • andrewdoull
                          Unangband maintainer
                          • Apr 2007
                          • 872

                          #13
                          Originally posted by Bandobras
                          BTW., what about my previous post?
                          Working on it... got a list a mile long. Of course, I'm actually working on something else, as you may have noticed from SVN or my blog.

                          Edit: My mistake, I thought Nexus also did race change...
                          The Roflwtfzomgbbq Quylthulg summons L33t Paladins -more-
                          In UnAngband, the level dives you.
                          ASCII Dreams: http://roguelikedeveloper.blogspot.com
                          Unangband: http://unangband.blogspot.com

                          Comment

                          • Bandobras
                            Knight
                            • Apr 2007
                            • 726

                            #14
                            Wow, I'm in a creative binge ---- it always happens when I should be doing something totally different, requiring creativity, but I don't feel like starting.

                            Another idea to distinguish Shadow Fairies (and Goblins, perhaps) from Hobbits: Devices skill. For it to make difference, critical activations from O would be nice. To change the shallow levels tactics we'd need a wand of Sparks from S, make the effects of Wonder and the chances of confusion, slowing,etc. via devices depend on the skill, add the ability to trigger any jewelery inducing teleportation (high-fail activation, removed together with curse), make the staff of Light shallower than the wand and cheaper and give it a chance to blind adjacent monsters (weaker chance than of the wand and not targetable, but the staff is useful) and/or make the staff of starlight shallower and cheaper, give a high chance of frighten all monsters in LOS when breaking ('k') magical devices, depending on their level and the skill.

                            P.S. Wow, you are fast.

                            Code:
                            r1362 | andrewdoull | 2007-08-28 21:26:09 +0200 (Tue, 28 Aug 2007) | 1 line
                            - Add wands of spark. Adjust shallow wand depths and prices. Made staffs of star
                            light shallower and cheaper.
                            Last edited by Bandobras; August 28, 2007, 20:58.

                            Comment

                            • andrewdoull
                              Unangband maintainer
                              • Apr 2007
                              • 872

                              #15
                              Originally posted by Bandobras
                              Wow, I'm in a creative binge ---- it always happens when I should be doing something totally different, requiring creativity, but I don't feel like starting.

                              Another idea to distinguish Shadow Fairies (and Goblins, perhaps) from Hobbits: Devices skill. For it to make difference, critical activations from O would be nice.
                              Agreed. On to do list.

                              To change the shallow levels tactics we'd need a wand of Sparks from S,
                              Now done.

                              make the effects of Wonder and the chances of confusion, slowing,etc. via devices depend on the skill,
                              To do list.

                              add the ability to trigger any jewelery inducing teleportation (high-fail activation, removed together with curse),
                              Thanks for reminding me. I'll do this now.

                              make the staff of Light shallower than the wand and cheaper and give it a chance to blind adjacent monsters (weaker chance than of the wand and not targetable, but the staff is useful) and/or make the staff of starlight shallower and cheaper,
                              I've gone with staff of Starlight as Light is quite a nice weapon.

                              give a high chance of frighten all monsters in LOS when breaking ('k') magical devices, depending on their level and the skill.
                              The Roflwtfzomgbbq Quylthulg summons L33t Paladins -more-
                              In UnAngband, the level dives you.
                              ASCII Dreams: http://roguelikedeveloper.blogspot.com
                              Unangband: http://unangband.blogspot.com

                              Comment

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