Wpis z mikrobloga

Dzień dobry, witam w drugim odcinku #visherdev back to #gamedev! Dzisiaj będzie używanym przeze mnie narzędziu i sposobie tworzenia świata gry, jakim jest edytor R.U.B.E (Really Useful Box2D Editor). Jego obecna cena to ok.125 zł i oferuje szeroki wachlarz możliwości dla tworzenia światów opartych na bazie silnika fizyki Box2D.

Głównym zadaniem dla tego programu w moim przypadku, jest tworzenie siatek terenu gry. Mówiąc prościej, rysuję kształt jaskini, po której będzie się poruszał gracz. Ze względu na wygląd tekstury której używam, wymaga to dość precyzyjnego przycięcia do grafiki skały..

Zerknijcie sobie na filmik w poście, sporo się wyjaśni, o co chodzi i do czego służy tutaj R.U.B.E.

Po wykonaniu takiej mapy, umieszczę na niej jeszcze inne elementy otoczenia - mogą to być jakieś stalagmity, kępki trawy, jakieś szczątki, śmiecie. Mogę umieścić także bardziej złożone konstrukcje i połączyć je przegubami ruchomymi, np. zrobić obracający się młyn, lub platformę. Dekorować będę w przyszłości. Zobaczcie na stronie edytora, co on potrafi!

Generalnie przedstawiona praca jest dość nudna i żmudna, dlatego rozważałem zastąpienie jej innym programem z odpowiednim algorytmem, w którym np. zaznaczałbym wybrane kamienie, a program sam tworzyłby odpowiednio złączoną siatkę. Tworzy to jednak sporo problemów algorytmicznych, a przede wszystkim, prawdopodobnie rozerwałby mnie z edytorem R.U.B.E, gdzie mam możliwość zrobić więcej. Może kiedyś zrobię inaczej - napiszę losowy generator mapy z taką funkcjonalnością, a la minecraft.

Koniec tego jest taki, że eksportuję całą mapę do JSONa - ciała (body) oraz ich bryły (fixture). Mam je odpowiednio ponazywane i odpowiednio przetwarzam w silniku. Ciała, które mają siatki (mesh) i mają być wypełnione teksturą, są dodatkowo parsowane. Najpierw następuje ich triangulacja (za pomocą Ear Clipping Triangulation z LibGDX). Potem tworzony jest zbiór wierzchołków i indeksów (vertices, indicies), z których tworzona są trójkąty, zapisywane do VBO (Vertex Buffer Object) - krótko mówiąc, do pamięci karty graficznej, aby przyspieszyć rysowanie. Ostatecznie wszystkie obiekty gry pakuję do drzewa czwórkowego (quadtree), z użyciem którego przyspieszam rysowanie, poprzez nierysowanie niewidocznych obiektów (viewing frustum culling).

Tyle na dziś :) Zerknijcie jeszcze w komentarze, mam do Was pytanie, bo chcę wybrać nazwę dla swojego "studia" i publikować wpisy szerzej, nie tylko na wykopie. Z góry dzięki!

#visherdev <- tu obserwujemy :)
Visher - Dzień dobry, witam w drugim odcinku #visherdev back to #gamedev! Dzisiaj będ...

źródło: comment_RFE9CdEqWUWj66nsKSy1XV8zsayL54Nf.jpg

Pobierz
  • 6
@Visher: no i pytanie do Was, jak nazwać swoją twórczość, z której kiedyś może zrobię jednoosobową działalność? :)

Myślałem nad połączeniem słów art + dev = Artev Studio, ew. art + adrian (moje imię) = Artan Studio (#januszstyle :D). Zależy mi na dopisku "Studio", bo nie wiem czy skończy się tylko na gamedevie :)

Brzmi to w miarę dobrze?