18 05 2010
Opublikowano w Programowanie  |  2 Komentarzy
Tagi: , , , , , , ,

Gra platformowa

Mało wpisów na blogu nie oznacza braku programistycznych prac. Dzisiaj podzielę się jednym z ostatnio realizowanych projektów. Będzie to coś nowego: platformowa gra trójwymiarowa. Pisałem ją w ramach zaliczenia na jeden z uczelnianych przedmiotów. Od początku zakładałem by uczynić ją jak najprostszą, a jednocześnie poznać kilka ciekawych narzędzi. Wersja, którą udostępniam zawiera jeden poziom (zapisany w pliku *.xml) i nie obsługuje trybu kampanii. Mimo wszystko można się nią troszkę pobawić. Co jak co granie w grę, którą stworzyło się samemu jest bardzo satysfakcjonujące. Na czym polega rozgrywka? Najlepiej odzwierciedli to nagrany przeze mnie materiał.

Prezentacja

Technicznie

Marzyło mi się napisanie aplikacji, która działała by płynnie w przeglądarce internetowej. Nie mogłem wykorzystać webgl-a ponieważ moja karta graficzna go nie obsługuje. Zostało mi O3D (3D w przeglądarce od Google), które działało nad wyraz dobrze. Gorzej się miały sprawy z silnikiem fizycznym (Box2D). Początkowo nie było problemów – dopiero później wychodziły braki portu JavaScript. Fizyka była dla mnie na tyle ważna, że zrezygnowałem z takiego doboru narzędzi.
Drugim podejściem było połączenie Irrlicht-a (silnika graficznego) z “normalną” wersją Box2D. Tutaj wszystko było jasne – programowało się miło i przyjemnie ;) Po bardzo dużej ilości godzin pracy, gra została wzbogacona o dźwięk (w oparciu o Irrklang) oraz język skryptowy Lua (z wrapperem Luabind). Choć gra nie jest skończona można ją uznać za grywalną. Cel projektu – osiągnięty.

Kolejna wersja

Co do przyszłości projektu: nie będę już więcej nad nim pracował. Udostępniam źródła, które każdy może sobie przejrzeć bądź zmodyfikować.

Kompilacja – Ubuntu

Skompilowanie oraz uruchomienie gry wymaga w systemie kilku paczek:

  • build-essential
  • irrlicht1.7
  • irrlicht-dev
  • libbox2d0
  • libbox2d-dev
  • liblua5.1-0
  • liblua5.1-0-dev
  • libluabind-dev
  • libluabind0.9.0
  • qt-creator

W raz z ich instalacją konieczne jest pobranie biblioteki IrrKlang, która nie jest dostępna w repozytorium. Po jej rozpakowaniu można otworzyć plik projektu (*.pro) QT Creator-a oraz upewnić się czy podane ścieżki INCLUDEPATH oraz LIBS są poprawne. Teraz można zbudować projekt.

Załączniki

Kod źródłowy + media

28 09 2009
Opublikowano w Programowanie  |  0 Komentarzy
Tagi: , , , , , ,

Coś w 3D

Jeden z ostatnich wieczorów przeznaczyłem na wykonanie prostego projektu – animacji 3D. Program wykorzystuje mój ulubiony zestaw narzędzi: bibliotekę QT oraz język C++. Za renderowanie grafiki odpowiada uniwersalne api OpenGL. Udostępniłem źródła, które być może okażą się dla Ciebie pożyteczne.

Galeria

Załączniki

Źródło

23 09 2009
Opublikowano w Oprogramowanie  |  0 Komentarzy
Tagi: , , , ,

Wstęp

Ostatnie testowe wydania Firefoxa zawierają obsługę standardu WebGL. Oznacza to że przeglądarka ta jest gotowa na wyświetlanie grafiki trójwymiarowej bez żadnych dodatkowych wtyczek. Są już dostępne demonstracje tej technologii.

Run

Jeśli chcesz zobaczyć działanie WebGL w praktyce pobierz ostatnie wydanie testowe (Nightly Build) Firefoxa. Aktualnie WebGL jest domyślnie wyłączony i należy go aktywować. Po uruchomieniu przeglądarki przejdź do konfiguracji silnika, która jest dostępna po wpisaniu adresu about-config. Tam zmień wartość logiczną webgl.enabled_for_all_sites na true.

19 09 2009
Opublikowano w Oprogramowanie  |  0 Komentarzy
Tagi: , , , ,

Nightly Builds

Wczoraj napisałem krótką notkę dotyczącą standardu WebGL. Wspomniałem o implementacji w silniku WebKit jak i pierwszych partiach kodu w Gecko. Dzisiaj natomiast mam kolejne wieści. Jest już dostępne, testowe wydanie Firefoxa oferujące daną funkcjonalność. Na ostudzenie emocji: nie ma jeszcze przygotowanych żadnych demonstracji. Autorzy jednak zobowiązali się je wkrótce zamieścić.

18 09 2009
Opublikowano w Oprogramowanie  |  1 Komentarzy
Tagi: , , , , ,

WebGL

WebGL jest standardem definiującym obsługę grafiki trójwymiarowej w przeglądarkach internetowych. Rozwiązanie wykorzystuje OpenGL i udostępnia swój potencjał dla języka JavaScript. Renderowanie grafiki odbywa się w obrębie elementu canvas. Obecnie żadna przeglądarka w wersji stabilnej nie zaimplementowała tego standardu. Uzbrójmy się jednak w cierpliwość. Na tą rewolucję warto czekać.

WebKit

WebKit jest silnikiem rozwijanym na zasadach wolnego oprogramowania. Jego korzenie wywodzą się z projektu KDE. Zyskał dużą popularność za sprawą przeglądarek takich jak Safari czy Chrome. Rozwija się bardzo prężnie więc nic dziwnego że implementuje WebGL-a jako pierwszy.

Gecko

Gecko jest silnikiem zasilającym przeglądarkę Firefox. Obsługuje większość standardów rekomendowanych przez W3C. Cechuje się ogromną popularnością, którą ustępuje tylko Tridentowi (silnik Internet Explorera). Jakie są perspektywy wykorzystania WebGL-a przez ten silnik? Tutaj świeża nowinka. Wczoraj późnym wieczorem Mark Steele udostępnił kod źródłowy wnoszący obsługę tego standardu w repozytorium mozilla-central!

Przyszłość w 3D

Za sprawą tego standardu możemy oczekiwać w przyszłości wysypu trójwymiarowych aplikacji. Drzemie w tym ogromny potencjał. Wyobraźcie sobie tylko starannie wykonaną wycieczkę po muzeum, Google Earth, czy ulubioną prostą grę a to wszystko dostępne na każdym komputerze podpiętym do sieci bez instalowania żadnych zewnętrznych programów lub pluginów. Bomba.