Jeszcze Jedna Gra
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ł.
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.
Komentarze
Chcę dodać komentarzTomasz Czapiewski22-05-2010
Obejrzałem filmik i powiem tylko jedno – Rewelacja! Bardzo mi się podoba dopracowana fizyka i sterowanie oraz grafika 3D. Wygląda na to, że gra ma potencjał, który osoby zdolne w tworzeniu map mogłyby dobrze wykorzystać.
Marcin Baszczewski23-05-2010
Dziękuję za pozytywną ocenę. Kod źródłowy, który napisałem jest bardzo prosty. Mówienie o nim, że ma potencjał jest troszkę na zapas. Jak wspominałem nie miałem dotychczas doświadczenia w wybranych technologiach. Jeśli miałbym okazję napisania gry jeszcze raz utworzyłbym coś dojrzalszego co można by już śmiało kontynuować. Ciekawa fizyka? Mój cel był taki by zrzucić ją na zewnętrzną bibliotekę (Box2D). Samo jej użycie nie zawsze jest trywialne, zwróćmy choćby uwagę na zachowanie samego bohatera. Sterowanie? Moim celem było ograniczenie go wyłącznie do klawiatury. Ostateczny efekt byłby jednak ciekawszy z myszą, służącą celowaniu.