Przepis na Indyka Krzysztof Jankowski

Mam na imie Krzysztof ale w internetowych programach kulinarnych występuję pod mrocznym loginem w84death. Uważam się za człowieka wielu talentów.

Auto portret z żarówką

Grafik, fotograf, programista, designer, kucharz i eksperymentator. Wszystkie te cechy spowodowały, że odnalazłem się w świątku indie developerów.

Programowaniem zajmuję się od najmłodszych lat. Zaczynałem od MS BASIC na PC-cie. Ale miałem też konsole Pegasus (a dokładnie Famicon) stąd też pewnie moje zamiłowanie do pikseli.

Samo tworzenie gier rozpocząłem dwa lata temu. Do tego czasu powstała ogromna ilość prototypów i projekcików, które umarły na bardzo wstępnym procesie produkcyjnym. Powstało jednak 13 bardziej rozwiniętych gier z czego dwie wylądowały na AppStore i Google Play. W pozostałe można zagrać za darmo przez przeglądarkę. Lista moich dokonań dostępna jest na p1x.in/g.

pixelheaven

Największe moje dzieło jak do tej pory to Piradice, którym mogłem się chwalić na własnym stanowisku w Indie Basement na Pixel Heaven 2013. Więcej o grze na piradice.krzysztofjankowski.com

Zarabianie

Czy zarabiam/żyję z tworzenia gier? Absolutnie nie. W pewnym momencie byłem zatrudniony na etacie w firmie robiącej gry. To tam powstał Murder in the Bauhaus i EuroBall HD. Musiałem jednak zmienić prace na bardziej lukratywną. Teraz jako programista front-end zarabiam dużo lepiej a po godzinach, jako moje hobby rozwijam gry. Jako, że w jednym i drugim używam jednego języka: JavaScript wiedza i doświadczenie przeplatają się.

Chciałbym tutaj przytoczyć pewne chińskie przysłowie: „Szewc, który chce zarabiać pieniądze, szyje buty. Szewc, który chce szyć buty, będzie zarabiał pieniądze.”

Dodatkowo, aspekty mogące przynieść zarobek z gry powinniśmy rozważać po tym jak dana gra stanie się sławna a nie w odwrotnej kolejności. Dzięki temu czas poświęcony na integracje systemów reklamowych, wirtualnej waluty, sklepów, DLC i tym podobnych możemy przeznaczyć na to co jest w grze najważniejsze czyli dopracowanie samej rozgrywki. Jeśli już nasz tytuł stanie się w miarę popularny, będziemy mieli bardzo dużo czasu na wprowadzenie najlepszej metody zarobkowej. I tylko wtedy będzie ona miała tak na prawdę jakikolwiek sens.

Wystarczy tego przydługiego wstępu, przejdźmy do meritum sprawy czyli naszej pieczeni!

Przepis na indyka

Nasz indyk to będzie pixelart-owa pieczeń w jabłkach z dżemem czyli na słodko 🙂

Aby Was zachęcić do czytania przedstawiam jak wygląda gotowe przykładowe danie: Brave Sir Robin wywodzący się z Global Game Jam 2014.

brave_sir_robin_screen3

brave_sir_robin_screen2

brave_sir_robin_screen1

Składniki

  • 2kg silnika, osobiście lubię smak ImpactJS
  • dowolny dżemik (zbliża się CyberPunk Game Jam, punkcyb.org)
  • kilka jabłek (osobiście dodałem MacBook Air i iPad)
  • 1 szt. pomysłu
  • 2 łyżki wizji + dosypałem jeszcze jedną
  • szklanka pixeli w 16 kolorach (Adobe Photoshop lub Pixen)
  • pół szklanki dzwięków (na początek starczy as3sfxr)
  • szczypta odwagi

Przepis

Przygotowania

