지도 생성 방법


27

작은 게임을 위해 단순하고 무작위로 생성 된 맵을 만들려고합니다.

이 게임은 육지와 바다가있는 세계의 하향식보기로 구성됩니다. 예를 들어 세계의 간단한 개요지도를 생각해보십시오.

내가 본 것 중 가장 가까운 것은 구 SimCity 게임 또는 Civ 시리즈 의 레벨 제너레이터로, 단일 대륙과 여러 섬 등을 선호 할 수 있습니다.

어떤 알고리즘이 적합할까요? 지도를 적당히 확대 / 축소 할 수 있어야하므로 "전체 세계"보기와 더 확대 된 로컬보기를 가질 수 있지만 나중에 정렬 할 것입니다.

처음에는 높이 개념이 필요하지 않지만 육지와 바다라는 두 영역 만 있으면 나중에 확장 할 수 있습니다.


나는 일종의 perlin-noise 함수를 사용하여 세대의 선을 따라 생각하고 있었지만, 본질적으로 2D 하이트 맵 인 것에서 높이 X의 모든 영역을 연결하는 선 세트에 이르는 방법을 모르겠습니다.
Cylindric

답변:


21

"유명한"Amit ( 다양한 게임 프로그래밍 주제 의 거대한 페이지 가있는)에는 게임 프로그래밍 블로그가 있으며, 흥미로운지도 생성 방법에 대한 3 부로 구성된 자습서를 마쳤습니다. 나는 정말로 읽은 것을 즐겼고, 세번째 기사의 맨 아래에는 꽤 훌륭한 데모가 있습니다.

"다각형 맵 생성" 제 1 , 제 2 , 제 3 부 .

이것은 당신이 당신의 요구에 적응하고 싶은 기술 일 수 있습니다! 최소한 그는 프로세스의 각 단계에서 사용하는 알고리즘에 대해 언급합니다. 그는 보로 노이 다각형 을 생성하여 시작하고 로이드 완화 를 사용 하여 더 고른 분포로 완화 하고 "세계를 땅과 물로 나누는 간단한 기능"을 사용합니다. 그런 다음 바다와 호수를 결정하기 위해 홍수를 채 웁니다. 거기에서 멈추거나 산과 계곡을 읽고 3D로 전환하는 것처럼 들립니다.


2
와우, 나는 Amit 's guide를 사용하여 A *를 배우기 위해 많은 양을 사용했습니다. 마치 그가 내 머리를 쳐다 보는 것과 같다 :) "<3 Amit"문신을 얻을 시간 ...
Cylindric

1
정말 대단해
Colm

보로 노이 :)
user712092
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.