Procedurally Generated Unique Monsters

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • HallucinationMushroom
    Knight
    • Apr 2007
    • 785

    #31
    What about tracking the consumables used during the fights? Often, when I'm evaluating uniques, I think of my major healing potions, speed potions and other harder-than-average-to-replace things. Sure, I might be able to kill the Tarrasque with a given character, but is it worth 8 heals, 5 speeds, 1 rune of protection, and so on. Just a thought. I notice in your screenshot you don't list major healing, so maybe this info isn't really so useful.
    You are on something strange

    Comment

    • will_asher
      DaJAngband Maintainer
      • Apr 2007
      • 1124

      #32
      Originally posted by Riff
      Wouldn't teleportation somewhat help to afford a few turns to quaff potions/use long-range weaponry safely?
      That's what phase door is for, not teleportation.
      Like HM said, I'd give him a couple potions of healing.
      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

      • Riff
        Rookie
        • Jan 2012
        • 23

        #33
        I got rid of Wand of Teleport Other, Staff of Teleportation, and Scroll of Teleportation, then reran some simulations for the previous top 10 to see whether any significant changes would occur in the results.
        1. Rogrog the Black Troll (up from #3)
        2. Vargo, Tyrant of Fire (down from #1)
        3. Scatha the Worm (up from #5)
        4. Lokkak, the Ogre Chieftain (same)
        5. Itangast the Fire Drake (up from #6)
        6. Adunaphel the Quiet (up from #7)
        7. Akhorahil the Blind (up from #9)
        8. Quaker, Master of Earth (down from #2)
        9. Ren the Unclean (up from #10)
        10. Ulfang the Black (down from #8)


        Details on sheet 2 here.

        Most significant changes seem to be Rogrog, Scatha, Quaker, and Ulfang. The borg was even less likely to win against Quaker without teleportation it seems (I don't think it likes tunneling).

        I'm going to add a corridor as mentioned earlier and rerun simulations across all uniques to see what I get.

        Originally posted by will_asher
        Like HM said, I'd give him a couple potions of healing.
        Originally posted by HallucinationMushroom
        What about tracking the consumables used during the fights?
        Noted. I'll give...I dunno 5 Potions of Healing? I'm uncertain how consumables would contribute to interestingness (more consumables used = more interesting?).

        I'm starting to wonder whether balanced fights indicate interestingness (as I've been using), or fights that the borg is is less likely to win is more interesting. I guess it depends on whether you believe a fight you'll more likely win can be interesting? (With the current theory, this can happen if the average remaining %HP is low enough)

        Comment

        • Magnate
          Angband Devteam member
          • May 2007
          • 5110

          #34
          Originally posted by Riff
          Anything else you would suggest?
          If you could log r_ptr->power and r_ptr->scaled_power as well as r_ptr->depth and r_ptr->hp, that would be really helpful.
          "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

          Comment

          • Derakon
            Prophet
            • Dec 2009
            • 9022

            #35
            Hm, I would tend to think that an interesting fight is one that is close, and that includes use of one-shot resources. Your average player is going to be carrying some potions in case of emergency. Generally I go into the dungeon with 15 Cure Critical Wounds and 2-4 Healing potions (and 15 Phase Door and a bunch of other stuff that wouldn't make sense to use in your context), though of course by the time I encounter a given unique they may be depleted somewhat.

            Of course, it's not at all clear that the enemies the borg would have trouble with are the same ones that humans would have trouble with, but it's not like you have an automatable human-level AI handy.

            Comment

            • fizzix
              Prophet
              • Aug 2009
              • 3025

              #36
              I think the biggest point of contention with the exercise is that it clashes so strongly with my own experience. I think the following uniques are interesting.

              orfax/boldor
              wormtongue
              huan/carcharoth
              thuringwethil
              tselakus
              kavlax
              draebor
              saruman
              Adunaphel
              Dwar (with the summoning changes of 3.4, summon hounds is a very interesting summon spell)

              (omarax would be, if he had a drop)

              My list doesn't overlap at all with Riff's...

              Comment

              • Derakon
                Prophet
                • Dec 2009
                • 9022

                #37
                Most of the uniques you're looking at are outside the range he's examining, which is basically "midgame uniques". That explains the disparity.

                Comment

                • Riff
                  Rookie
                  • Jan 2012
                  • 23

                  #38
                  Originally posted by Derakon
                  Hm, I would tend to think that an interesting fight is one that is close, and that includes use of one-shot resources.
                  A close match, yes! That's what I figure as well. For that reason, I think borg's likelihood of winning should be the biggest indicator. I could add % use of consumables as a factor as well I suppose. Currently that would include:
                  • 5 Potions of Healing
                  • 41 Potions of Cure Critical Wounds
                  • 1 Potion of Restore Life Levels
                  • 2 Potions of Speed
                  • 4 Potions of Resist Poison
                  • 14 Scrolls of Phase Door
                  • 9 Scrolls of Satisfy Hunger
                  • 26 Arrows of Venom
                  • 69 Arrows


                  Originally posted by Derakon
                  Of course, it's not at all clear that the enemies the borg would have trouble with are the same ones that humans would have trouble with, but it's not like you have an automatable human-level AI handy.
                  I'll work with what I have for now, haha. Having a human-level AI would definitely help make it more accurate though, yes.

                  Comment

                  • Riff
                    Rookie
                    • Jan 2012
                    • 23

                    #39


                    I ran a full simulation using this new dungeon, and as mentioned earlier, teleportation stuff has been removed, and 5 Potions of Healing have been added.

                    Giving equal weighting to Win/Lose Ratio and %HP Remaining, these are the top 10:
                    1. Rogrog the Black Troll
                    2. Vargo, Tyrant of Fire
                    3. Lokkak, the Ogre Chieftain
                    4. Akhorahil the Blind
                    5. Itangast the Fire Drake
                    6. Adunaphel the Quiet
                    7. Smaug the Golden
                    8. Waldern, King of Water
                    9. Scatha the Worm
                    10. Quaker, Master of Earth


                    Mostly familiar faces, though Smaug and Waldern have replaced Ulfang and Ren.

                    If I only consider Win/Lose Ratio closest to 0.5:
                    1. Rogrog the Black Troll
                    2. Vargo, Tyrant of Fire
                    3. Lokkak, the Ogre Chieftain
                    4. Akhorahil the Blind
                    5. Smaug the Golden
                    6. Itangast the Fire Drake
                    7. Adunaphel the Quiet
                    8. Draebor, the Imp
                    9. Scatha the Worm
                    10. Waldern, King of Water


                    Similar, but additionally Draebor has replaced Quaker.

                    I'm going to start working on the unique generation algorithm, essentially seeking to optimize some evaluation function. Personally, I think the evaluation function could be tweaked to your taste, but for the purposes of my project, I'm thinking of using something like this:
                    1. Win/lose ratio close to 0.5 [Weight = 5]
                    2. High average use of consumables [Weight = 3]
                    3. Low average %HP remaining [Weight = 2]


                    The weights are quite arbitrary, but I think make sense to some extent.

                    Win/lose ratio definitely should be the main indicator - we wouldn't want an enemy that forces high use of consumables, has low HP once it beats you, but is ultimately near impossible to beat, to score high.

                    Average use of consumables might cover too many things; but to keep the function simple, it'll do for now. I imagine you could split it into several values tracking different types of consumables and optimize different kinds of monsters that way.

                    I think average use of consumables is just slightly more important than the average %HP remaining, considering that HP can be replenished and that consumables are pretty much one-shot.

                    Once I'm done, I'll have to see how to get people to try it out... I'm doing dev work on a Windows machine, so I'm not entirely sure whether my hacks are going to work without a hitch on other platforms.

                    Comment

                    • Riff
                      Rookie
                      • Jan 2012
                      • 23

                      #40
                      So it turns out my previous results with the included 5 Potions of Healing were invalid. I only realized this once I started logging the consumable usage and found that the borg seemed to be mysteriously using up ALL its Healing for ALL simulations. Then I found that it had been hard-coded to use up Healing if its HP is below a certain value when facing a QUESTOR...I suppose with the assumption that it was fighting Morgoth and had a lot more HP.

                      Anyway, I got some new results, and the rankings have changed significantly due to the addition of Healing (not surprising I suppose considering the survivability it affords). Again, using my evaluation function, these are the most 'interesting'(along with the interestingness score):
                      1. Beorn, the Shape-Changer 0.665
                      2. The Queen Ant 0.662
                      3. Lorgan, Chief of the Easterlings 0.583
                      4. Medusa, the Gorgon 0.499
                      5. Ji Indur Dawndeath 0.387
                      6. Akhorahil the Blind 0.369
                      7. Vargo, Tyrant of Fire 0.334
                      8. Hoarmurath of Dir 0.319
                      9. Shelob, Spider of Darkness 0.272
                      10. Smaug the Golden 0.269


                      Among them, the borg's survivability seems to indicate:
                      • Close: Beorn and Queen Ant almost.
                      • Tough: Hoarmurath, Shelob, Medusa, Lorgan
                      • Easy: Smaug, Vargo, Akhorahil, Ji Indur


                      Full data here.


                      Just out of interest, I tried looking at the correlations between some of the data. There's a high correlation(-0.849) between Depth and the Win/Lose Ratio, so that at least shows that the borg is generally finding the uniques progressively harder and harder to defeat. The next highest(-0.412) is between Power and the Win/Lose Ratio. So it seems as though Depth is a much better indicator than Power for the borg's survivability.

                      I think I'm done with analyzing the existing uniques for now. Generated uniques coming soon...

                      Comment

                      • Magnate
                        Angband Devteam member
                        • May 2007
                        • 5110

                        #41
                        Originally posted by Riff
                        Just out of interest, I tried looking at the correlations between some of the data. There's a high correlation(-0.849) between Depth and the Win/Lose Ratio, so that at least shows that the borg is generally finding the uniques progressively harder and harder to defeat. The next highest(-0.412) is between Power and the Win/Lose Ratio. So it seems as though Depth is a much better indicator than Power for the borg's survivability.
                        This is excellent though, as it provides a way to measure the validity of monster power - if that correlation improves, then the power algorithm is getting better (at least as far as this particular test is concerned!).
                        "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                        Comment

                        • Riff
                          Rookie
                          • Jan 2012
                          • 23

                          #42
                          Hi again! My finals just ended (last exams ever hurrah!), so I'm back to finish the project - deadline's looming in less than a month.

                          I had a talk with my supervisor and he noticed that I forgot to take into account that most people would try to max out their stats by the time they reach DL 50. So what I did was take an average of the base stats of the 4 character dumps I used (weighted by how close they are to DL 50), and reran the simulations on the existing uniques.

                          Additionally, I revised the criteria used for evaluating a unique.
                          1. Win/Lose ratio. Still the same.
                          2. Average item consumption. Now weighted by the cost of the item.
                          3. Average HP consumption. This now simply tracks how much HP the player has lost (can go over max HP due to healing and whatnot).
                          4. Reasonable turns. Not too long, not too short. I took the average number of turns for all uniques tested as a start, which turned out to be 42.

                          Some interesting correlations:
                          1. Win/Lose ratio and depth actually worsened slightly from -0.849 to -0.837. However, the change is less than 0.05(5%), so it's not too significant.
                          2. Item consumption and depth improved from 0.268 to 0.442! Which probably shows that the new weighted measure is a better indicator.
                          3. HP consumption and depth also shows a high correlation of 0.801.
                          4. Reasonable turns and depth barely have a correlation of 0.066...but that's no surprise considering it doesn't differentiate between winning or losing too fast.
                          5. Power also shows improved correlation with win/lose ratio from -0.412 to -0.491. Also has correlation with item consumption at 0.167 and HP consumption at 0.405. The correlations here actually look a bit similar to the earlier depth correlations, though not as strong.

                          My new proposed evaluation function takes these factors into account (closeness being a measure of W/L approaching 0.5):
                          1. Correlations with depth as sign of appropriateness/viability
                          Closeness = HP > Item (roughly)

                          2. HP consumption and reasonable turns require...a special kind of normalization(ie. have to predict the biggest range we might encounter in simulations). As such, we might not want to rely on them too much.

                          3. Interestingness measures based on previous theories and discussions here
                          Closeness is definitely important. It's a form of outcome uncertainty.
                          Item consumption as well, since a battle that requires you to actually use up your resources is more interesting than one where you can simply whack the enemy to death.
                          Reasonable turns has been shown in previous research to be a good indicator of interestingness.

                          So:
                          Closeness > Item > HP = Turns
                          4 : 3 : 1.5 : 1.5

                          Sorting the uniques by this evaluation formula, we get this top 10 list of interesting fights for a CL 40 Half-Troll Warrior:
                          1. Atlas, the Titan
                          2. Khamul, the Black Easterling
                          3. The Lernaean Hydra
                          4. The Phoenix
                          5. Ar-Pharazon the Golden
                          6. Omarax, the Eye Tyrant
                          7. Saruman of Many Colours
                          8. Dwar, Dog Lord of Waw
                          9. Gorlim, Betrayer of Barahir
                          10. The Balrog of Moria


                          It's quite a huge change from the previous experiments, largely because of the maxed out stats I believe! If we take a W/L of 0.451 to 0.550 to be close, then we get:
                          • Easy and interesting: Atlas, the Titan; Ar-Pharazon the Golden; Dwar, Dog Lord of Waw; Gorlim, Betrayer of Barahir
                          • Close and interesting: Khamul, the Black Easterling
                          • Hard and interesting: The Lernaean Hydra; The Phoenix; Omarax, the Eye Tyrant; Saruman of Many Colours; The Balrog of Moria


                          Data here.

                          Next, I'll be implementing the algorithm for generating uniques. Hopefully I'll have something for you guys to play with by sometime next week so I can get some feedback. Cheers!

                          Comment

                          • Magnate
                            Angband Devteam member
                            • May 2007
                            • 5110

                            #43
                            Thanks for the update. I'm surprised to see the two ringwraiths in the list - they're notably less worrying to most players than any of the other entries. Forgive me if I've forgotten something from an earlier post, but is native depth relevant here? ISTR it is, and it would point to an interesting idea that the two ringwraiths are quite tough for their depth, if not in absolute terms.

                            I look forward to seeing the generator ...
                            "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                            Comment

                            • Riff
                              Rookie
                              • Jan 2012
                              • 23

                              #44
                              Well, the idea is that this is all based on the composite player I created (which is an amalgamation of 4 characters from the ladder whose max depth ranges between 46-54), i.e. my approximation of a character at DL 50.

                              As a reminder, here's the details of the CL 40 Half-Troll Warrior I'm using as a model.

                              Full stats (after applying bonuses etc.)
                              STR: 18/182
                              INT: 18/25
                              WIS: 18/20
                              DEX: 18/85
                              CON: 18/***
                              CHR: 15

                              Lance of the Eorlingas
                              Short Bow of Amrod
                              Ring of Constitution <+4>
                              Ring of Speed <+7>
                              Jewel 'Evenstar'
                              Phial of Galadriel
                              Augmented Chain Mail of Caspanion
                              Elven Cloak of the Magi [6, +8]
                              Small Metal Shield of Thorin
                              Hard Leather Cap of Thranduil
                              Set of Leather Gloves 'Cammithrim'
                              Pair of Leather Sandals of Speed [1,+7] <+8>

                              69 Arrows
                              26 Arrows of Venom

                              41 Potions of Cure Critical Wounds
                              5 Potions of Healing
                              Potion of Restore Life Levels
                              2 Potions of Speed
                              4 Potions of Resist Poison
                              14 Scrolls of Phase Door
                              9 Scrolls of Satisfy Hunger
                              Rod of Trap Location
                              Rod of Detection
                              4 Rods of Curing
                              Rod of Disarming
                              So essentially, I'm not looking for absolute measures(which is probably very difficult to ascertain...) but in terms of some player model.

                              Comment

                              • Riff
                                Rookie
                                • Jan 2012
                                • 23

                                #45


                                This is just a purely random enemy. The full generator will be using a simulation-based genetic algorithm to find 'interesting' enemies for the given situation. It's nearly done, but I likely won't have any results till next week.

                                Meanwhile, my code is on github: https://github.com/AriffWambeck/angband
                                I've been developing on Windows, but I might get around to compiling it on Linux later on.

                                Comment

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