Monsters, objects and randarts - simplification

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Nick
    Vanilla maintainer
    • Apr 2007
    • 9638

    #31
    Originally posted by Magnate
    We have a choice: imperfect algorithmic power, or imperfect simplified power. The same goes for monsters. I don't see the logic of simplifying one but not the other.
    I have two arguments for treating monsters and objects differently, one philosophical and one mathematical.

    First, the game story is that the character goes into dungeon, aiming to kill Morgoth and as many of his minions as necessary. In order to do this, they need objects. So the fundamental objects of the world are firstly the dungeon, and secondly the monsters - and objects are then a response to those. Your sword of *Slay Dragon* is only made that way because that's what slays dragons. So it makes sense to have monsters (and terrain), and then objects that are constructed relative to them.

    Second, if you have two algorithmically constructed sets - object and monsters - which are constructed relative to each other, you lack a fixed point in the system. So objects are made and priced based on their effectiveness against monsters, but then monsters are allocated power based in part on what objects are available to counter them, and the argument becomes circular.

    There is also the broader argument that we are trying to construct an increasingly complex algorithm to measure a one-dimensional power or value, when in fact values of objects vary wildly depending on game situation. I think complexity needs to be avoided as much as possible here because:
    • It is hard to understand
    • We start giving its results more credence than they deserve
    • Small changes have unpredictable effects
    • It makes the game rigid


    I don't think I have explained my reasoning terribly well here, but I hope it gives some insight to my approach
    One for the Dark Lord on his dark throne
    In the Land of Mordor where the Shadows lie.

    Comment

    • fizzix
      Prophet
      • Aug 2009
      • 3025

      #32
      Originally posted by Nick
      I have two arguments for treating monsters and objects differently, one philosophical and one mathematical.

      First, the game story is that the character goes into dungeon, aiming to kill Morgoth and as many of his minions as necessary. In order to do this, they need objects. So the fundamental objects of the world are firstly the dungeon, and secondly the monsters - and objects are then a response to those. Your sword of *Slay Dragon* is only made that way because that's what slays dragons. So it makes sense to have monsters (and terrain), and then objects that are constructed relative to them.
      This approach can run into undesirable outcomes. The most obvious example for me is Free Action. FA is really valuable early on, but it's also absolutely necessary. Your first source of FA is probably valued at something like +8 speed or maybe more. Does that mean that we should cost FA the same as +8 speed? Absolutely not, because FA is necessary to survive past level 30 or so and +8 speed is not (although it sure is helpful).

      So a purely reactive approach is going to give FA a much higher power and cost just because of the sheer large number of monsters it protects against and the lethality of those attacks. I'm not sure how we get around this and similar issues with a simplified algorithm. I have a feeling things will need to be hand-tuned.

      Comment

      • Derakon
        Prophet
        • Dec 2009
        • 9022

        #33
        Originally posted by fizzix
        So a purely reactive approach is going to give FA a much higher power and cost just because of the sheer large number of monsters it protects against and the lethality of those attacks. I'm not sure how we get around this and similar issues with a simplified algorithm. I have a feeling things will need to be hand-tuned.
        This sounds like a vote for scaling object power valuations based on how common the power is. Speed wouldn't be considered an especially valuable power if 50% of items had speed, for example.

        Do we need a supply/demand curve?

        Comment

        • fizzix
          Prophet
          • Aug 2009
          • 3025

          #34
          Originally posted by Derakon
          This sounds like a vote for scaling object power valuations based on how common the power is. Speed wouldn't be considered an especially valuable power if 50% of items had speed, for example.
          Sure that's one approach, but that doesn't fit Nick's model of first populate the dungeon with terrain and monsters, and then decide item power based off of only that information. You're including another variable.

          I would agree that we need this extra variable, whatever it is, which was the point of my post.

          Comment

          • Nick
            Vanilla maintainer
            • Apr 2007
            • 9638

            #35
            I'm sorry, I seem to have been unclear here. I'm not advocating for wholesale change to how objects are valued - the current algorithm is pretty good. The aspects of the power calculations relevant (IMO) here are:
            1. The power calculations lack clarity. There are a lot of judgments made on the value of various things within the code itself.
            2. The monster power calculation is used for two things: re-balancing the monster list, and evaluating the power of slays and brands on objects. Re-balancing the monster list is not actually used for anything, and a part of what I'm suggesting here is that it is better done by hand. The issue of slays and brands is my next point.
            3. The object power algorithm is currently fairly clear, although putting all the parameters in one place and clearly labeling them would improve it. It calculates an attack power for weapons, and then gives weights to other powers like AC, resists, stat bonuses, etc. Most of these are straightforward, with values set by making a judgment. The exceptions to this are slays and brands, which have their value calculated by a big calculation of their effectiveness against every monster in the monster list, weighted by monster power.


            What I would like to do, then is
            1. Replace the current slay/brand calculation with a simple weight system. While I like the attempt at accuracy, it doesn't really fit with the heuristic nature of the rest of the calculation - it's like weighing a basket of fruit by getting a precise weight for the grape, and then using average values for all the bananas, melons, etc.
            2. Since it is now unused, remove the monster power calculation.
            3. Clarify further what parameters are being used and where in the object power calculation, to make rebalancing easier.


            The added bonus I haven't mentioned here is that this allows us to throw away several hundred lines of code
            One for the Dark Lord on his dark throne
            In the Land of Mordor where the Shadows lie.

            Comment

            • PowerWyrm
              Prophet
              • Apr 2008
              • 2986

              #36
              There's also this (from monster.txt):

              # power: depth : rarity : power : scaled power : experience for kill

              For example:

              name:547:Morgoth, Lord of Darkness
              power:100:1:1536744111:1705598:60000

              Yes, power is hardcoded in the txt file, and good luck to understand the values... If something changes in the code, you have to redo ALL the monsters. Why this is not calculated internally eludes my poor simple mind...
              PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!

              Comment

              • takkaria
                Veteran
                • Apr 2007
                • 1951

                #37
                Originally posted by PowerWyrm
                There's also this (from monster.txt):

                # power: depth : rarity : power : scaled power : experience for kill

                For example:

                name:547:Morgoth, Lord of Darkness
                power:100:1:1536744111:1705598:60000

                Yes, power is hardcoded in the txt file, and good luck to understand the values... If something changes in the code, you have to redo ALL the monsters. Why this is not calculated internally eludes my poor simple mind...
                As far as I can tell monster power is used only in two other places: listing order in the monster list when depth is the same, and the monster rating element of the level feeling. So if it stops being used for the slays/brands, these will be fairly easy to remove and replace with depth.
                takkaria whispers something about options. -more-

                Comment

                • Nick
                  Vanilla maintainer
                  • Apr 2007
                  • 9638

                  #38
                  Originally posted by PowerWyrm
                  Yes, power is hardcoded in the txt file, and good luck to understand the values... If something changes in the code, you have to redo ALL the monsters. Why this is not calculated internally eludes my poor simple mind...
                  It used to be. One of my fairly early changes was to put it in the text file, mainly because it was in the "no gameplay change" era of code restructure and that was the easiest way to ensure that

                  That was never intended as a long term plan; I was always going to come back and decide what to do with the whole power system, which is what's happening now.

                  I now have code with monster power removed, which (as takkaria said) involved changing the monster feeling code a bit. Once I've fixed a few of the worse existing bugs too I'll get it out there for testing.
                  One for the Dark Lord on his dark throne
                  In the Land of Mordor where the Shadows lie.

                  Comment

                  • Magnate
                    Angband Devteam member
                    • May 2007
                    • 5110

                    #39
                    Originally posted by Nick
                    What I would like to do, then is
                    1. Replace the current slay/brand calculation with a simple weight system. While I like the attempt at accuracy, it doesn't really fit with the heuristic nature of the rest of the calculation - it's like weighing a basket of fruit by getting a precise weight for the grape, and then using average values for all the bananas, melons, etc.
                    2. Since it is now unused, remove the monster power calculation.
                    3. Clarify further what parameters are being used and where in the object power calculation, to make rebalancing easier.


                    The added bonus I haven't mentioned here is that this allows us to throw away several hundred lines of code
                    Ok I can get behind this. The original intention was that the slay/brand power calculation was the first and easiest of a whole series of values calculated according to the power of monsters, which would eventually include mathematical approximations of the value of resists and FA etc. It doesn't look like anyone else is ever going to do this, and if I ever get around to it then putting the monster power code back will be the least of my challenges.
                    "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                    Comment

                    • Nick
                      Vanilla maintainer
                      • Apr 2007
                      • 9638

                      #40
                      Originally posted by Magnate
                      The original intention was that the slay/brand power calculation was the first and easiest of a whole series of values calculated according to the power of monsters, which would eventually include mathematical approximations of the value of resists and FA etc.
                      Yes, that makes sense. That would indeed have been a mountain of work.

                      Essentially you were planning to add Roko's Basilisk to the game
                      One for the Dark Lord on his dark throne
                      In the Land of Mordor where the Shadows lie.

                      Comment

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