외국 사이트에서 찾은 Michael Cook께서 올린 글을 참고 하여 옮긴 소스입니다.
사용 방법은, 스크립트를 load 하거나, 복사 붙이기를 하신 후에
스크립트를 부를때,
Ran_Cave.generateMap("Data/Map001.rvdata2",5,1000,1000)
이라고 치시면 됩니다.
에디터에 기록이 되며, 맵이 없을시, 1000,1000만큼 제작이 가능합니다.(그만큼 오래 걸립니다.)
Ran_Cave.generateMap(파일명, 동굴 제작 반복 횟수, 넓이, 높이) 입니다.
참고 할만한 Wiki 자료 주소는 밑에 있습니다.
셀룰러(라이프 게임 알고리즘)을 이용한 랜덤과 유사한 동굴 제작 알고리즘
원리는, 라이프 게임 알고리즘에서 어느 정도 지나게 되면, 고정이 되는 경우가 생기는 걸 이용해서 자연스럽게 동굴을 만드는 방식을 채택한겁니다.
라이프 게임은 주위에 이웃이 얼마나 분포하고 있는가에 따라서 생/사가 나뉘게 되고, 그걸 반복하게 되면, 나오는 특징을 보는 게임입니다.
스크립트를 적용한 결과.
현재, 그냥 랜덤 케이브만 이용해서 표현이 되어서 자연스러운 벽이나 그런게 부족하지만, 약간만 수정을 가하면, 동굴의 모습을 갖출 수 있습니다.
언덕 부분은 이 스크립트를 돌린거고, 벽은 제가 직접 넣은겁니다.(이제 경계면 다듬기를 만들어보고, 벽 넣어봐야지...)