Jak mogę stworzyć losowy „świat” w silniku kafelkowym?

22

Projektuję grę, która działa na klasycznym silniku kafelkowym, ale którego świat jest generowany losowo. Czy istnieją gry lub algorytmy, które to robią? Algorytmy generowania procedur, które znalazłem, nigdy nie używają systemu kafelków ... Jaki byłby najlepszy sposób na wygenerowanie całego „świata” za pomocą systemu kafelków? Nie mówię o labiryntach bloków, ale dzięki ogólnej „mapie świata”

lezebulon
źródło
5
To było zadawane wiele razy, spróbuj wyszukać tutaj: generacja losowego świata Edycja: Oto silnik kafelków.
Richard Marskell - Drackir
2
-1: To pytanie jest niemożliwe do odpowiedzi w obecnej formie. Jest to zbyt niejasne, tylko stwierdzając, że jest to „mapa świata” z kafelków. OK, jaki rodzaj płytek? Co te kafelki robią pod względem rozgrywki? Może to być wszystko, od Final Fantasy po Civilization, a „najlepszy sposób” na wygenerowanie terenu dla tych dwóch gier jest zupełnie inny . Nie ma sposobu, aby udzielić odpowiedzi, która zapewni dobrą rozgrywkę, nie wiedząc nic o tym, jak zamierzasz z niej korzystać. Zanim zaczniesz mówić o proceduralnym generowaniu czegokolwiek, musisz być w stanie samodzielnie stworzyć dobrą wersję.
Nicol Bolas,

Odpowiedzi:

34

Twoje pytanie poprowadzi Cię do dziedziny generowania treści proceduralnych.

Generacja światowa oparta na kafelkach oparta na metodach ciągłych / analogowych

Przez ciągłe rozumiem coś, co nie jest kafelkami, coś analogicznego, przykładem jest mapa wektoryzowana. Możesz użyć dowolnej ciągłej techniki do generowania, a następnie skwantyfikować ją. Na przykład wygeneruj obraz szumu Perlina o wysokiej rozdzielczości, a następnie zmniejsz jego rozdzielczość, aby dopasować go do rozmiaru mapy tilem, i próbkuj piksele, aby uzyskać mapę wysokości. (Mapy wysokości mogą być świetnym punktem wyjścia dla twojego świata.) To dlatego, że wspomniałeś o źródłach, które nie pokazały ci, co zrobić, aby zastosować je do płytek.

Światowa generacja oparta na kafelkach z zastosowaniem „rzeźbionego” podejścia do rzeźbienia

Dzięki podejściu opartemu na kafelkach (komórkach) możesz zrobić coś w rodzaju ślepej generacji, w której generujesz świat krok po kroku, nie patrząc dalej niż np. bezpośrednio sąsiadujące kafelki, ale zwykle wygląda to jak dzieło owada. Jest to typowe urządzenie CA (automaty komórkowe) i wykazuje nieco większą inteligencję.

Generowanie świata oparte na kafelkach z wykorzystaniem szerszego widoku świata, z góry na dół

Jest to bardziej inteligentne podejście do budowania kafelka świata po kafelku, ponieważ najpierw buduje się go region po regionie. W ten sposób masz kontrolę nad np. różne biomy, regiony polityczne itp., jak Tarn Adams w Dwarf Fortress. Oczywiście wymaga to trochę zastanowienia się nad tym, jak chcesz podzielić swój świat. Istnieje wiele sposobów, na które będziesz musiał przeprowadzić własne badania.


Generowanie treści proceduralnych jest dość szerokim tematem, więc musisz dobrze się przeczytać, zanim uzyskasz solidne wyobrażenie o tym, czego naprawdę chcesz i jak sobie z tym poradzić - diabeł zawsze tkwi w szczegółach . Z tego powodu niektóre dobre źródła tego to lista dyskusyjna rec.games.roguelike.development (mnóstwo informacji na temat światów procedur opartych na kafelkach), strony programistyczne AmitP (patrz „Inne tematy”) i na koniec, proceduralne Content Generation Wiki .

Inżynier
źródło
Żadna z tych metod nie uwzględnia celu rozgrywki na mapie. Każda z tych metod może generować okropne mapy do gry. Oczywiście OP nie powiedział, jak będzie wyglądać dobra mapa, więc ...
Nicol Bolas,
6
@NicolBolas Dokładnie. OP potrzebuje czegoś do kontynuowania. Nie muszę pisać pełnego eseju dla każdej odpowiedzi (choć dowody wskazują, że robię to dość często).
Inżynier
Uzgodniony, „grywalny” to heurystyka najlepiej pozostawiona OP. „Grywalna” to jedna warstwa powyżej rzeczywistej generacji „losowego świata” i nie jest wymagana w pierwotnym pytaniu.
Patrick Hughes
6

Generowanie procedur jest ogromnym tematem. Jak głęboko jesteś gotów zejść?

Odpowiedzi Nicka Wiggilla są na najwyższym poziomie. Dodałbym do tego, sugerując przyjrzenie się matematycznym metodom tworzenia spójnego losowego terenu.

Hałas Perlina to świetny sposób na wygładzenie losowości i działa doskonale na każdym terenie. Symulowanie erozji może dawać realistyczne wrażenie wysokości (chociaż może nie być to konieczne, ponieważ grasz w płytki)

Wiele technik omawianych w artykułach takich jak ta autorstwa Oddlabs , twórcy Tribal Trouble, działa dobrze również w 2D i przy niskich rozdzielczościach. Jeśli czujesz się bardziej komfortowo z tego rodzaju podejściem, warto nauczyć się tych technik.

Centigonal
źródło