Dungeon Generation in the Gnomish Mines of NetHack

(boristhebrave.com)

95 points | by ibobev 3 days ago

8 comments

  • LostBeard 24 minutes ago
    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy.
    • wincy 12 minutes ago
      Uhh, did you mean to post this in the Gnomish Mines of NetHack discussion?
  • OkayPhysicist 3 hours 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

  • Rooster61 4 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 4 hours 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.
  • ImJasonH 1 hour ago
    All that work for some miscreant dwarf archeologist with a pick-axe (me) to show up and dig it to hell for a bunch of worthless glass.
  • juancn 3 hours 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 2 hours 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 2 hours 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 2 hours ago
      There’s no numbering, it just counts the neighbours. ‘0-2’ means zero, one or two neighbours.
  • jmclnx 3 hours ago
    Related, TNNT starts in 9 days (Nov 1), anyone can join the tournament.

    https://tnnt.org/

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