Dungeon Generation in the Gnomish Mines of NetHack

(boristhebrave.com)

66 points | by ibobev 3 days ago

6 comments

  • Rooster61 2 hours ago
    Oh wow. I had no idea this was based on cellular automata. It really does give a totally different feel versus the other sections of the dungeon.
  • bovermyer 1 hour ago
    This is my favorite kind of procgen blog post: here's what we did, and here's a little widget you can play with to see how it works.
  • OkayPhysicist 1 hour ago
    I think pass two is intended to introduce additional regions of concavity (mostly by replacing straight lines), which in effect introduces a bunch of inflection points, helping creating the organic "spiny" feel, as opposed to a "bubbly" feel. Without it, the resulting caves look a bit more like if you spilled liquid on a waxy surface, and less like thorns.

    If you go into the javascript and replace "for(let p=0;p<3;p++)" with "for(let p=1;p<3;p++)", and then re-execute the block in the console, you can generate run through a bunch of generations without step 2

  • juancn 55 minutes ago
    I don't get the neighboring tile numbering. Is it like this?

        0 1 2
        3 4 5
        6 7 8
    
    What's the current cell?

    A diagram would help

    • gjm11 32 minutes ago
      Nothing in the description refers to individual neighbouring cells. All those numbers are counts -- if 0 to 2 of the neighbouring cells are rock, do this, etc.
    • card_zero 30 minutes ago
      You're talking about the post, or something in the source code?

      In the post, it just counts how many of the 8 tiles are floor (which means 9 possibilities, including none of them). They aren't assigned index numbers.

      Edit: ha, we all jumped on you. So now this is explained three different ways.

    • Luc 31 minutes ago
      There’s no numbering, it just counts the neighbours. ‘0-2’ means zero, one or two neighbours.
  • jmclnx 1 hour ago
    Related, TNNT starts in 9 days (Nov 1), anyone can join the tournament.

    https://tnnt.org/

  • jdw64 1 hour ago
    I always have a lot of respect for people who are really good at procedural generation