NetHack Gnomish Mines 동굴 생성 원리, 셀룰러 오토마타로 만드는 과정 해설
- NetHack의 Gnomish Mines 레벨은 셀룰러 오토마타로 유기적인 동굴 지형을 만들며, 저자가 웹 시각화 도구와 함께 과정을 설명함
- 초기 맵은 셀의 약 40%를 바닥으로 무작위 지정한 뒤 네 번의 셀룰러 오토마타 패스를 적용함
- 1차 패스는 주변 바닥이 많은 칸을 바닥으로 바꿔 무작위 타일을 넓은 공간으로 뭉치는 클러스터링 패스이며, 셀을 즉시 갱신하는 비버퍼 방식으로 처리함
- 3차와 4차 패스는 주변 암석이 6~8개면 암석이 되는 침식 방식으로 모서리를 다듬고 작은 섬을 없앰
Hacker News 의견들
오 나 이거 셀룰러 오토마타 기반인 줄 몰랐음. 다른 던전 구간이랑 분위기가 완전히 다르더라.
이런 게 제일 좋은 procgen 글임. 만든 방식이랑 바로 만져볼 수 있는 위젯을 같이 주니까 이해가 빠름.
예전에 쓴 글도 참고할 만함. 방이랑 미로 생성 얘기인데 결이 비슷함.
2차 패스는 직선을 끊어서 오목한 부분을 더 만드는 역할 같음. 그래서 둥근 물방울 느낌 대신 가시 같은 뾰족한 느낌이 남음. 자바스크립트에서 for(let p=0;p<3;p++)를 p=1로 바꾸고 콘솔에서 다시 실행하면 2차 패스 없이 돌려볼 수 있음.
이웃 칸 번호 매기는 방식이 어떤 건지 모르겠음. 다이어그램 있으면 좋겠음.
번호 없음. 숫자는 그냥 이웃 중 바닥이 몇 개인지 세는 값임. 0~2면 바닥이 0개, 1개, 2개 중 하나라는 뜻임.
맞음. 8칸 중 바닥 개수를 세는 거라 가능한 값이 0부터 8까지 9가지임. 번호는 안 붙음.