Tworzę prostą grę RTS z góry na dół. Planuję na nim „losowo” generować mapy w locie, kiedy zajdzie taka potrzeba. Planuję, żeby wszystko działało w „karnetach”:
- Wypełnij teren całą trawą
- Wróć i dodaj losowe strumienie żwiru
- Zaokrąglij żwir
- Narysuj Krajobraz górski na drugiej warstwie
- Zaokrąglaj góry
- itd itd.
Teraz spójrz na to zdjęcie poniżej:
Ręcznie stworzyłem to za pomocą mojego edytora map, ale planuję, że będzie to wynik po, mam nadzieję, przejściu / kroku 3.
Jak powinienem decydować, kiedy i gdzie powinienem umieścić żwir, aby miał on co najmniej nieregularny kształt i wystarczająco sporadyczny, aby wyglądał naturalnie?
Dzięki, jeśli możesz! Wszelka pomoc jest mile widziana!
Na marginesie:
Każde przejście w zasadzie polega na iteracji przez wszystkie moje kafelki (mapa jest podzielona na kafelki 40x40) podobnie do tego:
for (int x = 0; x <= GRIDMAX - 1; x++) {
for (int y = 0; y <= GRIDMAX - 1; y++) {
//Terrain(x, y, 0) = SomethingHere;
}
}
źródło
Zasadniczo możesz używać generowania szumów Perlina do generowania map. Próbowałbyś wygenerować mapę wysokości i przypisać bloki żwiru do części mapy, które mają powyżej określonej wysokości.
Oto doskonały punkt informacyjny na temat wdrażania takiego systemu i różnych rodzajów terenu, który można wygenerować.
Przykłady zawierają o wiele więcej kroków, niż byś potrzebował, ale koncepcja jest taka sama.
Więcej na temat genów świata typu Minecraft
http://www.gamedev.net/blog/33/entry-2227887-more-on-minecraft-type-world-gen/
źródło