Historia Twórcy SkyDash

Więc zaczynajmy!

Nazywam się Daniel, mam 17 lat i jestem uczniem technikum mechatronicznego. Hobbystycznie zajmuje się wszystkim co jest związane z naukami ścisłym i technologią, ale największym zamiłowaniem pawam do tworzenia gier/programowania i robotyki. Obydwa zainteresowania rozwijam od dłuższego czasu, jednak programowanie było „tym pierwszym”.

A to moja historia z początków nauki programowania. Zaczęło się to jakoś w 5/6 klasie podstawówki, kiedy to świat nauki i technologii zaczął obejmować mnie swoimi szponami. Jako mały Daniel zafascynowany tym co się dzieje w komputerach i wszelkich urządzeniach zacząłem czytać o „wnętrznościach” jednej z moich ulubionych rozgrywek, czyli grach komputerowych. Kompletnie nie rozumiałem tego co czytałem było to dla mnie jak science-fiction, ale czytałem dalej udając, że cokolwiek z tego potrafię przyswoić. Pewnego razu jednak natrafiłem na coś co odmieniło moje życie. Był to artykuł o programie, który wykorzystując energię fuzyjną, magię, pył jednorożca i fizykę kwantową zamieniał „parę kliknięć” w pełni funkcjonalną grę. Tym programem był RPG Maker XP. Wow. Czego mi było więcej do życia potrzeba? Podjarany tym co mogę osiągnąć zacząłem szukać owego programu do pobrania. Po monotonnych poszukiwaniach udało mi się go znaleźć. Klikam „Pobierz” i wpatruje się w pasek pobierania, który powoli sunie ku 100%. Zahipnotyzowany przez pasek postępu zacząłem snuć o sławie, podziwie i biznesie wartym miliony… nie…miliardy dolarów!!! „Pobrano plik”. Włączam program. Otwiera się okno RPG Makera. Oczy wyskakują z oczodołów a na twarzy pojawia się banan. Nie wiedząc jak zacząć tworzenie gry zaczynam klikać na oślep do momentu aż coś wyjdzie. Lecą dni i noce, a ja klikam dalej nie mając pojęcia co robię. Po jakimś czasie, zakończyłem zabawę z RPG Makerem i wziąłem się za niego na poważnie – zacząłem robić pierwszą grę. Po paru tygodniach z otchłani cyfrowego świata wyłania się – moja pierwsza gra. Paskudne nudne lokacje, dialogi z błędami, domyślna grafika z RPG Maker, powtarzalne misje, brak muzyki, dźwięków. No po prostu cudo w które każdy chciał zagrać. Podzieliłem się tą grą na jednym z polskich for RPG Makera. Została zmieszana z błotem, wyzwana od najgorszych ale dla mnie dalej była piękna. Mijały kolejne miesiące z RPG Makerem. Powstały coraz to lepsze produkcje (W końcu dowiedziałem się, że RPG Maker obsługuje własne skrypty Ruby – ojoj, co się wtedy działo. Przeszukiwanie polskich i zagranicznych for w poszukiwaniu fajerwerków do gry. Nowe menu, oświetlenie, nowe opcje do mechaniki gry.). Jednak w pewnym momencie ten cały konwerter „kliknięć, energii fuzyjnej, magii, pyłu jednorożca i fizyki kwantowej” na gry zaczął mnie po prostu nudzić. Poszukując czegoś nowego, zacząłem zadawać na różnych forach pytania odnośnie tego, czy polecają jakiś program. Jako odpowiedź otrzymałem (i to wiele razy od różnych osób) „naucz się jakiegoś języka programowania i z jego pomocą rób gry”. No to tak zrobiłem. Padło na C++. I to w nim zdobywałem pierwsze kamienie milowe w programowaniu. Pierwsze Hello World!, Kółko i krzyżyk w konsoli, tekstowe gry przygodowe. Języka tego nauczyłem się z dość leciwej już książki „Kurs C++ – Od zera do gier kodera” autorstwa Kamila Kuczmarskiego. Z C++ nie było jednak już tak kolorowo jak z RPG Makerem. Kłopoty zaczęły się pojawiać gdy chciałem wejść na „wyższy poziom” i stworzyć grę z grafiką. Spędzałem najpierw godziny a potem dnie na czytaniu „jak to się robi”. Wyczytałem, że potrzebuję takiego czegoś jak „biblioteka graficzna”. SFML, SDL, OpenGL, Allegro… Nie wiedziałem co wybrać. Idąc za radami i opiniami innych wybrałem Allegro. Podobno najprostsze i najlepsze dla początkujących. Jak się okazało, Ci ludzie od „Allegro jest najprostsze i najlepsze dla początkujących” byli paskudnymi kłamcami! Jako 12-13 letni chłopiec nie mogłem nawet uruchomić gotowego przykładu z dokumentacji Allegro a kompilator był moim największym nemezis (bo to przez niego nie mogłem uruchomić swojego kodu – jak się później okazało, było to spowodowane błędną konfiguracją środowiska i kompilatora… No ale skąd ja to mogłem wiedzieć, miałem 12 lat!). Zdenerwowany wróciłem do punkty wyjścia. Musiałem znowu szukać czegoś innego niż RPG Maker co pozwoli mi tworzyć gry. Tym razem jednak byłem bogatszy o podstawową wiedzę z programowania, wiedziałem co to warunki, zmienne, funkcje i jak je wykorzystywać, łączyć by tworzyły spójny kod robiący „coś”. Internet zamienił się w moje wykopalisko. Kopałem coraz głębiej by w końcu odnaleźć porządany program. Biblioteki, frameworki, silniki i nagle pojawia się on: Game Maker. Kolejny program click2game, jednak tym razem bardziej złożony, bowiem nie ograniczał mnie tylko do gier RPG. W Game Makerze spędziłem więcej czasu niż w RPG Makerze. Zrobiłem parę gier, które wyglądały jak zrobione przez szympansa chorego na autyzm ale co najważniejsze miały w menu głównym przycisk do dawania dotacji! (Tak, dalej chciałem zarabiać miliony.). Do największych osiągnięć należało: My Fruits – gdzie niejaki Sztefan (nie Stefan, Sztefan) ma za zadanie zebrać jak najwięcej owoców spadających z drzewa i nie pozwolić by jakiekolwiek upadły na ziemię, Shmup bez tytułu – w którym latałeś matizem w przestrzeni kosmicznej i twoim celem było niszczenie nadlatujących asteroid, Pet – nic innego jak upośledzony brat Tamagotchi na PC, oraz niedokończona platformówka o rycerzach z realistyczną fizyką (w której grawitacja na Ziemi była równa mniej więcej grawitacji na księżycu i pozwalała na zabawę w zmutowanego kangura na kofeinowym kopie). Robiłem kolejne gry. Gra za grą, jednak czułem ciągle niedosyt. Game Maker jest był (i nadal jest) wspaniałym narzędziem ale dalej mi czegoś w nim brakowało. Podczas robienia kolejnej gry w „GMie” natrafiłem w internecie na coś co nazywało się Unity3D. Unity…3D… Nie wiedziałem jeszcze co to (poza tym, że służyło do robienia gier) ale sama ta nazwa już powodowała, że w mojej głowie zaczęły rodzić się pomysły do czego mogę to wykorzystać. Napalony na „kolejny etap ewolucji” pobrałem i zainstalowałem tajemnicze „Unity3D”. Pierwsze uruchomienie i powróciły wspomnienia z pierwszego odpalenia RPG Makera. „Co tu robić?” „Co się stanie jak kliknę to?” „To jest jadalne?”. W odróżnieniu jednak od RPG Makera wiele sam tutaj nie zdziałałem, to narzędzie było już zbyt skomplikowane na naukę przez „chybił trafił”. Musiałem więc poszukać sobie jakichś poradników. Przemierzyłem cały świat… tzn. YouTube aż natrafiłem na poradniki mepi.pl. Oglądałem odcinek za odcinkiem. Powoli dowiadywałem się jak dodać gracza, jak zaprogramować jego ruch, jak zrobić strzelanie, przeciwników, aż zrobiłem swoją pierwszą grę. O jakże cudownym tytule „Ufo Combat”. Teraz zgadnijcie o co tam chodziło. Nie wiecie? To wam powiem. Chodziło o walkę z ufo. Był to prosty shmup, gracz wcielał się w pilota myśliwca i jego celem było zniszczenie wrogich statków kosmicznych. Jej pierwszymi testerami byli moi koledzy. „Najlepsza grafika ~ kolega” „GOTY ~inny kolega” „Ta gra wyznacza nowe standardy w branży ~ jeszcze bardziej inny kolega”. Czasami się zastanawiam dlaczego wszyscy nazywali się kolega… Ale nie ważne, wróćmy do tematu. Gra była słaba, bardzo słaba. Korzystała z gotowych modeli oraz grafik narysowanych w Paint. Ale był to kolejny krok w rozwoju. Sam silnik Unity tak bardzo mi przypadł do gustu, że siedzę w nim aż do dziś. (Rzadko go opuszczam. Jedynie jak muszę zrobić zakupy albo iść do szkoły.) Powstawały kolejne projekty. Coraz bardziej ambitne. Coraz bardziej rozbudowane. Nigdy nie skończone. (Poza dwoma/trzema miernymi gierkami, które gdzieś tam opublikowałem. Nie mam pojęcia nawet po co.) Jednakże z każdym takim projektem umiałem coraz więcej. Aż do teraz. Gdy wydałem swoją pierwszą komercyjną grę. Sky Dash. Prostą mobilną grę zręcznościową. Na pomysł jej wykonania wpadłem przypadkowo. Stwierdziłem po prostu, że moje umiejętności są już na takim poziomie, że jestem w stanie już zrobić coś na tyle dobrego by mogło być komercyjne. Jednak nie wiedziałem jaka to może być gra. Na drodze eliminacji zaczął powstawać projekt. Gra PC czy mobilna… Zrobienie gry PC zajmie za dużo czasu i pochłonie za dużo pieniędzy – robię mobilną. Rozbudowana, jakiś dungeon crawler, shmup, gra fabularna czy może coś prostszego ale trudnego dla gracza? Nie mam na tyle umiejętności graficznych by zrobić coś ładnego i rozbudowanego ani na tyle budżetu by opłacić grafika – robię coś prostszego. O co ma chodzić w tej grze… Kolejny klon Flappy bird? Nieee, nie lubię zgapiać i tych klonów jest za dużo na rynku. To może jakiś endless runner? 3D nie bo dużo takich. 2D poziome też nie bo to klasyczne runnery dwuwymiarowe. To może w pionie! O! To jest myśl! Tylko grawitacja działająca od boku to trochę słaby pomysł… To może zróbmy skakanie między ścianami! Teraz pytanie „Co ma utrudniać rozgrywkę?”. Może piły tarczowe na ścianach i mielenie gracza tak jak w Super Meat Boy z fajnymi efektami rozlewania się krwi? Kurde, ty to masz łeb gościu! I teraz był najtrudniejszy wybór. Jakiej technologii użyć… Wiele do wyboru nie miałem. Unity lub C# Xamarin i MonoGame. Znałem jeszcze inne technologie jak np. Delta Engine, jednak nie znałem ich tak jak Unity czy MonoGame. Ostatecznie wybrałem Unity3D. Znałem je najlepiej, czułem się w nim pewniej niż MonoGame oraz silnik robił sporo rzeczy za mnie, które w MonoGame musiałbym robić „na piechotę”. I tak o to przystąpiłem do pracy. Powoli powstawał generator mapy, gdy był już w stanie tworzyć mapę bez przeszkód zabrałem się za tworzenie gracza. Zminimalizowałem Unity i uruchomiłem Inkscape. Zrobiłem placeholderową grafikę postaci gracza i zaimportowałem do Unity. Był to znany wam dobrze zielony glutek (bo co inego poza glutkiem może się fajnie rozpaćkać po kontakcie z piłą?), który jest obecnie w grze. Glutek był jednak tak słodki, że głupio mi było go uśmiercać tak brutalnie, więc stwierdziłem, że naniosę drobne zmiany do projektu by było mniej brutalnie. Postawiłem na pranie. Bo co innego ludzie rozwieszają na zewnątrz budynku. Mogą to być jeszcze anteny, ale anteny takie mało ciekawe. Po testach okazało się jednak, że gra nie jest tak trudna jak miała być. Dlatego dodałem do niej nowe przeszkadzajki, którymi są meteoryty. Proces twórczy trwał dalej. Natrafiałem na coraz to nowsze problemy (jak to, że gra miała spadki FPS na niektórych telefonach). Gdy naprawiłem jeden błąd pojawiał się drugi i tak w kółko, aż do momentu kulminacyjnego, czyli… wydania gry. Sky Dash (bo tak zwała się gra) wylądował na Google Play, zyskał dobre oceny od osób, które na niego jakoś natrafiły aż zaginął w czeluściach marketu i się „nie wybił”. Wydanie tej gry jednak mnie wiele nauczyło i chodź nie zyskałem na niej materialnie to zyskałem doświadczenie, którym mogę się podzielić innym osobom, które nie mają jeszcze wydania swojego pierwszego produktu za sobą.