Uważam, że najlepszym startem, który nas zmotywuje do działania oraz rozgrzeje wyobraźnię jest jakiś game jam zwanym też hackatho-nem. Ostatnimi czasy jest ich jak grzybów po deszczu co tylko ułatwia sprawę. Przeważnie mamy 48h na stworzenie naszego dzieła (a tak na prawdę prototypu) co powoduje, że nie zagłębiamy się w niepotrzebne szczegóły a jednocześnie skupiamy się na tym co najważniejsze czyli chwytliwym pomyśle, który wyróżni nas w jakikolwiek sposób spośród innych uczestników.

To właśnie jest kluczowe przy rozpoczęciu nowej gry – pomysł. I nie chodzi tu o coś czego jeszcze nie było, wręcz przeciwnie. Oklepane patenty są znane przez większość graczy co daje nam pewność, że nie zrobimy gry niezrozumiałej, wymagającej instrukcji grubości książki. Wystarczy, że wyróżnimy się jakimś aspektem. Odwróceniem gry do góry nogami, nietypową oprawą audio-wizualną, zwariowaną tematyką (wszystkie produkcje SOS-a) lub sprytnym pomieszaniem kilku pozornie nie pasujących do siebie gatunków.

W moim przypadku było to zaczerpnięcie tła do gry z Latającego Cyrku Monthy Python-a. Rozgrywka 2D widziana z góry przypominająca gry Zelda oraz mechanikę leżącą bliżej Diablo. Później doszły aspekty z typowych gier tower deffence: obrona Świętego Grala oraz fale przeciwników. Aktualnie pracuję nad proceduralnie generowanymi planszami oraz możliwością budowania murków/przeszkód. Nie obawiajcie się, wieżyczek jako takich nie będzie 😉

Zaczynamy

Jako grafik lubię kodzić coś co chociaż trochę wygląda jak gra a nie „biegające prostokąty”. Dlatego zawsze zaczynam od projekty graficznego. Dokładniej mówiąc to wizualizuje pomysłu już w realnych sprite-ach. Dzięki temu od razu widzę jak gra mniej więcej będzie wyglądać, czego brakuje, co się nie nadaje. W tym czasie myślę też o mechanice, która stoi za każdą z tych graficzek. Np. że będą potrzebne miejsca respawnów przeciwników. Bohater ma życie, które przedstawiam jako kilka serduszek. To zadecyduje o tym, że każde uderzenie to strata jednego serduszka a nie np. 15% życia. Niby drobnostka ale powodująca cały szereg późniejszych decyzji w kodzie gry.

sprites

Wracając do grafiki. Rysuje pixel art-y a więc moje sprite-y są bardzo malutkie, przeważnie 16×16. Dopiero w samym silniku gry są skalowane 4x w górę. Stosuję też jedną, z góry określona paletę barw (16 kolorów).

16_color_pallete

Ale to już osobny aspekt i myślę, że na samym początku nie trzeba się aż tak ograniczać. Ważne, żeby utrzymać w miarę jednolity klimat. Dlatego im mniejsza paleta tym łatwiej (do pewnego momentu oczywiście).

Gdy mamy grafiki dla podłogi, kilku ścian, bohatera i jakiegoś przeciwnika można zabrać się za kolejny punkt.

Przygotowanie indyka

Zaczynając każdą nową grę skupiam się na jej najbardziej istotnym aspekcie jakim jest rozgrywka. Wszelkie menu, GUI i tym podobne zostawiam na później ale zdecydowanie nie na koniec.

Dlatego zaczniemy od stworzenia małej mapy i jej załadowania. Następnie dodania obsługi poruszania się bohaterem i najprostszą sztuczną inteligencje do poruszania przeciwnikiem. Kod bohatera i przeciwnika jest w dużej części jednakowy. Po prostu pierwszym sterujemy my a drugim steruje losowość. Tak przygotowany indyk zacznie pomalutku nabierać jakiegoś kształtu.

Wydaje się to zbyt banalne ale tak wygląda każdy początek. Następnie kawałek po kawałku zmieniamy i dodajemy funkcjonalności. Jednocześnie rysując kolejne brakujące elementy i poprawiając już te istniejące.

poom_progress

