quaddev.com » 2008 » July
Przedwczoraj udało mi się skończyć kolejny etap produkowania prostego frameworka SDL. Przez weekend przysiadłem porządnie z tym artykułem i kodem do niego dołączonym. Owocem tego jest kolejna rozwojowa wersja - to, co można było robić w poprzedniej wersji obudowane na menadżerze stanów. Nie powiem, trochę roboty z tym było, ale jestem bardzo zadowolony z efektu końcowego.
Teraz czas na ciąg dalszy, ostatnio wybierałem między menadżerem stanów a dźwiękiem - teraz jeszcze się zastanawiam: dźwięk czy może dołożyć particle? Póki co “odpoczywam” myśląc nad gameplayem i grafiką do przykładowej gierki. W międzyczasie jeszcze kilkudniowy urlop… A później drugi;)
Link jest na górze w projektach - zastąpiłem poprzedni nowszą wersją.
Przy okazji - znalazłem coś ciekawego - “The Unofficial Apple’s Consumer Strategy”;)

Tak, dobrze przeczytałeś. Jak napisać kolejną pierwszą grę.
Dlaczego?
“Pierwszą” nazwę grę, którą skończę. Całkiem. Do tej pory powstał Robal (nie doczekał się ani highscores ani ostatniego poziomu, pisany z kolegami), później RobaczekGL - niby 1.0, ale wielu rzeczy z pierwotnych założeń nie zrealizowałem (spuszczę zasłonę milczenia na niedopracowane sterowanie, ale terminy goniły). Oprócz tych dwóch kilka innych, które mogły być ciekawe… Wszystkie zawieszone.


(pierwszy Robal, drugi RobaczekGL)
Od RobaczkaGL minęły niedawno 3 lata - od tamtej pory tylko cofnąłem się w rozwoju. Nie napisałem niczego sensownego. Wycofałem się z kodowania (nie licząc paru “studenckich” programików).
Kilka miesięcy temu ruszyliśmy z przyjacielem projekt GUI do silnika szachowego, gdzie gdyby policzyć ilość jego kodu wyjdzie pewnie z 90%. Zająłem się tam głównie roboczą grafiką, mniej kodem. Idzie powoli, bo Ogre3D i Blender do rozgryzienia, ale widzę sens w tej nauce - póki co, czekam aż kolega się obroni;)
W międzyczasie postanowiłem zacząć od prostszych rzeczy - o czym pisałem już wcześniej - mały framework do małych gierek. Okazja, żeby przekonać się do obiektowości i przestać myśleć proceduralnie (tak się uczyłem programować i ciężko to porzucić).
Okazja, żeby spróbować sił samemu, zbudować coś od podstaw - do końca. Zrobić tę “pierwszą” grę:)
Tym razem jednak najpierw poczytałem różne devblogi, przechodziłem 2 tygodnie z pomysłem w głowie, dużo myślałem co do tej pory źle robiłem, szukałem odpowiedzi w różnych źródłach i poprzez analizę własnych błędów.
W końcu zebrałem się na napisanie posta. Od środy do piątku poprzedniego tygodnia posiedziałem w wolnych chwilach nad kodem. Korzystałem głównie z tutoriali na sdltutorials.com oraz lazyfoo.net. Kawał dobrej roboty autorzy odwalili. Zachęcający kawałek zrobiłem i ja dzięki temu.
Nic tak chyba nie podnosi motywacji jak widoczne w miarę szybko efekty pracy. Powiedzmy, że 1.5 popołudnia zajęło mi składanie frameworka, a drugie tyle zrobienie w nim prostej gierki.
Framework narazie ma inicjalizację SDLa, obsługę obrazów przez SDL_image oraz fontów ttf przez SDL_ttf. Do tego “klikalne” sprites. Wystarczyło to do zrobienia małej gierki:
“rm *” - jak sama nazwa wskazuje - polega na usuwaniu gwiazdek (hint: man rm)
Lewym przyciskiem myszki zbieramy gwiazdki z ekranu (można po 2 lub 3 jeżeli na siebie zachodzą). Po zebraniu wszystkich zostanie wyświetlony czas, jaki na to poświęciliśmy.
Prawym przyciskiem myszki wznawiamy grę jeżeli pozbieraliśmy już wszystkie gwiazdki lub resetujemy grę w trakcie.
Plik do pobrania: rm * (114) - 1.59 MB
Używane: SDL, SDL_image, SDL_ttf
Zawartość: grafika zrobiona w GiMPie, lazy-font z tutoriali na lazyfoo.net.
Developerka: Dev-cpp + GCC (pod linuksem Eclipse + CDT + GCC - też się kompiluje i działa)
Dalszy rozwój frameworka - jeszcze się zastanawiam co najpierw:
- dodanie maszyny stanów gry
- dodanie obsługi dźwięku
OpenGL odkładam na później.

