간단한지도, 4 가지 생물 군계 및 배포 방법


16

기본 아이디어는 다음과 같습니다. 나는 무작위로 생성 된 전 세계와 여러 개의 던전 입구가 흩어져있는 도적, 어쩌면 드워프 요새 같은 게임을 가지고 있습니다. 나는 이미 던전을 기본적으로 다루었지만 오버 월드의 측면에 붙어 있습니다.

2D 화면 맵으로 간주되는 전 세계는 각각 고유 한 총 화면 수를 가진 초원, 사막, 눈, 늪 등 4 가지 테마 또는 생물 군계의 블로 브형 분포를 가져야합니다. 지도가 8x8이며 64 개의 고유 한 화면이 있다고 가정 해 보겠습니다. 그 중 절반은 초원, 1/4 사막, 늪과 눈은 각각 1/4이 될 수 있습니다.

도시와 시작 위치는 있지만 가능한 던전 입구가없는 가능한 세계지도 모형

팔레트 축소로 인해 눈이 늪과 같은 색이되었습니다. 원래 하단 모서리에는 8 개의 스노우 스크린이 있었고 가운데에는 약간의 8 스크린 늪 지역이있었습니다. 죄송합니다. 위치 마커를 무시하십시오.

내가 얻을 수있는 가장 좋은 것은 약간의 뱀 모양이었고, 종종 눈을 통한 사막의 뱀과 같은 무의미한 조합으로 충분합니다 (또는 그 반대). 나는 내 인생에서 그것을 멋지게 만드는 방법을 알아낼 수 없다. 모형에서와 같이 바이오 메 맵을 어떻게 생성합니까?

자, 요청에 따라 : 세계는 실제로 그 예보다 크지 않으며, 내가 필요한 것은 눈이 사막에 닿을 수 없다는 추가 제한과 함께 주제 모양을 결정하는 얼룩을 퍼뜨리는 방법입니다. 화면이 스크롤되지 않고 화면이 "사막"으로 설정되어 있으면 화면에 잔디가 없습니다.


타사 라이브러리를 사용 하시겠습니까? 아니면 고유 한 솔루션을 코딩 하시겠습니까?
William Mariager

나는 거라고 선호하는 내 자신의 코딩.
Kawa

생물 군계 크기는 고정되어 있습니까?
kaoD December

지도 생성에 따르는 정확한 규칙의 포인트 목록으로 게시물을 편집 할 수 있습니까? 우리가 원하는 것을 정확히 아는 문제를 다루는 것이 더 쉬울 것입니다.
윌리엄 마리아 거

편집 및 생물 군계 크기, 예를 들어 그것들과 함께갔습니다. 16x16 세계의 경우 사막 여전히이 지역의 4 분의 1이 될 있지만 대부분 특정 지역이있을 것입니다.
Kawa

답변:


8

이 고양이를 피부에 바르는 방법은 여러 가지가 있지만, 더 흥미로운 방법 중 하나는 세포 오토마타를 이용하는 것 입니다. 빈 그리드로 시작하여 임의의 위치에 몇 가지 시드 시작 셀을 추가하십시오. 이것들은 몇 가지 기본 비 혼합 유형의 생물 군계 여야합니다. 말 : 잔디, 사막, 눈, 바다.

임의의 특징을 가질 수있는 자신의 디자인의 성장 규칙을 기반으로합니다 (기술적으로 CA의 아이디어를 깨뜨릴 염려가 없습니다. 그렇습니까?). 바다에 있고 잔디 나 늪 옆에있는 경우 늪으로 변할 수있는 추가 규칙이있을 수 있습니다. 눈 옆에 있으면 얼음이 될 수 있고 사막 근처에 있으면 말라서 사막이 될 수 있습니다.

다른 혼합과 이론적으로는 얼어 붙은 늪이나 툰드라와 같은 서브 믹스, 또는 넓은 초원에서 자란 넓은 숲에서 자라는 정글도 마찬가지입니다.

가능성은 무한하며 지속적 일 수도 있습니다. 이러한 규칙은 모두 단순하므로 시간이 지남에 따라 변화하는 환경을 구현할 수 있습니다. 높이 정보와이를 고려한 규칙을 결합하여 호수와 강을 키우고 산과 다른 멋진 것들을 통해 숲의 성장을 차단할 수 있습니다.

이 높이 맵은 펄린 노이즈, 다이아몬드 스퀘어 또는 다른 전체 CA 모델의 결과 일 수 있습니다. 실제로, 판 구조론을 모델링하고, 산을 밀고, 도랑을 가라 앉히거나, 강이 협곡을 만들어 경관을 낮추도록함으로써 시간이 갈수록 그지도를 수정할 수 있습니다.

이 토끼 구멍은 영원히 연장됩니다.


CA 제안에 대한 찬성. Valmond의 의견과 잘 맞습니다.
Kawa

이 문제에 대해 CA 솔루션이 얼마나 간단한 지 놀랄 것입니다. 간단한 규칙과 임의의 시작지도는 놀랍도록 상세하고 '현실적인'풍경을 만들 수 있습니다.
DampeS8N

CA 원칙을 준수했습니다. 사막과 눈을 따로 유지하는 유일한 방법은 절대적인 위치 규칙이지만 아직은 잘되지 않습니다.
Kawa

