Procedurally Generated Unique Monsters

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Derakon
    Prophet
    • Dec 2009
    • 9022

    #16
    Thanks. Looking at those dumps...speed's way too common. Cripes. Only one of those characters has less than +10 base speed. Other thoughts:

    Eorlingas is by far the best of the weapons selected. I don't really have a good feel for what the "right" weapon power should be, but I'd guess it's somewhere around where Theoden/Eowyn are.

    Only one of the characters has Evenstar; the rest have fairly bad amulets. Likewise, Thorin is the best of the shields available to the characters; Celegorm might be more "average".

    Otherwise, you should load up the character and make certain they've covered the basic 4 resists, see invisible, and free action. And possibly resist poison. That's about all a warrior really needs at this depth in terms of passive bonuses.

    Comment

    • will_asher
      DaJAngband Maintainer
      • Apr 2007
      • 1124

      #17
      I think for starting equipment you could just generate a bunch of random items native to dL50 in the room where the character starts, and maybe have a couple of them guaranteed excellent. That way, he won't have the same equipment every time.
      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

        #18
        Derakon: Thanks for that! Is that after considering that the player is forced to beat the unique on that level (in this case, the Balrog of Moria), so he can't dive deeper or anything?

        will_asher: I think I might do that for inventory items. It's a bit of a judgement call for me to make, whether I'm trying to generate a unique monster that's an appropriate challenge for that depth regardless of what items you have, or whether it assumes that you've come prepared with the generally necessary gear.

        Comment

        • Derakon
          Prophet
          • Dec 2009
          • 9022

          #19
          The problem with just generating a bunch of items and letting the player pick them over is that the player's gear will typically be the result of filtering hundreds, or even thousands, of drops.

          Riff: wait, what? We're putting roadblocks in the dungeon now? I was thinking "what's a reasonable power level for the player to have at this depth", not "what's a reasonable power level to have after having had to grind for awhile to beat a boss". Obviously the latter changes things significantly.

          Comment

          • Riff
            Rookie
            • Jan 2012
            • 23

            #20
            Derakon: That's what I figured. Well the purpose of the project is to see whether we can generate appropriately challenging uniques for the player to face. For starters, the generation algorithm would be applied to simply generate a modified monster.txt, but I imagine that randomly generating uniques in-game might be possible in the future.

            So really what I want to do is set up a single level where your objective is to beat the unique there.

            Edit:
            The original uniques in Angband vary in challenge at the moment, don't they? Some are pretty weak, whereas some like you said, require grinding to beat.

            Comment

            • Magnate
              Angband Devteam member
              • May 2007
              • 5110

              #21
              Originally posted by Riff
              The original uniques in Angband vary in challenge at the moment, don't they? Some are pretty weak, whereas some like you said, require grinding to beat.
              I would suggest that the majority of uniques are somewhere between hard and extremely challenging if encountered at their native depth without grinding (i.e. assuming any kind of mid-paced diving speed). Take people like Azog or Lokkak - they don't summon, they don't have (m)any spells, and later on in the game you can roll over them. But find them at depth without very lucky early finds and they're extremely tough.
              "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

              Comment

              • getter77
                Adept
                • Dec 2009
                • 242

                #22
                An update bump to the example Roguelike I'd mentioned around this notion as the developer of Random Realms has just now updated it to where it can work with Windows 7, made it ingame with no hitch in the slightest on my end at last.

                Comment

                • Riff
                  Rookie
                  • Jan 2012
                  • 23

                  #23
                  It's been a while, but project deadline's looming and so I rush to get something done!

                  Currently, I've managed to create a simulation harness using the borg. What I've done then is devise a very simple scenario where the player has to fight against a particular unique(and whatever escorts, friends, or monsters it happens to summon) in a confined square dungeon, with the game ending when either the player or unique dies.





                  I realize this is a vast simplification, but let's see whether we can get some interesting results nonetheless.

                  So before I go off and attempt to generate some new unique monsters using my theory, I decided to run them through the existing Angband uniques to see how it evaluates them.

                  Given the situation I have outlined, here are the top 10 most interesting uniques for the player:
                  1. Vargo, Tyrant of Fire
                  2. Quaker, Master of Earth
                  3. Rogrog the Black Troll
                  4. Lokkak, the Ogre Chieftain
                  5. Scatha the Worm
                  6. Itangast the Fire Drake
                  7. Adunaphel the Quiet
                  8. Ulfang the Black
                  9. Akhorahil the Blind
                  10. Ren the Unclean


                  My theory for what indicates an interesting unique to fight hinges on 2 values from these simulations:
                  1. Win/lose ratio
                    My main idea is that the closer the ratio is to 0.5, the more interesting it is. In a sense, it's an indication that the player and the unique are an even match. On the other hand, I imagine this value could be used as a difficulty indicator, ie. >0.5 on the harder side, < 0.5 on the easier side.
                  2. Average % HP remaining for last guy standing
                    The more damaged the last guy standing is, the more likely that the fight had been interesting. This applies regardless of whether the player wins or not. Currently this value is considered just as important as the win/lose ratio, but I have a feeling that it should be worth just a little less (maybe).


                  Note: An additional value I've considered is the amount of standard turns taken for the borg to complete each game. However, while I postulate that ideally a fight should neither take too long or too short a time, I haven't figured out how to quantify this properly and fit it into the equation. So this value is ignored for now.

                  Not being familiar enough with the game and its uniques, I'd appreciate your input on whether this makes any sense at all!

                  Also, if you're really interested in how the other uniques ranked, I have a spreadsheet up here.

                  Comment

                  • fizzix
                    Prophet
                    • Aug 2009
                    • 3025

                    #24
                    It seems from your list of interesting uniques that you've found almost all the uniques that are in the midgame. The weaker half of characters will be killed, the stronger half will win. I think you'll need to filter the fight based on what the player's gear/level is.

                    Comment

                    • Riff
                      Rookie
                      • Jan 2012
                      • 23

                      #25
                      Originally posted by fizzix
                      It seems from your list of interesting uniques that you've found almost all the uniques that are in the midgame. The weaker half of characters will be killed, the stronger half will win. I think you'll need to filter the fight based on what the player's gear/level is.
                      Ah, I think you misunderstood. This wasn't to find the most interesting uniques in the whole game regardless of the player. This was specifically confined to the situation I have outlined above.

                      Comment

                      • will_asher
                        DaJAngband Maintainer
                        • Apr 2007
                        • 1124

                        #26
                        Almost nobody fights in an open room. The player is going to take almost all tough fights to a corridor, especially a bend in the corridor if the unique has escorts or summons. This could have a significant impact on your results because the PC has a much better chance fighting in a corridor.
                        This may be why none of the 'most interesting' uniques in your closest fights have any summoning spells because summons are much worse in an open room than in a corridor.

                        Also, judging by the equipment and CL, the character seems a little overpowered for his depth (EDIT: not that I would really know, because I don't usually get that far). If you used the borg to generate the character, then it may be because the borg plays slower than most real players.
                        Last edited by will_asher; April 9, 2012, 06:40.
                        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

                          #27
                          Well, what I'm looking to accomplish is to see how one might go about generating interesting unique monsters, given a particular player and environment. This is just to prove my theory for what can indicate interestingness as mentioned earlier. Once I get around to generating the unique monsters, they'll be play-tested using the same player character and environment.

                          I don't really expect any of the unique monsters produced through these particular simulations to be immediately usable in the game itself (though if it somehow turns out that they are appropriate, then that would be even more interesting!).

                          Originally posted by will_asher
                          Also, judging by the equipment and CL, the character seems a little overpowered for his depth. If you used the borg to generate the character, then it may be because the borg plays slower than most real players.
                          The character is actually an aggregate of four character dumps I obtained from the ladder(I think I posted details somewhere on page 2 of this thread). For this experiment's purpose, the player could be anything really, but I didn't want to choose things arbitrarily.

                          Originally posted by will_asher
                          Almost nobody fights in an open room. The player is going to take almost all tough fights to a corridor, especially a bend in the corridor if the unique has escorts or summons. This could have a significant impact on your results because the PC has a much better chance fighting in a corridor.
                          That is very likely true! I could configure a new test dungeon to see how different the results will be. Perhaps extend the room with a corridor connecting the bottom and the right sides? I'm really open to suggestions here, as long as it doesn't make the dungeon too huge (that would make the simulations take even longer).

                          Comment

                          • will_asher
                            DaJAngband Maintainer
                            • Apr 2007
                            • 1124

                            #28
                            Originally posted by Riff
                            That is very likely true! I could configure a new test dungeon to see how different the results will be. Perhaps extend the room with a corridor connecting the bottom and the right sides?
                            That would probably help. No need to make the dungeon big.

                            JSYK, wands of teleport other and staffs of teleportation aren't going to have any effect in a dungeon that small. You probably don't need them for this anyway because you're simulating fights to the death and those things are for escaping from a fight.
                            EDIT: In fact, having teleportation items may mess things up a little, because the borg might think they'd be helpful for escaping and waste a turn trying to use them.
                            Last edited by will_asher; April 9, 2012, 06:47.
                            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

                            • Magnate
                              Angband Devteam member
                              • May 2007
                              • 5110

                              #29
                              Well done Riff - this looks very interesting. It could also evolve into a useful check of the monster power algorithm - so please do include a way to log full results.
                              "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

                                #30
                                Originally posted by will_asher
                                In fact, having teleportation items may mess things up a little, because the borg might think they'd be helpful for escaping and waste a turn trying to use them.
                                Wouldn't teleportation somewhat help to afford a few turns to quaff potions/use long-range weaponry safely? But I do admit from some observations that the borg tends to use them inefficiently...

                                Question: Are there any other additional equipment/items you would suggest? More interesting choices might help make human play-testing more appealing as well now that I think about it.

                                Originally posted by Magnate
                                Well done Riff - this looks very interesting. It could also evolve into a useful check of the monster power algorithm - so please do include a way to log full results.
                                Thanks! Currently it logs every time it's done evaluating a unique (i.e. after 100 games with it). For now, it simply logs these details over those 100 games:
                                • Race index
                                • Time taken in seconds
                                • Games won
                                • Games lost
                                • Win/lose ratio (Games won/Games lost)
                                • Average standard turns (Definition of standard turns is similar to what I found in the code: p_ptr->total_energy / 100)
                                • Average % HP remaining (For player when won)
                                • Average % HP remaining (For monster when lost)
                                • Average % HP remaining (For both cases)


                                Once I do the unique generation, instead of the race index, the log will record the monster properties similar to that found in monster.txt.

                                Anything else you would suggest?

                                Comment

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