Chcę stworzyć prostą, „losowo” generowaną mapę dla małej gry.
Gra składa się z widoku z góry na świat, z masą lądową i obszarami oceanicznymi. Pomyśl na przykład o prostej zarysie mapy świata.
Najbliższą rzeczą, jaką widziałem wcześniej, był generator poziomów dla starych gier SimCity lub serii Civ , w której możesz ustawić preferencje dla pojedynczego kontynentu względem wielu wysp itp.
Jaki rodzaj algorytmu byłby odpowiedni? Mapa będzie musiała być umiarkowanie powiększalna, więc mogę mieć widok „całego świata”, a także bardziej przybliżony widok lokalny, ale myślę, że rozwiążę to później.
Początkowo nie potrzebuję żadnej koncepcji wysokości, tylko dwa obszary - lądowy i morski, chociaż mogę ją później rozszerzyć.
Odpowiedzi:
„Słynny” Amit (z ogromną stroną różnych tematów związanych z programowaniem gier) ma bloga poświęconego programowaniu gier i właśnie ukończył 3-częściowy samouczek interesującej metody generowania map. Naprawdę podobały mi się lektury, a na dole trzeciego artykułu znajduje się działające demo, które jest dość gwiezdne.
„Generowanie mapy wielokątów” część 1 , część 2 , część 3 .
Może to być technika, którą chcesz dostosować do swoich potrzeb! Przynajmniej wspomina algorytmy, których używa na każdym etapie procesu: zaczyna od generacji wieloboków Voronoi , rozluźnia je do bardziej równomiernej dystrybucji za pomocą relaksacji Lloyda , używa „prostej funkcji dzielenia świata na ziemię i wodę” , a następnie wypełnia powodzie, aby określić oceany i jeziora. Wygląda na to, że możesz się tam zatrzymać lub poczytać o górach i dolinach i zmienić go w 3D i tak dalej.
źródło