Založil som novú kategóriu – Tvorba hry, pretože hru tvorím a chcel sa podeliť o všetky faily, ktoré počas toho prežívam. Nápad vytvoriť hru ma chytil už na strednej škole, vtedy som si však ešte nevedel predstaviť realizáciu. V prvom ročníku na vysokej som začal veľmi tuho premýšľať o inej hre. “Nápad” môjho spolubývajúceho, ktorý raz poznamenal – takáto hra tu nie je a rád by som ju hral. Uvedomil som si, že ja ju nielen viem vytvoriť, ale hneď ma napadala hromada možností, ako ju vylepšiť. Keď som o nej hovoril svojím kamarátom, páčila sa im (a aj mne!). Začal som teda zháňať tím. Problém je, že v svojom okolí poznám veľmi málo programátorov, ktorím verím a majú zručnosti a čas na vybudovanie takejto hry. Podarilo sa mi ale získať dvoch úplne úžasných grafikov (aby som bol presný úžasnú grafičku a úžasného grafika) a bolo to práve v čase, keď na škole začali visieť plagáty na súťaž o investíciu. Vytvárali sme podklady, aby bolo čo prezentovať a zistili sme, že sme prešvihli termín na registráciu o 10 dní. A tu nastal koniec. Rozmýšľal som, ako pokračovať (do tých investícií som vložil veľa nádeje), keď som si uvedomil, že ten nápad je zlý. Po polroku. Sedel som s kamarátom na pive a dostal som otázku – koľko si do hry ochotný investovať ty sám? A uvedomil som si, že keď do nej nie som ochotný investovať peniaze ja, tak prečo by mal investor?
Začíname znovu
Nuž po krátkej depresívnej chvíľke som si opäť spomenul na hru zo strednej školy. Vtedy som ju nevedel vytvoriť, ale dnes už áno. A keď som do nej domiešal nápady zo zrušeného projektu, dostal som obraz skvelej hry! Nie len skvelej, ale tak úžasnej, že možno zmení celý priemysel (treba trošku preháňať :)). Je to hra, ktorú ťažko popísať slovami: “Je to ako … ale inak”. A tak som opäť zašiel za kamarátmi a predstavil im novú hru (veľmi si týchto ľudí vážim a som im vďačný, že počúvajú všetky moje nápady). A tento nápad sa páčil každému. Začalo nové kolo plánovania – aké technológie, aké herné mechanizmy, aké funkcie, ako vyťažiť z nápadu čo najviac, čo sa bude robiť prvé, ako znížiť riziko neúspechu, ako to predávať. Proste veľa veľa premýšľania. Až som si povedal dosť – treba začať.
Done is better than perfect – alebo nie?
Keď vytvárate nejaký nový projekt, mali by ste sa týmto mottom riadiť. To, čo potrebujete, je čo najskôr uviesť produkt na trh. Nemusí byť dokonalý. Čím dlhšie ho totiž vyvíjate, tým je drahší, a čím neskôr ho uvediete na trh, tým väčšia to bude škoda, ak neuspeje. Okrem toho, keď sa snažíte o perfekcionizmus a necháte svoju bujnú fantáziu premýšľať o všetkých cool featurach, dostanete sa do večného kruhu, kde vkuse prerábate svoju prácu a nikdy nič na trh neuvediete, lebo to ešte nie je hotové/dokonalé. Nespočetne veľa projektov pohorelo práve na tom, že toľko nových a zbytočných funkcií implementovali, že sa nakoniec na míle vzdialili od pôvodného plánu a po niekoľkých rokoch vývoja vlastne nič nemali.
Oveľa lepší prístup je najskôr si celý nápad premyslieť, potom si napísať, čo sa bude kedy implementovať a držať sa toho. A že to nie je dokonalé? Nevadí! Keď to vypustíte na trh, a ukáže sa, že o váš produkt je záujem, dostane finančné prostriedky, ktoré vám umožnia ho vyšperkovať. Cieľom je, čo najskôr vypustiť verziu, ktorá sa môže predávať (aby ste vedeli, či o produkt vôbec je záujem).
Na druhej strane, čím neskôr sa na chybu príde, tým viac stojí jej oprava. A hoc je motto Done is better than perfect super, keby som sa ho slepo držal stálo by ma to veľa peňazí, takže som musel na chvíľu zvoliť iné start-up motto.
Adapt or die
Čas. Keď robíte hru snažíte sa ju urobiť rýchlu – nikto predsa nemá rád hry, ktoré sekajú, chcete hrať, nie čakať. A síce v trošku inej podobe, ale aj som tomuto problému čelil. Ako informovať hráča o zmene? Nakoľko posielanie správ by som outsourcoval, za každú správu by som platil. Príliš časté posielanie by spôsobovalo obrovskú záťaž na server a generovalo by veľa správ. Príliš pomalé posielanie by mohlo miestami spôsobovať hráčove nepohodlie. Treba optimalizovať. Prvé plány hovorili, že odkedy sa niečo stane (alebo malo by sa stať) až dokým sa to hráč dozvie prejdú max. 4 sekundy. Stačilo hráča informovať, že vec sa vykoná o nejaký čas + 4 sekundy, a nič by si nevšimol. Ale, prečo to nerobiť rýchlejšie? Uvedomil som si, že aj napriek tomu, že staviam na technológiách, ktoré používam roky, s optimalizovaním pre veľkú záťaž vážne nemám skúsenosti. Takže som začal hľadať spôsoby, ako čas skrátiť a podarilo sa mi ho skrátiť na 2 sekundy. Samozrejme vedel by som ho ešte skrátiť, ale 2 sek, by mali byť stabilné (nebola by to enormná záťaž na server). A tiež som vymyslel spôsob ako poslať o nekonečne mnoho správ menej, ale prinášalo to bezpečnostné otázky. Stále to nestačilo. Ak je možnosť ako to posielať rýchlejšie a efektívnejšie, chcem to vedieť už teraz. A keďže som ešte stále na vysokej škole, prečo to nevyužiť? Zhodou okolností mám v tomto semestri príbuzný predmet, takže som sa šiel spýtať o nejaké cenné rady. Nuž dostal som viac, než som čakal. Po týždni tvorenia základných pilierov hry, som si po troch vetách cvičiaceho uvedomil, že asi nepoužívam ideálnu technológiu. Ale to je predsa technológia, ktorú dobre poznám a dlho používam! Adapt or die.
Začíname znovu
Po veľmi rýchlom zoznamovaní sa s novou technológiou, som zistil, že by bolo lepšie ešte zmeniť aj všetky ostatné doteraz používané technológie. Neostal kameň na kameni a celú svoju doterajšiu prácu som mohol rovno zahodiť. Teraz je týždeň druhý od momentu, čo som začal hru vyvíjať. Staviam ju na technológií, ktorú poznám 4 dni. Možno to znie divne, ale boli to dni strávené čítaním dokumentácií, pozeraním online seminárov a nakoniec tá technológia nevyšla úplne z holej lúky. Je to niečo, čo s radosťou využívam už dlho, akurát na mieste, kde som to ešte nepoužil. A aké to má výhody? V prvom rade a predovšetkým sa mi podarilo skrátiť čas na niekoľko desiatok milisekúnd. Spolu s tým prestala potreba outsourcovať posielanie správ a teda som ušetril hneď niekoľko tisíc dolárov (teda z pohľadu na budúcnosť samozrejme). Rovnako nová technológia by mala byť aj menej náročná na výpočtový výkon, takže som ušetril aj na serveroch. Samé plusy
Končí druhý týždeň, opäť programujem základné mechanizmy a aj napriek tomu, že škola si vyžaduje veľa času veľmi sa teším na ďalší vývoj.