Autor Wątek: Perlin noise/szum perlina generowanie terenu  (Przeczytany 837 razy)

Offline ryuu

  • Użytkownik

# Czerwiec 16, 2017, 12:03:17
Hej
Prototypuje gre jej fizykę w libgdx by później ją przepisać na serwerze. Głównym założeniem jest generowanie terenu i zniszczalność terenu jak w wormsach. Postanowiłem użyć perlin noise by osiągnąć zblizony efekt ale mam coś takiego

bardziej celuje w https://i.stack.imgur.com/Ppxxg.png

kod
https://pastebin.com/FZHe2niV
« Ostatnia zmiana: Czerwiec 16, 2017, 12:05:21 wysłana przez ryuu »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline matheavyk

  • Użytkownik
    • rabagames.com

# Czerwiec 16, 2017, 22:40:29
Odpowiem trochę w nieskromny sposób, bo w załączniku będzie moja własna praca, ale mam nadzieję, że pomocny.
Możesz użyć różnych technik, aby osiągnąć swój efekt, jedną z prostszych będzie użycie automatu komórkowego.  Zobacz sobie załączonego pdfa na stronie 13. Tam jest kilka obrazków, które mogłyby być terenem do Twojej gry, gdyby je uciąć poziomo mniej więcej w połowie. Jeśli chciałbyś uzyskać nieco inne kształty, na przykład z gładszymi krawędziami, to możesz pokombinować z podzieleniem przestrzeni na jakieś figury z gładkimi krawędziami i później nakładać wygenerowany obrazek na ten z figurami. To znaczy brać część wspólną.

Opis algorytmu prawie takiego samego, jak ten mój jest też tutaj http://www.roguebasin.com/index.php?title=Cellular_Automata_Method_for_Generating_Random_Cave-Like_Levels.

Gdybyś chciał się pobawić, to tutaj link do dllki, plików źródłowych i przykładowego programu wykorzystującego moją biblioteką do generowania map napisaną w C#: http://rabagames.com/mapgenerationlibrary_and_pdf.zip.
A dokumentacja (taka sobie niestety) tu http://rabagames.com/mapgenerationlibrary/documentation.
Łatwo się tego używa, bo wystarczy np. tak napisać MapGenerator.CreateMapWithCellularAutomata(50, 50); i dostaje się tablicę z mapą zerojedynkową.
« Ostatnia zmiana: Czerwiec 16, 2017, 22:44:02 wysłana przez matheavyk »

Offline ryuu

  • Użytkownik

# Czerwiec 17, 2017, 15:37:19
a uzycie algorytmu diamon-shades chyba tak sie nazywał będzie dobry pomysłem?

Offline matheavyk

  • Użytkownik
    • rabagames.com

# Czerwiec 17, 2017, 17:06:00
Niestety nie używałem go i nie wiem, jakie daje rezultaty. No i nie robiłem też nigdy terenu wormso-podobnego, więc nie traktuj moich słów jak wyroczni :P. Z mojej zabawy z generowaniem proceduralnym wyniosłem takie doświadczenie, że większość algorytmów można naginać do własnych potrzeb, a efekty jakie się uzyskuje można później jeszcze modyfikować na różne sposoby. To oznacza, że jeśli dany algorytm produkuje kształty, które mniej więcej nam odpowiadają, to można go użyć, trochę pozmieniać i zobaczyć czy efekty jest satysfakcjonujący. Te małe zmiany spowodują, że Twój teren będzie się trochę różnił od terenów w innych grach, co może być plusem lub minusem.

Ale bardzo chętnie usłyszałbym, co ma do powiedzenia ktoś, kto robił teren podobny do wormsów :)