폐광 생성 과정에 대해 알아봅시다



0.4% 확률로 폐광 시작 청크를 결정한 후 시작 청크에서 주변으로 뻗어나가는 식으로 생성됩니다.



맨 처음에 폐광 시작지점이 생성됩니다


이렇게 생긴 부븐을 한번쯤은 보신 적 있을 겁니다.


시작 지점은 폐광 하나당 1개만 생성됩니다.


폐광은 시작지점 외에 3종류의 조각으로 이루어져 있습니다


1. 복도


한 조각당 길이 10~20칸이며 


1/3 확률로 레일이 배치되고


1/35 확률로 동굴거미 스포너가 생성됩니다.

2.계단

3.교차로


25% 확률로 2층짜리 교차로로 생성되며, 위층에서도 폐광이 뻗어 나갈수 있게 하는 역할을 합니다.



생성과정


조각 1개가 생성될 때 


복도가 될 확률은 70%,


교차로는 20%


계단은 10%입니다


그리고 중심지점에서 80블럭 밖으로는 생성되지 않습니다.


시작 지점에서 랜덤한 방향으로 조각들을 생성합니다(4방향 전부 생성가능, 같은방향으로 최대 2번)

시작지점에서 뻗아나간 조각들 끝부분에서 또다시 다른 조각들을 생성합니다.

높이가 1칸 차이나게 생성될 수도 있습니다


그리고 기존 생성된 조각과는 절대 겹치지 않게 생성됩니다


(만약 겹치는 부분이 있다면 주변에 다른 폐광과 겹친 경우임)




조각의 종류별로 뻗어나가는 방법이 다릅니다.



복도의 경우 각각 25%확률로 가던 방향의 왼쪽이나 오른쪽으로 꺾어지고


50%확률로 가던 방향으로 생성됩니다.


그리고 복도 중간에서도 옆 방향으로 뻗어 나갈 수 있습니다.(여러번 가능)




교차로의 경우 남은 3방향으로 전부 뻗어나갑니다




2층 교차로의 경우 아래층은 그대로 3방향으로 뻗어나가고


윗층은 가던 방향의 왼쪽이나 오른쪽으로 뻗어나갑니다



계단 다음에 생성될 조각은 무조건 가던 방향으로 생성됩니다.



이런 방법들로 하나의 조각에서 다른 조각들이 생성되고, 그 생성된 조각들에서 또 다른 조각들이 생성되는 과정이 반복되는 형식인데 

이련 형식을 프로그래밍 용어로 트리라고 합니다.





무한생성을 막기 위해 생성되는 과정은 8번까지만 반복됩니다.


폐광 조각들이 뻗어나가는 모습을 시뮬레이션 해보았습니다