Vždy jsem věděl, že jednoho dne stvořím hru, ale nikdy jsem tušení, co takový vlastní projekt obnáší. Můj linux way of life se začal přenášet i do softwaru a začal jsem hledat alternativy. Chtěl jsem engine, který nabízí volnost, a našel jsem Godot. Po půl roce "blbnutí" v něm jsem se tedy odhodlal, koupil zápisník a začal si dělat poznámky o své budoucí hře.
Miloval jsem Magic the Gathering, takže má inspirace byla hlavně z této karetní hry. Hráč si navolí armádu ("balíček karet"), ze které pak bude náhodně vyvolávat jednotky ("přibírat karty") na bojiště. Po vyvolání jednotky pak bude moct útočit na nepřátelské jednotky. Porazí-li všechny, vyhrál. Jednoduché, během měsíce bude hotovo a já si přilepím svůj skautský odznáček "Game Developer".
Věděl jsem, že hry nejsou jen zdrojový kód a že hry mají i nějakou vizuální reprezentaci. Možnost sehnat assety, aniž bych ztrácel čas kreslením, mi mělo pomoct. Až na to, že rozpohybovat postavičky musím sám. To ale nevadí, dokud člověk dělá prototyp, animace 4 různých objektů nezabere tolik času (tedy, pokud člověk nějaké zkušenosti s animacemi již má, což jsem samozřejmě neměl). Když už se mi podařilo něco rozpohybovat, narazil jsem na FPS. Kolik snímků za sekundu má animace mít, aby nevypadala "trhaně"? Dělám to vůbec dobře? A následoval týden učení se o animování statických objektů.
Jen co jsem zvládl tuto výzvu a postavy se mi proháněly po obrazovce a útočily na sebe, začal jsem cítit, že má hra je divná. Něco mi nehrálo. User Interface! Kam dám tlačítka pro vyvolání? Kam dám status bar, který bude ukazovat momentální počet životů hráče? Kam umístit ikonku síly útoku pro každou jednotku? A PROČ JSEM SI SAKRA VYBRAL TELEFON JAKO CÍLOVÉ ZAŘÍZENÍ?! Omezený prostor a omezené assety mi začaly velmi rychle cucat mou naději v to, že někdy dokončím vlastní hru.
Ale pokračoval jsem.
Hra začala vypadat jako hra a já začal rozšiřovat. Takže, chce to 5 různých ras, každá bude mít 5 různých jednotek a zároveň musí mít nějaké speciální téma. Opět následovalo několikadenní chození se zápisníkem a tvorbou imaginárního světa, až nakonec jsem měl konečně celý setup.
Rasa kostlivců se vyznačovala absencí mozku a útoky na náhodné cíle, Impové budou rasa, která ovládá magii. Masteři se postarají o kontrolu nad bojištěm. Zombie budou zatěžovat nepřátele jedem. Nakonec Démoni, rasa, která byla vyšperkovaná k dokonalosti. Jejich útoky poškozovaly nejen nepřátele, ale také hráče. Nabízeli neskutečnou sílu, ale za cenu obrovského risku (přesně tak, jak má pakt s démony fungovat).
Zápisník se plnil a představa, že se z něj vše zhmotní, mě naplňovala a zároveň strašně děsila.
Měl jsem náčrt jednotek a zjistil, že potřebuji i nějaké speciální nepřátele. Nepřátele, kteří dokážou hráče překvapit. Stvořil jsem pár zajímavých nepřátel, například vlka, kterému se každé kolo zvyšuje útok a tím tlačí hráče, aby se ho zbavil co nejrychleji. Samozřejmě jsem některé levely udělal zákeřnější a před vlka postavil rytíře, který blokoval útoky, abych vlka ochránil ještě déle. Jo, tohle byla docela pěkná část designu.
NEŽ JSEM ZASE MUSEL DĚLAT ANIMACE! 5 ras * 5 jednotek + 8 nepřátelských jednotek = 33 jednotek k animaci. A tentokrát opravdové animace se vším všudy. Chůze, útok, smrt, vyvolání, animace pro speciální útok a hlavně efekty – exploze, aury, přidávání resourců. PROČ TOHLE DĚLÁM?!
Následovalo nekonečné animování, nekonečné mapování a úprava rychlosti. Několik hodin v autě a laptopem, kdy jsem byl strašně vděčný, že baterka není tak silná, aby mi vydržela 12 hodin, jinak bych tam asi zemřel vyčerpáním. Přestávka v práci? Godot! Dítě konečně usnulo? Godot! Co si dám na oběd? GODOT!
Ale já to opět zvládl a měl konečně ultimátní kostru.
Nyní to již bylo jen o úpravě kódu. Naprogramovat speciální akce, logiku hry a konečně dělat to, co mě baví nejvíc. Singletony, classy, regexy a nekonečné IFy tvořily kód, který mi strašně připomínal dětství - písmenkovou polévku. Což mě po pár týdnech velmi rychle naučilo, že kód se má psát čitelný a pěkně formátovaný.
Začal jsem tvořit levely, 5 zón, každá rozdělená na 8 levelů a každá zóna byla určená pro jinou strategii. Rozmístění nepřátelských jednotek bylo zábavná aktivita a opravdu jsem si užil dělat to hráči co nejtěžší. Do každé zóny jsem přidal Bosse, tím pádem opět animace, ale v tuto chvíli mi to už ani nevadilo, začal jsem si zvykat na bolest. Každý boss měl speciální mechaniku a já byl připraven vypustit hru do testingu.
Až na to, že by to chtělo nějakou motivaci pro hráče. Takže každá rasa měla uzamčené 3 jednotky a hráč si je mohl odemknout skrze skill pointy, které získal při dokončení levelu. Ale tohle mi nepřišlo dostatečně hluboké, takže jsem přidal i možnost koupit jiné věci za skill pointy. Například možnost si vybrat svou primární rasu a té poté poskytnout určitou výhodu. Přece jen, hráč si mohl kombinovat jednotky dle uvážení a já chtěl, ať je odměněn za to, když si vybere jednotky převážně z jedné rasy.
Když jsem po půl roce začal testovat s veřejností mou hru, zjistil jsem, že jsem pravděpodobně neodhadl obtížnost. Když znám hru skrz naskrz, nemůžu to samé očekávat po hráčích, kteří mou hru vidí poprvé. Zpětnou vazbu jsem si vzal k srdci a mou hru začal zjednodušovat. Veškeré mé výpočty, co se týče životů, útoků a jiných balančních mechanik, šly oknem ven. Vše jsem upravil a dokonce jsem přidal i tutoriál. Původní absence tutoriálu byl účel. Sám nemám rád, když mě někdo vodí za ručičku, a rád si hry prozkoumávám sám. Bohužel patřím do menšiny a když spolknu trochu své hrdosti, musím uznat, že tutoriály jsou potřeba. Zvolil jsem kompromis, takže jsem ho nakonec nevnucoval, ale člověk po kliknutí na Help měl vše na jednom místě.
Druhé kolo testování dopadlo téměř dokonale. Lidé byli nadšení a já si říkal, že můj dojem o malé obtížnosti je opravdu jen dojem. Než se hra dostala k pravému hráči.
"Hele, hra je dobrá, ale koukej, tady mám nekonečné combo"
"Ano, to combo tam je a stačí trochu popřemýšlet nad mechanikou hry a vzhledem k menší obtížnosti je to teď prostě OP, ok, jsem rád, že sis všiml."
A po půl hodině testování dodal:
"Proč jsi je poslouchal? Oceňuji, že se při té hře dá dívat na televizi, ale tohle je fakt hrozné."
Počkat, já stvořil hru, u které se nemusí přemýšlet? Vážně teď týpek dokončil 70 % hry, aniž by se někde zaseknul? Ale je to jenom jeden člověk, nechám tu hru jak je, bude dostupnější většině. Opravím nahlášené bugy a konečně vydám na Google Play.
Jde o vládní aplikaci? Jde o zpravodajskou aplikaci? Obsahuje vaše hra krev? Obsahuje vaše hra hákové kříže? PLANUJETE ANEXI POLSKA?!
Dobrá, ta poslední otázka nezazněla ve formuláři, ale tento náraz na byrokracii, kdy jsem chtěl jen svůj hobby projekt dostat ven a konečně si přišít ten svůj odznáček, byl zdrcující. Šlo o další fázi projektu, se kterou jsem nepočítal. Pohlídat si, ať vše sedí legálně a dodávat veškeré informace, o které si Google řekne.
Ačkoliv to bylo nepříjemné, musím uznat, že jsem to JÁ, kdo si vybral Google Play a bylo potřeba hrát podle jejich pravidel. Bohužel mě tímto přešla jakákoliv chuť k podnikání ve světě IT a řešení daní / zákonů. Každopádně hra svítila na internetu a byla přístupná a já byl šťastný.
Než jsem teda narazil na velmi špatnou optimalizaci mého softwaru. Ten obrovský kolos, který jsem stvořil, byl špatně. Nebyl dokonalý a optimalizovat ho nešlo, aniž bych neinvestoval další půl rok do veškerého přepisování, VČETNĚ ANIMACÍ! A tak, jako Frodo, jsem musel tento projekt hodit do sopky, aby nade mnou již neměl žádnou moc. Stiskl jsem delete, a projekt zmizel a s ním i možnost jakkoliv ho upravit nebo opravit.
Až nyní si uvědomuji, že Chaotic Summoner je vlastně postava, která měla v tu dobu strašně blízko mně. Postava, která používá magii k vyvolání jednotek, ale chaotickým způsobem a nedokáže nikdy vyvolat přesně to, co chce. Celá hra je vlastně postavená na tom, že člověk se musí poprat s náhodou a vyvažovat pomyslné misky vah. Tak jako já se svou omezenou znalostí jsem začal dělat hru, která se stala až příliš velkým soustem. Ale jsem hrdý, že jsem to dokázat přežvýkat a nakonec to nebyl až takový "blivajz".
Dodnes ji mám nainstalovanou. Občas ji spustím a místo hry už nevidím jednotky ani levely. Vidím stovky malých rozhodnutí, slepých uliček a večerů, které ze mě udělaly lepšího vývojáře.