OkayPhysicist 6 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

ImJasonH 3 hours 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.

Rooster61 7 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.

juancn 5 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 5 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.

  • Luc 5 hours ago

    There’s no numbering, it just counts the neighbours. ‘0-2’ means zero, one or two neighbours.

  • card_zero 5 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.

jdw64 6 hours ago

I always have a lot of respect for people who are really good at procedural generation