Owocowe dodatki

Polowa klimatu naszej pieczeni to grafika z mechaniką (która objawia się w animacji i interakcji). Jednak druga połowa jest często pomijana lub umniejszana – udźwiękowienie.

Dodanie nawet najprostszych dźwięków nada ostateczny smak naszemu indykowi. Jeśli nie mamy zdolności ani opanowanego jakiegoś oprogramowania (jak ja) możemy użyć prostego generatora jakim jest as3sfxr. Wygenerujemy z niego najbardziej niezbędne dźwięki jak uderzenia, strzały, różnego rodzaju kliknięcia, podnoszenia monet i innych power-up-ów. Czego nie uda się zrobić efektami wizualnymi i animacją nadrobimy dźwiękiem kojarzącym się z daną czynnością.

Pieczenie czyli dobre rady aby nie przypalić potrawy

Należę do osób które szybko nudzą się robiąc jedna i tą samą rzecz. Przez to też porzuciłem wiele prototypów by zająć się następnym, genialnym pomysłem. To jest największy wróg niezależnego developera.

Na początku naszej przygody jest to nawet zaleta. Tak czy inaczej musimy poznać jak najwięcej różnych problemów, gatunków gier, sposobów sterowania, itp. Dlatego radził bym się tym nie przejmować i po prostu robić to na co mamy w danej chwili ochotę i na co mamy zapał. To dzięki niemu będziemy się rozwijać i zdobywać doświadczenie. I to właśnie doświadczenie przyda się ogromnie na dalszej drodze.

Teraz to dopiero zrozumiałem trafiając na problemy lub rozwiązania które już kiedyś sprawdzałem i na które w innych prototypach znalazłem rozwiązanie. Dodatkowo mam bazę kodu, do którego często wracam, żeby sobie go przypomnieć lub wręcz skopiować jakiś kawałek.

Później jednak, gdy zaczniemy tworzyć już kompletne i obiecujące gry staje się to uciążliwe i może zatrzymać projekt na 90% jego ukończenia. Jak zatem z tym walczyć wtedy?

Naszego indyka należy piec na bardzo małym ogniu, długo i spokojnie od czasu do czasu polewając go nowymi pomysłami i eksperymentując z przyprawami.

W praktyce się to przejawia tym, że obiecałem sobie codziennie zrobić jedną rzecz do Brave Sir Robin. To może być poprawienie jakiejś literówki czy przesunięcie elementu w menu aby był bardziej intuicyjny. Ważne, żeby zrobić cokolwiek bez przymusu. Dzięki temu robiąc tą drobnostkę często zrobimy od razu coś jeszcze tak przy okazji. Może dostaniemy oświecenia i dodamy coś zupełnie nowego. Ale to stanie się już intuicyjnie, bez wizji ciężaru kopania znowu w tym samym kodzie ( o tym ciężarze przekonacie się nie raz w końcowych fazach projektu ).

Drugim aspektem jest skupienie. Absolutny zakaz zaczynania nowych projektów. Nawet dłuższego myślenia o nich. Skupiajmy swoją uwagę na obecnym. Wyobrażajmy sobie cały czas rozgrywkę i to co byśmy chcieli w niej jeszcze dodać/zmienić. Większości z tych rzeczy nie zrobimy ale skupiając myśli powodujemy powstanie naturalnego podłoża do genialnych pomysłów. To właśnie te małe genialne pomysły czynią gry niezależne takimi perełkami.

Podanie

Po 48 godzinnym hackthon-ie, o którym wspominałem wcześniej będziemy mieli mały prototyp, który pokaże ile wart jest nasz pomysł. Dalej wykorzystując radę rozwijania go każdego dnia po troszku zanim się obejrzymy będziemy mieli naszego upragnionego indyka w pełnej okazałości.