2Nauka I

Zastanów się 5 razy nad doborem technologii. Pod gry proste używaj prostych narzędzi, pod złożone zaawansowanych. Unity to potężne narzędzie, nawet bardzo potężne i to jest jego główna wada w Sky Dash. Mechanika gry jest prosta, nie wymaga ona żadnych zaawansowanych obliczeń fizycznych, pathfindingu, złożonych animacji itd. Gdybym miał robić Sky Dash po raz drugi to wziąłbym inne narzędzie, prostsze. Dlaczego? Złożoność silnika gryzła sięz prostotą gry i powodowała różne bugi i performance issues.

1Nauka II

Reklama na forach czy listach aplikacji ma bardzo mały conversion rate czyli to jak przekładają się wyświetlenia aplikacji na takim forum/liście na ilość pobrań. Niepotrzebnie będziesz na to tracić czas. Co najwyżej na forach możesz znaleźć parę osób, które chętnie Ci pomogą testować twoją grę. Reklama płatna typu Facebook daje rezulaty dobre, jednak pod jednym warunkiem: dobrze ustaw grono odbiorców. Dla testu zainwestowałem parę złotych w reklamę na facebooku. Stworzyłem dwie kampanie. Jedna skierowana do osób bardziej uogólnionyc h, druga skierowana do osób lubiących gry casual, grający w gry mobilne o określonym wieku. Pierwsza (ta ogólna) przyniosła aż całe 0 pobrań! Druga, bardziej szczegółowa, już lepiej bo parę pobrań od niej wpadło (kwota reklamy była nieduża, więc i liczba pobrań też). Zapewne jakbym jeszcze bardziej sprecyzował grono odbiorców dla drugiej kampanii wynik byłby jeszcze lepszy.

3Nauka III

Najlepszy rynek na gry Android to… Google Play. Wiem, że jest to ironiczne bo w końcu Sky Dash nie przebił się w Google Play, ale dalej pozostaje to sklep z największą liczbą możliwośći i użytkowników i w końcu uda Ci się przebić z swoją aplikacją. Ja nie mam zamiaru się poddawać. Będę próbował dalej. Poza Google Play gra trafiłą również na Amazon Appstore i SlideMe. Na SlideMe osiągnęła jakoś 120 pobrań a na Amazonie… 0 pobrań. Dlaczego tak? Amazon nie promuje nowych gier. Bez reklamy nie zdziałasz wiele w tym sklepie.

Link do google play

SkyDash

2 thoughts on “Historia Twórcy SkyDash


    Warning: call_user_func() expects parameter 1 to be a valid callback, function 'twentyeleven_comment' not found or invalid function name in /home/webgamede/domains/gamedevmania.com/public_html/wp-includes/class-walker-comment.php on line 174

      Warning: call_user_func() expects parameter 1 to be a valid callback, function 'twentyeleven_comment' not found or invalid function name in /home/webgamede/domains/gamedevmania.com/public_html/wp-includes/class-walker-comment.php on line 174

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.