절차 적으로 생성 된 세계에서 피쳐 영역을 식별하려면 어떻게해야합니까?


26

나는 섬을 짓고있다. 나는 고전적인 하이트 맵 솔루션을 사용합니다 : 언덕 구석 기능을 사용하여지도의 모서리를 피하고 고도를 만듭니다. 그런 다음 펄린 노이즈는 생물 군계를 다루는 기후 변수를 제공합니다. 이제 나는 어떤 방식 으로든 연결되어있는 두 가지 과제에 직면하고 있습니다.

  • Dwarf Fortress에서 세계 생성의 깔끔한 측면 중 하나는 게임이 영역을 "알고"사각형 모양은 아니지만 이름을 지정하는 방법입니다. 숲, 강, 언덕을 "인식"할 수 있기를 원합니다.지도를 스캔하고 그 지역을 해석하기 위해 어떤 종류의 알고리즘을 사용할 수 있습니까? 그리고 어떻게 저장하겠습니까? "tiles object"벡터로 구성된 기본 C ++ 그래프를 사용하고 있습니다.

  • 이 섬은 순전히 자연 지역뿐만 아니라 정치 지역으로 나뉘어 야합니다. 나는 산과 강을 사용하여 "자연적인 경계선"을 만들 수 있지만, 절차 적으로 생성 된지도는 왕국을 형성 할 멋진 "영토"를 가지지 않습니다. 나는 소국으로 둘러 쌓인 거대한 "리본 형태의"정치 지역을 가지고 있다는 것을 알 수 있었다. 또 다른 가능성은 도시 또는성에 적합한 지역을 찾는 것입니다. 그런 다음 주변 정치 영역을 "성장"하십시오. 그러나 다시, 나는 내 자신을 고안하기 전에 잘 알려진 알고리즘을 갖고 싶습니다.

이 질문은 약간 모호한 것으로 해석 될 수 있으므로이를 표현하는 한 가지 방법은 다음과 같습니다. (프로세스없이 생성 된 세계를 게임 플레이에 적합한 영역으로 분할하는 방법! 도움을 주셔서 감사합니다.


수정 해 주셔서 감사하고 내 영어의 나쁜 품질에 대해 죄송합니다 :)
Raveline

귀하의 영어는 훌륭합니다. 단지 "제목"이 StackExchange 사이트에서 질문으로 표현되는 것이 좋습니다.
dlras2

답변:


21

Amitp다각형지도 생성 에 대한 게시물에서 설명한대로 유역 을 사용하여 다양한 지역을 정의 할 것을 제안 합니다. 유역은 데모를 사용하여지도를 생성하는 것이 가장 좋습니다 . 유역을 사용하여 대륙을 세분화하는 데 도움이되는 이점은 해안선에 수직 인 경계를 제공하는 반면 산은 일반적으로 평행 경계를 제공한다는 것입니다.

지역을 세분화하는 경우지도의 다양한 생물 군계에 산, 유역 및 가장자리 감지 조합을 사용합니다.

또한 정치 지역은 일반적으로 많은 지역에 걸쳐 있음을 지적합니다. 나는 각 지역에게 바람직 등급을 할당 한 후, 최초의 지리적 영역을 생성하는 것입니다 (그것이 해안입니까??? 좋은 농장 땅이 금이다) 및 여행 비용 (가파른 지형은? 무거운 숲?) 그런 다음 사용하여 좋아하는 경로 지정 알고리즘 하는 발생 바람직한 지역 간 여행 열지도. 이것들은 당신의 길이 될 것이며, 거기에서 정치적 경계를 세울 수 있습니다. 이 경계는 일반적으로 그 안에 많은 도로가 있고 그 사이에 더 적은 도로가 있습니다.


1
도와 주셔서 감사합니다. 나는 이미 Amit의 솔루션을 알고 있었고, 그것이 매우 우아하다는 것을 알았지 만 뒤에 수학에 대해 충분히 알지 못했습니다 (조만간 공부해야하지만 지금은 아닙니다!). 유역 측면에서 생각하면 확실히 도움이 될 수 있으며 강 생성 알고리즘을 조정하는 것이 너무 어렵지 않아야합니다. 나는 도로와 정치적 경계를 세우는 당신의 해결책을 좋아합니다. 나는 그것을 정확히 어떻게 구현할 것인지 고려해야하지만 아이디어는 훌륭합니다!
Raveline

@Raveline-정치적 경계 생성을 사용하는 경우 여기에 의견을 말하고 알려주십시오! 나는 그것이 어떻게 나오는지보고 싶습니다.
dlras2

13

Dan Rasmussen의 답변에 추가하려면 :

내가 Perlin Noise ( 이 프로젝트 )에서 다각형 사용 ( 이 프로젝트 )으로 전환 한 주된 이유 중 하나는 다각형 넓은 지역 (정치 지역, 산림, 사막, 명명 된 지역, 경계 등)을 할당하기위한 훌륭한 구조 를 제공하기 때문입니다. 구조로 시작하여 맵을 생성하는 것은 다각형 렌더링과 비슷합니다. 비교적 쉬운 방법입니다. 지도에서 시작하여 구조를 추론하는 것은 컴퓨터 비전과 비슷합니다. 비교적 어려운 일이지만 가능한 일입니다. 구조와 맵을 모두 원하므로 구조 (노드 및 가장자리) 위에 맵을 작성하는 비교적 쉬운 경로를 결정했습니다.

그럼에도 불구하고 나는 내가 생성 한 것보다 더 큰 구조를 원한다는 것을 알았습니다. 유역은 이러한 큰 구조물을 건설하려는 시도 중 하나 였지만 다각형을 그룹화하는 더 많은 접근법을 시도해야합니다. 내가 좋아하는 것을 찾지 못했습니다.

난쟁이 요새가 어떻게하는지 잘 모르겠습니다. 그 사람들이 얼마나 뛰어난지를 감안할 때, 복잡한“컴퓨터 비전”유형의 알고리즘을 가지고 있다면 놀라지 않을 것입니다.


나는 당신의 경로가 그렇게 쉬운 지 확신 할 수 없지만 추론을 이해합니다 ... 프로젝트가 매우 겸손하기 때문에 너무 복잡하지는 않지만 다각형이없는 것을 패치하려고 시도합니다. 암시. (PS : 귀하의 웹 사이트는 놀라운 영감의 원천이며 사랑합니다!)
Raveline

3
다각형 맵 생성 기사는 훌륭했습니다.
Raine

3

첫 번째 질문은 가장자리 감지 알고리즘을 사용하여 자연 지역 (숲, 언덕 등)의 한계를 찾는 것입니다. 이런 종류의 문제에는 많은 알고리즘이 존재합니다.

두 번째 질문의 경우, 자신의 아이디어를 사용하여 성 (일반적으로 방어를 위해 언덕 꼭대기와 담수 근처)을 생성 한 다음 voronoi 알고리즘을 사용하여 각 성 주변에 영역을 가질 수 있습니다. 노이즈 또는 생물 군계 제한을 사용하여 경계를보다 사실적으로 만들 수 있습니다.

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