67 points ibobev 3 days ago 9 comments

Rooster61 2 hours ago | parent

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 | parent

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.

jdw64 1 hour ago | parent

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

jmclnx 1 hour ago | parent

Related, TNNT starts in 9 days (Nov 1), anyone can join the tournament.

https://tnnt.org/

OkayPhysicist 1 hour ago | parent

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 56 minutes ago | parent

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 33 minutes ago | parent

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 32 minutes ago | parent

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

card_zero 32 minutes ago | parent

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.