Object and Monster generation question

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Zikke
    Veteran
    • Jun 2008
    • 1069

    Object and Monster generation question

    How does the game determine whether or not to spawn an out of depth monster (excluding vaults)? How many levels OOD is possible?

    Regarding items, I heard at a certain dlvl, any GOOD or better items are increased by 10 levels when it comes to rolling for drops. When does this start?


    I am trying to make a spreadsheet for myself to document when certain key resists, monsters, or items appear at which dlvl so that I can know when to "not dive further until" or "dive to this level to find ___"


    Thanks!

    edit: Also, why do all armor items in the ego_items.txt edit file have a zero depth value?


    Example: Boots of Speed

    Code:
    N:59:of Speed
    X:25:0
    W:0:24:0:100000
    C:0:0:0:d10
    T:30:0:99
    F:SPEED | HIDE_TYPE
    Last edited by Zikke; April 13, 2010, 21:25.
    A(3.1.0b) CWS "Fyren_V" NEW L:50 DL:127 A++ R+++ Sp+ w:The Great Axe of Eonwe
    A/FA W H- D c-- !f PV+++ s? d P++ M+
    C- S+ I- !So B ac++ GHB? SQ? !RQ V F:
  • Sirridan
    Knight
    • May 2009
    • 560

    #2
    Originally posted by Zikke
    How does the game determine whether or not to spawn an out of depth monster (excluding vaults)? How many levels OOD is possible?

    Regarding items, I heard at a certain dlvl, any GOOD or better items are increased by 10 levels when it comes to rolling for drops. When does this start?


    I am trying to make a spreadsheet for myself to document when certain key resists, monsters, or items appear at which dlvl so that I can know when to "not dive further until" or "dive to this level to find ___"


    Thanks!

    edit: Also, why do all armor items in the ego_items.txt edit file have a zero depth value?


    Example: Boots of Speed

    Code:
    N:59:of Speed
    X:25:0
    W:0:24:0:100000
    C:0:0:0:d10
    T:30:0:99
    F:SPEED | HIDE_TYPE
    1. happens in monster2.c

    Code:
    406	s16b get_mon_num(int level)
    407	{
    408	        int i, j, p;
    409	
    410	        int r_idx;
    411	
    412	        long value, total;
    413	
    414	        monster_race *r_ptr;
    415	
    416	        alloc_entry *table = alloc_race_table;
    417	
    418	        /* Occasionally produce a nastier monster in the dungeon */
    419	        if (level > 0 && one_in_(NASTY_MON))
    420	                level += MIN(level / 4 + 2, MON_OOD_MAX);
    and in defines.h...
    Code:
    259	#define NASTY_MON    25        /* 1/chance of inflated monster level */
    260	#define MON_OOD_MAX  10        /* maximum out-of-depth amount */
    Which means there is a 1/25 chance of getting an OOD monster, and the increased level of that OOD is (level/4 + 2) or 10, whichever is smaller.

    Example, at level 15 the highest out of depth possible is 6.

    2. Not sure, I think at 30, when only magic stuff drops, but I'm too lazy to look through the code some more.

    3. Elvenkind have a depth of 60 I think, but the rest can drop any time but may be quite rare. I'm sure it's just so people can have nice things early on too that aren't artifacts, when later on in the game artifacts often surpass most egos. (most, not all, mind you)

    Comment

    • Zikke
      Veteran
      • Jun 2008
      • 1069

      #3
      So in theory, a pair of boots on dlvl 1 has the same chance of being "of Speed" as a pair of boots on dlvl 100?


      And thank you for the code on generating OOD monsters.
      A(3.1.0b) CWS "Fyren_V" NEW L:50 DL:127 A++ R+++ Sp+ w:The Great Axe of Eonwe
      A/FA W H- D c-- !f PV+++ s? d P++ M+
      C- S+ I- !So B ac++ GHB? SQ? !RQ V F:

      Comment

      • Sirridan
        Knight
        • May 2009
        • 560

        #4
        Originally posted by Zikke
        So in theory, a pair of boots on dlvl 1 has the same chance of being "of Speed" as a pair of boots on dlvl 100?


        And thank you for the code on generating OOD monsters.
        No prob, but no, deeper you get the more likely you'll get ego items, and therefore speed boots.

        But things in town that drop items (Farmer Maggot, Mean Looking Mercs, Veterans) can drop boots of speed. There was a screenshot or a post on that not too long ago IIRC.

        Comment

        • buzzkill
          Prophet
          • May 2008
          • 2939

          #5
          Originally posted by Sirridan
          Which means there is a 1/25 chance of getting an OOD monster, and the increased level of that OOD is (level/4 + 2) or 10, whichever is smaller.

          Example, at level 15 the highest out of depth possible is 6.
          This seems weak. A 1 in 25 chance of getting a monster that's sightly OoD (at dl32 or higher only 10 levels OoD). Does anyone else think that there is not enough variation here? Good old predictable Vanilla, I guess.
          www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012.
          My banding life on Buzzkill's ladder.

          Comment

          • Derakon
            Prophet
            • Dec 2009
            • 9022

            #6
            I'd be all for more variation in monster and item placement. Back in the way-old days generation depths were a lot more variable, and you could find nicer gear much more often (for example, PDSM was more of a "once every few winners" deal rather than a "three times in one player's life" deal). Polymorph could generate any non-unique monster (so polymorphing townspeople was a fun way to check out powerful enemies in a somewhat-safe manner, by standing on the staircase). And so on.

            Comment

            • d_m
              Angband Devteam member
              • Aug 2008
              • 1517

              #7
              Originally posted by buzzkill
              This seems weak. A 1 in 25 chance of getting a monster that's sightly OoD (at dl32 or higher only 10 levels OoD). Does anyone else think that there is not enough variation here? Good old predictable Vanilla, I guess.
              Maybe. It's actually a lot more likely to generate tougher monsters than the old code which it replaced (which was a lot more complicated and a lot less likely to generate a monster 10 levels out-of-depth). There was a discussion about the change on the mailing list and on IRC if you're interested.

              There has been talk about moving to a function that could produce *any* depth of monster or item (obviously with a correspondingly small probability) but tuning the function so it "felt" right would be tricky and no one's done it yet.

              Patches welcome
              linux->xterm->screen->pmacs

              Comment

              • buzzkill
                Prophet
                • May 2008
                • 2939

                #8
                Originally posted by d_m
                There was a discussion about the change on the mailing list and on IRC if you're interested.

                There has been talk about moving to a function that could produce *any* depth of monster or item (obviously with a correspondingly small probability) but tuning the function so it "felt" right would be tricky and no one's done it yet.
                Mailing list? IRC, what's that? I didn't know of such things.

                The OoD object generation seems to have a *lot* more variability and seems about right. It would be nice if the monsters were also. I guess I'll just sit around and wait.

                EDIT: A quick fix, if anybody notices this, would be to change
                Code:
                259	#define NASTY_MON    25        /* 1/chance of inflated monster level */
                to this
                259	#define NASTY_MON     [COLOR="Yellow"]5 [/COLOR]       /* 1/chance of inflated monster level */
                Last edited by buzzkill; April 15, 2010, 03:41.
                www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012.
                My banding life on Buzzkill's ladder.

                Comment

                • Derakon
                  Prophet
                  • Dec 2009
                  • 9022

                  #9
                  It seems like a simple bell curve would work fine. You could start with a curve where monsters are generated more than the current max OOD-ness less than .1% of the time (basically similar to current behavior), and gradually increase that until it feels right.

                  Comment

                  • d_m
                    Angband Devteam member
                    • Aug 2008
                    • 1517

                    #10
                    Originally posted by buzzkill
                    Mailing list? IRC, what's that? I didn't know of such things.
                    The mailing list isn't very active right now but sometimes there is discussion on it. I found the email detailing the changes to OOD monsters:



                    The IRC channel is #angband-dev on freenode. It too is pretty inactive right now.
                    linux->xterm->screen->pmacs

                    Comment

                    • PowerDiver
                      Prophet
                      • Mar 2008
                      • 2820

                      #11
                      Originally posted by Derakon
                      It seems like a simple bell curve would work fine. You could start with a curve where monsters are generated more than the current max OOD-ness less than .1% of the time (basically similar to current behavior), and gradually increase that until it feels right.
                      What feels wrong now? Do you really want people dying to ethereal dragons at DL 30?

                      Comment

                      • Pete Mack
                        Prophet
                        • Apr 2007
                        • 6883

                        #12
                        Originally posted by PowerDiver
                        What feels wrong now? Do you really want people dying to ethereal dragons at DL 30?
                        Well, I would have said no, but after seeing someone gain 33 levels in a single turn, I'm thinking death molds on dl 1 would be nice.

                        Comment

                        • Derakon
                          Prophet
                          • Dec 2009
                          • 9022

                          #13
                          Originally posted by PowerDiver
                          What feels wrong now? Do you really want people dying to ethereal dragons at DL 30?
                          I wouldn't want this to be common, but yes, I think it should be possible. You'd have to be pretty phenominally unlucky to get an ethereal dragon (or other invisible passwall badass) at DL30, though: not only would you need to get a large OOD roll, but then you'd also need to pick that particular monster instead of one of the other much more common monsters from the new depth.

                          In my opinion it makes the game more interesting to have the occasional totally unfair challenge and the occasional totally "undeserved" item drop. Maybe I'm just viewing things through the lens of nostalgia, but early versions of Angband definitely did have a wider spread on item drops and monster placements, and were quite fun. And it seems like there's a certain faction of players here who want to make the game "solvable" (which is to say, all deaths should be clearly the player's fault), which to my mind makes things less exciting. Without the risk of failure, the joy of victory is lessened, and one of the ways of injecting that risk into the game is to make it possible for there to be anything around the next corner.

                          Comment

                          • PowerDiver
                            Prophet
                            • Mar 2008
                            • 2820

                            #14
                            I'm not personally opposed to instakills, but there has been a movement in that direction. There is even a ticket something like "avoid unavoidable deaths".

                            Why not add a 1/10,000 each time you take the stairs that you fall and die? That's one way to inhibit stairscumming. I bet people would complain.

                            Comment

                            • Derakon
                              Prophet
                              • Dec 2009
                              • 9022

                              #15
                              The difference between random low-odds "you tripped on the stairs" and random low-odds "there's a huge badass monster on this level" is that the latter probably isn't an unavoidable death. Witness the fact that some players routinely take woefully under-equipped and under-leveled characters deep into the dungeons just because they can, and often make it quite a bit deeper than you'd think possible. Most monsters aren't going to kill you before you get a chance to do something about it, even if they massively out-power you. In other words, the "It breathes poison. -more- You die." really isn't that common an instadeath.

                              So in other words, I support a 1-in-10,000 chance of generating really powerful monsters, because given the way the game works, oh, 98 out of 100 times that such a monster is generated, the player will still be able to escape after seeing it. That makes for a .0002% instadeath rate, which I call acceptable.

                              Comment

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