1
눈 / 사막 문제에 대한 하나의 선택적인 해결책은 눈이 사막과 만나는 곳에서 다른 유형의 생물 군계를 만드는 규칙을 마련하는 것입니다. 늪. 그러면 늪은 평소처럼 계속 자랄 수 있습니다. 여전히 눈 / 사막 경계가있을 수 있지만 실제로는 다소 자연 스럽습니다. 실제로, 지구상의 대부분의 사막은 눈으로 덮여 있습니다. 요컨대, 눈은 어떤 이웃이 사막이라면 늪으로 변하는 규칙을 가질 수 있습니다.
DampeS8N

11

짧은 대답이지만 실제로이 기사를 확인해야합니다 -www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/ 합니다. 지정된 습도 영역과 고도 영역을 기준으로합니다. 그러나 귀하의 경우 원하는 분포에 대한 자체 값을 설정하십시오.

(대량 편집) 적용해야 할지도 생성 개념에 대해 훨씬 명확하게 설명하겠습니다. 부동 소수점 값으로 화면 당 1 단위의 좌표계를 사용하십시오. 마치 보로 노이 다이어그램을 만드는 것처럼 작은 임의의 점 세트를 생성하지만 실제로는 임의의 모양을 만들지는 않습니다. 대신, 생물 군계를 설정 한 후지도에 의해 다이어그램이 암시 되고 근사화됩니다.

각 점은 각 생물 군계 영역의 중심입니다. 포인트를 생물 군계와 연관시키기위한 고유 한 규칙을 설정하십시오. 예를 들어 동쪽에서 남쪽으로 또는 북쪽으로 너무 멀리 사막을 원하지 않는 경우 특정 X 값보다 크고 특정 Y 범위 내에있는 모든 점은 사막을 둘러싸고 있습니다.

각 화면을이 점 중 하나와 연관 시키십시오.이 점은 XY 좌표 (예 : 4.5, 8.5)로 화면 중심을 가져 와서 화면 중심에 가장 가까운 점을 반환하여 수행됩니다.

다음은 화면 격자에 모양 다이어그램을 개략적으로 나타낸 것입니다. 우리는 실제로 모양을 둘러싼 선에 관심이 없지만 화면이 모양 영역에 근접하기 시작하는 방법을 보여줍니다.

보로 노이 그리드

각 화면에 대해 반복하여 각각에 고유 한 생물 군계를 제공합니다.


나는 전에 그것을 보았고, 그것은 내 취향으로는 조금 바주카 포 모기입니다.
Kawa

글쎄요, 그것은 약간 가벼워지고 있습니다. 그것은 매우 바주카 카온 모기입니다. 8x8 예제는 단순한 예제가 아니라 세계가 그 솔루션을 정당화하기에 충분히 크지 않을 것입니다.
Kawa

좋아, 지금 봤어 당신은지도의 모든 타일마다 생물 군계를 구분할 필요가 없습니다. 또한이 기사의 제안 된 개념은 저자에게 맞춤화 된 것처럼 보이지만 일부 부품을 선택할 수 있습니다. 더 명확하게 답변을 편집하고 있습니다.
ChrisC

여전히 너무 복잡한 솔루션입니다. 여기에는 키나 습도가 없습니다. 모든 I 필요, 모든 나는 의미 에게 필요한 양의 사막, 늪, 눈 최대의 모양 "밖으로 확산"의 종류에 어떤 방법이 "눈이 너무 가까이 사막을 얻을 수 없다"와 같은 몇 가지 추가 규칙을 다음이었다 위해 .
Kawa

@ 카와 : 당신이 파고 자신의 솔루션을 작성할 준비가 된 것 같습니다! 내가 알 수 있듯이, 당신은 그것을 모두 당신의 마음에 시각화했습니다, 그냥 IT하십시오! :) 원하는대로 세계에서 최고의지도 생성기가 될 필요는 없습니다. ;)
Zolomon

1

답변 1 :

그것이 완료되면 눈과 사막을 키우고 (금지 된) 교차로를 찾고 거기에서 (약간 큰) 늪을 자라십시오.

반복하고 반복하십시오.

답변 2 :

'blob'부분의 경우 요청한대로 주석을 게시물로 옮겼습니다.

반복을 통해 성장한다면, 즉. 사막의 1 포인트를 설정 한 다음 임의의 사막 포인트 주위에서 무작위로 자랍니다 (각각 기존의 사막 포인트 중 하나를 무작위로 가져 와서 측면 중 하나에 1 포인트를 추가하십시오 (아직 아무것도없는 곳)) 그러면 blobby 효과가 나타납니다 ( 예를 들어 긴 줄은 없습니다).

근처 타일에 눈이있는 경우 사막 타일을 만들 수 없도록 규칙을 추가 할 수도 있습니다.


그것은 문제의 거친 측면에 정확히 도움이되지 않습니다.
Kawa

2
반복을 통해 성장한다면, 즉 사막의 1 포인트를 설정 한 다음 임의의 사막 포인트 주위에서 무작위로 자랍니다 (각각 기존 사막 포인트 중 하나를 임의로 가져 와서 측면 중 하나에 1 포인트를 추가하십시오 (아직 아무것도없는 곳)) 그러면 blobby 효과가 나타납니다 ( 예를 들어 긴 줄은 없습니다).
Valmond

근처 타일에 눈이있는 경우 사막 타일을 만들 수 없도록 규칙을 추가 할 수도 있습니다.
Valmond

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