The Ship Game – (pixel) Grafika
Gry składają się z trzech filarów: grafika, dźwięk oraz rozgrywka.
W tym poście poruszę temat pierwszy grafikę.
Zdolności plastycznych nie mam, a grafika w grze musi być.
Postawiłem na jedyny styl używany w grach który:
- Rozumiem
- Mogę go samodzielnie tworzyć
- Wygląda jako-tako
Jak tworzyć taką grafikę?
Można użyć edytorów graficznych takich jak:
- Gimp
- Paint.net
- Photoshop
Ale żaden z nich nie został stworzony z myślą o pixel artcie. Jednym z takich edytorów jest Aseprite.
Jest to płatny, ale open-source. Zapłacić trzeba za skompilowaną wersję przez autora. Jeżeli jesteśmy samodzielni programistami i mamy dostęp do kompilatora Visual Studio C++ możemy zbudować program z źródeł dostępnych na Githubie
Proces kompilacji jest opisany w pliku INSTALL.MD
W chwili pisania tego postu, można wybrać jaki backend UI będzie użyty w programie. Allegro lub Skia. Różnica między Allegro a Skia to kwestia czy chcemy mieć łatwiejszy proces kompilacji i mieć aplikacje która laguje przy przeciąganiu okienek aplikacji (backend Allegro)
Osobiście polecam skorzystanie z Skia, gdyż autor zamierza odejść od Allegro zupełnie.
Zgodnie z warunkami licencji na oprogramowanie Aseprite, nielegalne jest dzielenie się samodzielnie skompilowaną wersja.
Podstawy pixel artu
Jest parę prostych zasad których należy się trzymać podczas tworzenia grafiki pixel artowej.
Występują 4 rodzaje linii.
- Pionowa
- Skos ostry 1-1
- Skos ostry 2-1
- Pozioma
Dzięki nim linie są ostre i lepiej wyglądają gdy patrzymy na nasz grafikę przy dużym powiększeniu lub pomniejszeniu.
Kolory
Stare gry takie na NESa miały bardzo małą gamę kolorów. Dzisiejsze komputery obsługują miliony różnych kolorów. Jednak polityka ograniczania ilości użytych kolorów nadal istnieje. Z dwóch powodów
- Spójność – Mniej kolorów oznacza, że będzie potrzeba używania tych samych kolorów w całej grze. Dzięki czemu drzewa lub kamienie nie zdobędą nowego odcienia koloru za każdym razem, gdy „artysta” czyli ja siądzie do rysowania.
- Większa kontrola – Mniejsza paleta kolorów, to też mniejszy problem do zarządzania, zmiana pojedynczego koloru nie jest tak dużym problemem jak przy palecie 200 kolorów. Nie ma potrzeby aktualizować wszystkich odcieni danego koloru.
Zdecydowałem się na paletę o Dawn Bringer 32 – nazwa pochodzi od forumowicza – Pixel Joint
Więcej o Pixel Art
http://pixeljoint.com/forum/forum_posts.asp?TID=11299
Co tam panie w projecie słychać?
Nowości:
- Zmieniłem wygląd statku, pod nową paletę kolorów.
- Pojawiły się monety do zbierania
- Nowa opcja ukrycia licznika FPS-ów (nie działa 🙂 )
- Dodałem Babela – gra działa pod FireFox i MS Edge. Zastanawiam się czy nie porzucić wsparcia dla IE11.
- Poprawiłem logikę sprawdzania kolizji, większa wydajność gdy na ekranie jest więcej przedmiotów.
- Wprowadziłem nowe standardy dla kodu w TSLint.
Do zrobienia:
- Naprawić hit-boxy statku
- Zmienić Game-Loop na wzór, MainLoop.js
- Zmienić zachowanie Timerów (strzelanie i pojawianie się monet) – powiązać go mocnej z game loopem.