Jednak nie ważne jak bardzo dobry wyszedł nasz indyk, nie ma to żadnego znaczenia jeśli go nie podamy gościom tylko zjemy w samotności. Dodatkowo jeśli nam jednak nie wyszedł, przypalił się lub jest nie dosolony i nie pokażemy żadnemu doświadczonemu kucharzowi możemy się nigdy nie dowiedzieć, że zabrakło jakiejś istotnej przyprawy.

Jak promować swoją grę?

  • Twitter: #GameDev i #PixelArt i nowo powstały #PolishGameDev
  • HTML5 Game Devs Forum: www.html5gamedevs.com
  • Facebook: najmniej istotny ale zawsze miło jest pokazać znajomym czym się zajmujemy, może ktoś ma podobne zainteresowania i szuka właśnie kogoś takiego jak my?

Samo wrzucenie linków/screenów to tylko część roboty. Należy czytać komentarze, odpowiadać, zadawać pytania i brać sobie do serca sugestie innych, doświadczonych osób.

Podsumowanie

Jeśli dopiero zaczynasz przygodę w indie developera to nie przejmuj się, że coś nie wyszło lub porzuciłeś jakiś prototyp w połowie drogi. Zanim powstało Angry Birds, studio je tworzące zrobiło 40 wcześniejszych gier, o których nikt nie słyszał. Z drugiej strony nie należy myśleć, ze pierwsze 40 gier będzie słabe, wręcz przeciwnie każdy aktualny projekt to nasz najlepszy projekt i należy dać z siebie wszystko. Iść do przodu i rozwijać się. Po zrobieniu pierwszej gry nic się nie zmieni. Ale za jakiś czas, gdy spojrzysz wstecz zobaczysz, że każda z tych małych gier miała ogromny wpływ na to jak daleko jesteś teraz.

Życzę smacznych indyków i oby nas było coraz więcej!

Krzysztof Jankowski

P1X Games

kj@p1x.in, @w84death

indyk

Jakub Wójcik

Autor: Jakub Wójcik

Założyciel serwisu 1ndieWorld największego portalu w Polsce zajmującego się grami niezależnymi. W tym momencie zarządza marketingowo swoim projektem. Odkąd tylko pamięta jest zapalonym graczem, a jego pierwszą miłością było Commodore 64. Niegdyś pisał na łamach GIEROmaniaka i profesjonalnie grał w FIFĘ, obecnie zagorzały miłośnik gier niezależnych, a w szczególności dzieła stworzonego przez Phila Fisha. Założyciel i pomysłodawca Games Rage, którego pierwsza edycja odniosła duży sukces. Ma jeszcze wiele pomysłów związanych z polskim gamedevem.

  • Damian Komorowski

    Bardzo fajnie. Pozdrawiam!

  • Stihlas

    Świetny felieton. Chyba łączy mnie coś z autorem, bo podobnie wygląda moja sytuacja tworzenia czegokolwiek.

    • CukierPuder

      Chyba ta sytuacja, wygląda podobnie w przypadku sporej większości (jeśli nie wszystkich) programistów 😉

  • Dzięki za świetny artykuł! Od zawsze marzyłem, by tworzyć gry, ale tak nieco na poważniej wziąłem się za ten temat dopiero niedawno. I mógłbym podpisać się obiema rękami pod tym tekstem 🙂 Fajnie, że są też podobni ludzie na tym świecie 🙂

1ndieWorld

Uniwersum indie games nie jest już rajem dla geeków, fantazją nerdów, undergroundowym dziwactwem…

Gry niezależne kształtują mainstream, narzucają trendy, zmieniają świat.

Zrobimy wszystko co w naszej mocy, aby pomóc naszym użytkownikom odkryć magię indie. Pierwszy w Polsce serwis, poświęcony wyłącznie produkcjom niezależnym – 1ndie World – jest jedyny w swoim rodzaju, stawia na uczestnictwo, pobudza do działania, odświeża umysł.

Twitter

RT @mrRyJek: I tyle... wow #yonder https://t.co/XbBhuuFXdo
RT @thibaultsimar: Re-textured an old scene, playing with lights. #voxel #magicavoxel https://t.co/PaPdE7ujk3