Ostatnie prace

Dawno nie zajrzałem, ani nie napisałem 😉

Wszystko dlatego, że specjalnie nie miałem o czym pisać ponieważ zajmowałem się głównie rzeczami uczelnianymi, a kto chce słuchać o podstawach sieci neuronowych albo javowych technologiach? 😉

W międzyczasie przypatrywałem się grze Minecraft. Mimo tego, że na pierwszy rzut oka wygląda okropnie (w sumie to na każdy następny rzut oka wygląda równie słabo), a gra nie ma za specjalnie celu wielu ludzi nie może zrozumieć dlaczego, w ogóle taka gra istnieje i ma się dobrze… Początkowo też nie byłem przekonany ale po jakimś czasie okazało się, że gra jest niezwykle grywalna! Niemały wpływ na taki stan rzeczy ma fakt, że świat zbudowany z klocków można całkowicie przemodelować przy użyciu kilofa, łopaty i siekiery (które trzeba najpierw sobie zrobić).

Tak czy inaczej nie chciałem zachwalać Minecrafta bo czy ktoś go lubi czy nie to już kwestia indywidualna. Postanowiłem stworzyć coś podobnego do Minecrafta tylko idącego w nieco innym kierunku bardziej skupiając się na drugiej części nazwy – craftingu. Oczywiście zanim będzie można zabrać się w ogóle za tworzenie czegokolwiek potrzebujemy głównie świata, w którym będziemy pracować 😉 Bez tego ciężko pozyskać surowce.

W czasie świąt udało mi się zmusić silnik jMonkey Engine 3 do wyświetlania świata złożonego z bloczków. Efekt można podziwiać na poniższym screenie:

W chwili obecnej możliwe jest niszczenie i dostawianie bloków różnych typów. Dodatkowo ostatnim osiągnięciem jest oświetlenie per-blokowe 😉

Oświetlenie zrealizowane jest przy pomocy kolorów wierzchołków, które są mieszane z teksturą przy pomocy prostego pixel shadera. Brakuje tutaj porządnego algorytmu do zaciemniania miejsc zakrytych przed źródłem światła innymi blokami.

Ostatnimi dwiema rzeczami, które potrzebuję do osiągnięcia pełni szczęścia w tej chwili jest utworzenie generatora terenu, który potrafiłby „dogenerować” kawałki terenu jeśli byłby potrzebny oraz zaimplementowanie jakiejś prostej fizyki by móc się poruszać po świecie.

Do tej pory do fizyki używałem zintegrowanego z jME3 silnika fizyki jBullet, ale wydaje się to być trochę wyciąganiem armaty na muchę…. Pomijam już fakt, że przy zmienianiu geometrii świata trzeba też było generować na nowo CollisionShape dla danego kawałka terenu, a to zabiera kilka cennych kwantów czasu co jest niedopuszczalne! 😉

Tak więc… nie leniłem się ostatnio choć może tak to wyglądało kiedy nic nie pisałem :p Jeśli macie jakiś pomysł jak stworzyć generator terenu, który można tu wykorzystać to jestem otwarty na propozycje 🙂

Przypuszczam, że w przyszłości pojawi się jeszcze jakiś wpis na temat tworzonego przeze mnie… czegoś 😉

Reklamy

4 myśli nt. „Ostatnie prace

  1. Wygląda fajnie. 🙂 Najlepiej wykorzystaj fraktale do generowania terenu. Szczerze mówiąc nie rozumiem do końca sukcesu Minecrafta (i nominacji do IGF), ale pewnie dlatego, że grałem w jakąś starą, jeszcze niepłatną wersję, w której dało się tylko kopać. 😛 Jest wart 15 euro?

  2. Hmm.. czy jest wart? To już zależy od tego czy lubisz kombinować 😉 Przykłądowo budowanie pułapek na zombiaki i patrzenie jak w nie wpadają jest dość fajne 😉 Jeśli chodzi o crafting to ten tutaj IMO trochę kuleje. Można zrobić kilka przedmiotów i na tym się kończy.

    Wydaje mi się, że ludziom najbardziej podoba się po prostu budowanie wielkich rzeczy przy pomocy „stawiania klocków” 😉

    Zawsze możesz poczekać aż skończę to co robię 😛 z tym, że nie mam zamiaru robić drugiego Minecrafta, a jedynie coś podobnego wizualnie 😉

  3. Wykorzystałem heightmapę 512×512 do stworzenia mapy o takim samym rozmiarze (czyli jest 512x512x16 bloków) i na moim laptopie (Acer Aspire 5610Z, 1.8GHz, NVidia Go 7300) mam około 100-160 FPS. To całkiem dobry wynik biorąc pod uwagę, że w sumie 90% świata załatwia się przez te klocki 😛

    Możliwe, że zrobię jakąś wersję do uruchomienia i polatania i postawiania bloczków 😉

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s