Małgorzata:

'jeśli myślimy o tym samym Piłsudskim to to w zapisie będzie 2xs'
[więcej]

27

sty
2012

Projekt Balloon Rescue!

kategoria: pasje, link bezpośredni

Seattle, 01:32

siadłem sobie 2 tygodnie temu i napisałem grę..

projekt ratowania balonu z mroku śmiercionośnych jaskiń chodził po mojej głowie już od kilku lat. jeszcze w Brighton zabrałem się za zrobienie tej gry we Flashu, ale projektu nigdy nie dokończyłem. po 3 latach postanowiłem zrobić coś kreatywnego w nowym kierunku i zacząłem kodowanie od nowa. Balloon Rescue! napisany jest w C# w oparciu o środowisko i biblioteki XNA. zaletą tego frameworka jest fakt, że znając sam język dość łatwo przyszło mi poznanie możliwości i wymagań nowego środowiska. gra jest oparta o grafikę 2D, choć pewnie za jakiś czas będę starał się projektować w 3D, ma w sobie coś z miłości do platformowych gier na ośmiobitowce. za grafikę odpowiedzialna jest Agata i bardzo jej dziękuję za wkład, bo przesiedziała wiele godzin klikając w niewidoczne dla ludzkiego oka piksele, aby gra ładnie się prezentowała. w projekcie wykorzystuję przekonwertowaną muzykę z chipa SID Commodore 64 włoskiego artysty o nicku Nata. był on kiedyś członkiem polskiej grupy scenowej Samar, a jego dźwięki dawno temu przypadły mi już do gustu..

po 2 tygodniach pracy ukończyłem główną pętlę gry, w której skład wchodzą:

- pełny GameState obsługujący wszystkie ekrany gry
- klasę menu, choć graficznie trzeba nad nią popracować
- klasę sound obsługującą muzykę i dźwięki sytuacyjne
- pełną fizykę poruszania się balonu (grawitacja vs gaz)
- wyświetlanie intra do poszczególnych etapów i skromny fading, który być może powielę na inne ekrany
- kilka bitmap obsługujących fonty (możliwe jest wykorzystywanie tradycyjnych fontów, ale chcąc dodać do nich efekty należy stworzyć bitmapę znaków)
- klasę levels odpowiedzialną za stworzenie poszczególnych etapów
- pełną obsługę kolizji w oparciu o porównanie pixel-to-pixel. funkcja kolizji wykorzystywana jest do obliczeń zderzenia sprajta z teksturą skał oraz do obliczeń dwóch sprajtów (balon i paliwo)
- animacja sprajta w oparciu o kilkuklatkową teksturę. w tym momencie animacja obejmuje efekty ognia i katastrofy
- pełną obsługę klasy input, czyli sterowanie, pauza, wyłączanie dźwięków, itp
- klasę HUD, choć pewnie graficznie ulegnie ona jeszcze zmianie
- obsługę tekstur podwójnego backgroundu: tła i skał
- pełną pierwszy etap, tak więc gra jest w tej chwili grywalna
- pełny zapis pozycji sprajta umożliwiający odtworzenie jego ruchów w odwrotnym kierunku
- i cała masę niewymienialnych obiektów i funkcji udowadniającą, że nawet najmniejsza gra tego typu wymaga porządnego QA

do zrobienia pozostaje:

- kolejne 9 etapów z unikalną grafiką. dużo roboty przed Agatą, choć mamy sporo tekstur do wykorzystania, m.in z naszych zdjęć z Antelope Canyon z Arizony
- cały system shaderów w oparciu o język HLSL (jeszcze tego nie dotknąłem, a custom lighting pozwoli na wprowadzenie fajnych efektów świetlnych, np światła bijącego z balonu)
- poprawa graficznych i dźwiękowych elementów, które występują na razie w formie tymczasowej
- całą masę przeszkadzajek urozmaicających grywalność. w oryginale z 1983 roku jest to gra precyzji, ale myślę że miło będzie dodać jakieś nietoperze, czy wodę przeszkadzającą w osiągnięciu celu
- system high score
- konfiguracja klawiatury
- system gry sieciowej dla Xbox Live (o tym poniżej)

Balloon Rescue! wyświetlany jest w stałej rozdzielczości 1280x720 pikseli, co umożliwi idealny port tej gry na Xboksa, będę tylko musiał pozmieniać trochę w klasie input. możliwe jest też łatwe wydanie gry na Windows Phone, ale o tym na razie nie myślę. piszę do szuflady dla przyjemności, ale jeśli projekt dobrze się rozwinie to kto wie, czy nie wrzucę tego na platformę Live, co z kolei będzie wymagało wprowadzenia obsługi sieci. z myślą o karierze międzynarodowej (hehe) piszę na razie tylko w j. angielskim... nagrałem dzisiaj krótkie demo gry, które możecie zobaczyć poniżej: