Stairs placement

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • fph
    Veteran
    • Apr 2009
    • 1030

    Stairs placement

    It seems to me that the placement of stairs in dungeons has changed a while ago (maybe since the new special room patterns have been introduced? Or since the new level generation algorithms such as the maze one?).

    Stairs used to be mostly inside rooms (see e.g. https://youtu.be/_NMSqmIIMv8?t=599), like in Nethack; now I mostly find them at the end of short dead-end corridors or inside special rooms.

    This makes it a bit more tedious to navigate the dungeon, at least for me. I used to roam around looking for spaces large enough to hold a room, and this would let me find both objects on the floor (which are still generated inside rooms) and stairs.

    Now it feels like (1) searching for objects and searching for stairs are two very distinct and conflicting goals when navigating the dungeon, and (2) I have to explore the level more thoroughly if I look for stairs, checking every nook and cranny instead of ignoring corridors that are clearly not heading anywhere.

    It's just a subtle change, but it makes the game more cumbersome to me.

    Another problem is that sometimes all the down stairs in a level are generated inside the same special room, so one could navigate 3/4 of the level without finding a single one. They used to be spread more uniformly.

    (Clearly I am referring to the case when @ has no access to detect stairs/mapping, which is often the case in the early game.)

    It's just a very minor detail, but I thought I should raise the issue as feedback anyway. (The game is in great shape, anyway, and kudos to the devs.)
    --
    Dive fast, die young, leave a high-CHA corpse.
  • Gwarl
    Administrator
    • Jan 2017
    • 1025

    #2
    I changed this in composband

    In that code, which probably hadn't changed much since 2.8.1, stairs are always placed next to walls which makes them almost always appear in corridors.

    I see the same behaviour in every variant I play.

    All I did was remove the check for being next to walls so that they were simply randomly placed, and it makes my dungeons more pleasant (for me) to navigate, but does often produce staircase clustering.

    Comment

    • Sphara
      Knight
      • Oct 2016
      • 504

      #3
      @fph Downstairs search and endless canine fights (all group C's and Z's) are probably two of the most tedious tasks in Vanilla for me. Both of these cease being an issue pretty early after you've gained plenty of ways to detect them. Although Z's remain dangerous all the way to the end, if you teleport carelessly. C's are there just to be on your way and there are lots of them.

      Originally posted by fph
      Another problem is that sometimes all the down stairs in a level are generated inside the same special room, so one could navigate 3/4 of the level without finding a single one. They used to be spread more uniformly.
      This can become a nightmare when playing ironman games. I've been forced to luck-shoot Phase Doors to get past some nasties guarding the stairs-clusters.

      Comment

      • Chud
        Swordsman
        • Jun 2010
        • 309

        #4
        Originally posted by fph
        Stairs used to be mostly inside rooms (see e.g. https://youtu.be/_NMSqmIIMv8?t=599), like in Nethack; now I mostly find them at the end of short dead-end corridors or inside special rooms.
        I hadn't really noticed this, but I don't mind it, personally. It makes it less likely that the stairs you're looking for are going to be surrounded by a whole pack of time hounds or something. Generally you can find some method of mapping reasonably early too, which takes care of the searching part.

        Comment

        • Nick
          Vanilla maintainer
          • Apr 2007
          • 9647

          #5
          This is definitely a change that was made, but I'm struggling to remember why now. I'll look back into it and see if it was actually necessary.
          One for the Dark Lord on his dark throne
          In the Land of Mordor where the Shadows lie.

          Comment

          • luneya
            Swordsman
            • Aug 2015
            • 279

            #6
            Originally posted by Nick
            This is definitely a change that was made, but I'm struggling to remember why now. I'll look back into it and see if it was actually necessary.
            As I recall, the idea was to make it so that the player's starting location (which is usually an upstair) was never in the middle of a group of hounds or the like. I suggested at the time that the smarter solution would be to simply modify player placement and leave the stair generation formula unchanged, but as usual, nobody listened.

            Comment

            • Huqhox
              Adept
              • Apr 2016
              • 145

              #7
              Originally posted by luneya
              As I recall, the idea was to make it so that the player's starting location (which is usually an upstair) was never in the middle of a group of hounds or the like. I suggested at the time that the smarter solution would be to simply modify player placement and leave the stair generation formula unchanged, but as usual, nobody listened.
              IIRC it was to avoid the situation where the player takes a down stair, appears in a room of monsters with high energy who then get a free instadeath attack

              Although Angband is full of potential instadeath situations it was felt that this wasn't one that could be foreseen by the player and avoided and so stairs were removed from room.

              I agree with the first poster that it has become a chore to find them as you need to explore every nook and cranny sometimes without effective detection
              "This has not been a recording"

              Comment

              • Pete Mack
                Prophet
                • Apr 2007
                • 6883

                #8
                NPP did this originally. There, it is only the entrance stair that is tucked away. All the others are as usual.

                Comment

                • Werbaer
                  Adept
                  • Aug 2014
                  • 182

                  #9
                  Originally posted by fph
                  It seems to me that the placement of stairs in dungeons has changed a while ago (maybe since the new special room patterns have been introduced? Or since the new level generation algorithms such as the maze one?).
                  At least since 2.7.9v6, the game tries to place stairs othogonal adjacent to multiple walls.

                  I assume it feels different since the introduction of interesting rooms. In early times, you had lots of large rooms, connected by short corridors. Odds were higher that the placement algorithm didn't find a suitable safe place, and had to place the stair in an open room.
                  Many of the new rooms contain many walls. And the corridors are more twisted than in old days. Odds are much higher that the algorithm finds a safe spot near multiple wands.

                  As a side effect of the placement constraint, a checkerboard moated room has a high chance to contain a stair (or often several stairs), since each empty grid is othogonal adjacent to 4 walls. I had observed this before; now i know the reason (orthogonal check, ignoring diagonal adjacent grids).

                  Comment

                  • Sky
                    Veteran
                    • Oct 2016
                    • 2321

                    #10
                    i like the change per-se, what i do not like is that sometimes stairs bunch up all in the same space.
                    i dont know how this works, but im guessing roughly that each level has X stairs randomly assigned.
                    Then some rooms are "a stairs room" where 4-8 stairs all group together, which leaves all the rest of the level without ANY stairs.
                    "i can take this dracolich"

                    Comment

                    • Voovus
                      Adept
                      • Feb 2018
                      • 158

                      #11
                      I agree that it has sometimes become a bit frustrating to search for an exit compared to the olden days.

                      As a random suggestion, perhaps, instead of generating exits on empty squares that have three adjacent walls, the stairs could be generated on top of walls that are next to corridors, that is convert
                      ##.#
                      to
                      #>.#
                      I haven't thought this through properly, but I think this would remove the need for generating (and exploring) random dead-end corridors without introducing the instakill by hounds situation mentioned by luneya.

                      Comment

                      • Gwarl
                        Administrator
                        • Jan 2017
                        • 1025

                        #12
                        Isn't being dropped in the middle of a pack of hounds only a problem if you're playing ironman or without connected stairs?

                        Comment

                        • Derakon
                          Prophet
                          • Dec 2009
                          • 9022

                          #13
                          Originally posted by Gwarl
                          Isn't being dropped in the middle of a pack of hounds only a problem if you're playing ironman or without connected stairs?
                          Disconnected stairs is significantly more fun for me as it removes the temptation of stairscumming and means I don't have a safe area to retreat to at the start of levels. But there's a difference between "not feeling safe" and "not having any options". I've died before because I spent my first turn on casting Detection instead of Teleport, thereby revealing the monster in the darkness that then spent their turn killing me. It's not a lot of fun.

                          It sounds to me like the main issue currently is that stairs tend to cluster. It shouldn't be too hard to write a de-clustering algorithm something like this:
                          Code:
                          stairs = []
                          for (int i = 0; i < num_stairs; i++) {
                            for (int j = 0; j < num_tries; j++) {
                              p = generate random position;
                              foreach stair in stairs {
                                if (distance(p, stair) < threshold) {
                                  p is not valid;
                                }
                              }
                              if (p is valid or j == num_tries - 1) {
                                stairs.append(p);
                              }
                            }
                          }
                          I assume there's already code that defines a "valid" stair placement (e.g. not being inside of a wall, and the previously-mentioned number of adjacent walls). If we just tell it that stairs also aren't valid if they're too close to other stairs, then the stairs ought to be more spread out, no?

                          Comment

                          • fph
                            Veteran
                            • Apr 2009
                            • 1030

                            #14
                            Originally posted by Gwarl
                            Isn't being dropped in the middle of a pack of hounds only a problem if you're playing ironman or without connected stairs?
                            It's also a problem if the room is not lit and you can't see the hounds.
                            --
                            Dive fast, die young, leave a high-CHA corpse.

                            Comment

                            • wobbly
                              Prophet
                              • May 2012
                              • 2633

                              #15
                              Originally posted by Sky
                              i like the change per-se, what i do not like is that sometimes stairs bunch up all in the same space.
                              i dont know how this works, but im guessing roughly that each level has X stairs randomly assigned.
                              Then some rooms are "a stairs room" where 4-8 stairs all group together, which leaves all the rest of the level without ANY stairs.
                              A normal level has 3-4 downstairs & 1-2 upstairs. Some of the room templates have a single stair but this is placed in addition to the normal level stairs.

                              It looks for a square that is empty, in-bounds, not in a vault & surrounded by 7 walls. It checks the squares on the level in random order.

                              I'm going to have a guess that there was an accidental change when interesting/special rooms were added. If you have a level with 4 corridor ends & add a room with 20 perfect stair positions its 5x more likely to end up in the room then the corridor. Those "stair rooms" have a lot of potential spots (I think the secret door is counted as a wall in the check).

                              Comment

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