MojAndroid

Na našej stránke často informujeme o nových slovenských aplikáciách a hrách a tiež vám prinášame rozhovory s ich autormi. Zvykneme uverejniť aj správy o vývoji Android aplikácií, doteraz sme sa však tejto téme hlbšie nevenovali. Inšpiráciou na zmenu nám bola ponuka od vývojárov z herného štúdia Geardice, ktorí boli ochotní podeliť sa s nami o svoje skúsenosti s vývojom aplikácií. Viac podrobností o tomto hernom štúdiu zistíte na ich oficiálnej webovej alebo facebookovej stránke.

Logo Geardice

Geardice je mladé vývojárske štúdio, ktoré má na svojom konte viacero hier i aplikácií. Spektrum ich využitia je rozsiahle, či už ide o zábavu, marketing, priemyselné alebo administratívne účely. Vývojári z Geardice programujú aplikácie a hry pre Android aj iOS a vývoj aplikácií je pre nich nie je len prácou, ale aj zábavou. V minulosti sme písali napríklad o ich hrách Hexamond či Fluffy Ball a práve druhej menovanej sa bude týkať nasledujúci text. Jeho autorkou je Petra Múčková z Geardice a podrobne opisuje vývoj mobilnej hry Fluffy Ball krok po kroku. Veríme, že takáto sonda do vývoja mobilnej aplikácie bude zaujímavou pre bežných čitateľov, ale predovšetkým pre tých, ktorí uvažujú o vývoji vlastných aplikácií a chceli by sa o tomto procese dozvedieť čo najviac.

Vývoj Fluffy Ball

Ako vyzerá vývoj hry pre mobilné telefóny? Neznalí si možno povedia, že to nemôže byť ťažké, niečo sa vymyslí, prešpekuluje, naprogramuje a voilá, hra je na svete. Je to však o niečo komplikovanejší proces. Prinášame Vám preto pohľad na to, ako sa postupne vyvíjala hra z našej tvorby a ako to všetko začalo. Enjoy!

Pôvodná myšlienka vychádzala z predstavy o panáčikovi, hlavnom hrdinovi, ktorý mal behať a skákať po budovách v štýle hier jump ‘n’ run. Ladená bola do sépiového resp. tmavšieho odtieňu. Neskôr sa prešlo ku konceptu s loptičkou, skákajúcou po budovách, ktorej predchádzala kamenná guľa kotúľajúca sa svetom.

Náš tip
Slovenská hra Fluffy Ball

Postupne sa uchytil aj pracovný názov Rooner, ktorý bol odvodený z anglického slova runner-bežec a guľatého tvaru loptičky zhodného s tvarom písmena „o“. Hra však zvolenými farbami nadobudla na pochmúrnosti a bezpodmienečne si vyžadovala oživiť. Modrá obloha zaliata slnečnými lúčmi a krásne zelené palmy dotvorili nový, svieži a farebnejší dizajn hry. Redesignom prešla aj naša loptička, ktorá už pri skákaní pišťala v podobe okatého chlpáčika Fluffyho, a ten definitívne zaujal miesto hlavnej postavičky hry. Pôvodný koncept zahŕňal iba Free run mód s počítadlom najvyššieho skóre. Aby sa však hra neprepadla do monotónnosti, pribudla aj kampaň, kde hráč musí postupne prejsť levely od ľahších po najťažšie. Prostredie sa v strede kampane mení z denného na nočné a každým ďalším levelom stúpa aj ich náročnosť. Neraz si hráč musí trénovať svoju pamäť, aby sa mu podarilo úspešne preskákať až do cieľa a nazbierať čo najväčšie množstvo hviezdičiek.

Hra je taktiež ťažšia vďaka ovládaniu pomocou akcelerometra, ktorým sa reguluje rýchlosť Fluffyho (nakláňanie telefónu doľava-spomalenie, alebo doprava-zrýchlenie). Háčik je však v tom, že chlpáčik síce môže spomaliť, ale nikdy sa nezastaví. Hráči si tak môžu precvičiť svoje reakčné schopnosti a reflexy.

Priebeh programovania

Hra bola naprogramovaná v Adobe Flash Professional – programovacom jazyku ActionScript3.

Geardice  - vývoj Fluffy Ball 027 Geardice  - vývoj Fluffy Ball 026

  • Pre Android a iOS platformu bola vydaná cez Adobe Air (ktorý je multiplatformový)
  • Hra využíva Stage3D, ktoré Adobe v roku 2011 pridalo do flashu (Flash Player od verzie 11, a Adobe Air od 3.2)
  • umožňuje využívať výkon grafických kariet (hardwarovú akceleráciu).
  • V hre boli použité 2 frameworky (opensource), ktoré využívajú Stage3D, Starling a Away3D
  • Starling sme použili pri renderovaní pohyblivého pozadia, a dážď v popredí. Away3D sa využil pre render 3D objektov (Fluffyho,budovy, palmy, stromy…)

Krok 1:

Čo teda človek potrebuje pre vývoj hry? Predovšetkým skvelú myšlienku! Akú hru bude robiť, v čom bude výnimočná, pre koho bude určená, ako sa bude ovládať, o čo v nej pôjde. Ak si zodpovie tieto otázky, môže začať so samotným vývojom. V prvom rade je nutné naprogramovať engine, na ktorom hra pobeží. Na to, aby ste naplnili obsahom hru, potrebujete level editor. Najlepšie, ak si naprogramujete svoj a doň si spravíte funkcie a možnosti, ktoré potrebujete. Pre Fluffyho sme si aj my naprogramovali jednoduchý level editor, v ktorom sme rozmiestňovali budovy a jednotlivé objekty ako napríklad hviezdičky či pohyblivé plošinky. Následne sme si výstup z editoru ukladali do .xml súboru z ktorého sme načítavali jednotlivé levely v hre.

Geardice  - vývoj Fluffy Ball 025

Krok 2:

Ďalším krokom je vymodelovanie si vlastných modelov. V našom prípade samotného Fluffyho a budov. Jednotlivé 3D objekty, ktoré boli použité v hre, sme modelovali v Blenderi (opensource modelovací nástroj). Pre načítavanie exportovaných 3ds modelov z Blendera do hry bola použitá Loader3D trieda z Away3D frameworku.

V hre sme použili na fyziku Box2D (opensource framework), pomocou ktorého sme spravili kolízie Fluffyho s prostredím.

Krok 3:

Keď sa hra dostáva do finálnej fázy, treba si všetko vždy spätne skontrolovať a snažiť sa časti kódu, ktoré môžu byť problematické, optimalizovať tak, aby zbytočne nezaťažovali zariadenie, na ktorom hra beží. Ako príklad uvediem situáciu, ktorú sme riešili pri vývoji Fluffyho. Svetlo, ktoré sme používali na osvetlenie levelu a všetkých objektov v ňom, bolo na niektorých zariadeniach problematické. A to v tom zmysle, že zariadenia mali pokles FPS. Preto sme museli premyslieť, ako budeme pokračovať ďalej. Keďže sme svetlo používali len ako indikátor dňa a noci – osvetľoval textúry – prišli sme na lepší spôsob s rovnakým výsledkom.

Pred načítaním levelu, v ktorom sa menil deň na noc alebo opačne, sme si zoradili do poľa všetky textúry modelov, ktoré sa nachádzajú v danom leveli, zobrali si ich textúru a pomocou jednoduchého algoritmu, ktorý danú textúru zmultiplikoval s farbou (farba pre deň bola biela, farba pre noc tmavo modrá) a vrátil upravenú textúru. Tým pádom sme nezaťažovali zariadenie výpočtami svetla v reálnom čase na jednotlivých objektoch.

Krok 4:

Ako náhle hru dokončíme, prichádzajú na rad hodiny a hodiny testovania, aby všetko fungovalo presne tak, ako by malo. Následne, keď máme hru otestovanú, optimalizovanú a vychytané všetky možné chybičky, prichádza ten správny čas ju publikovať.

Na publikovanie hier pre Android nám poslúžil najväčší android obchod s hrami – Google Play. Poplatok za konto je 25€, ktorý sa platí jednorazovo. Môžete využiť napríklad aj Samsung Apps obchod, kde za registráciu neplatíte nič, a na rozdiel od GooglePlay je v ňom možné dávať platené aplikácie zo Slovenska.

Hra je dostupná zadarmo na Google Play, bez reklám a minitransakcií!

A čo chystáme ďalej?

Momentálne vyvíjame hru s tankmi, v ktorej bude okrem klasickej kampane aj lokálny multiplayer cez wifi. Stačí, ak sa hráči napoja na wifi sieť a jeden z nich vytvorí server, na ktorý sa ostatní pripoja (alebo ak jeden hráč spraví na svojom zariadení wifi-hotspot, a ostatní sa mu naň napoja). Hra ponúkne okrem deathmatchu, teamdeathmatchu, capture the flag aj coop mód, v ktorom budú hráči spoločne prechádzať levelmi a bojovať proti nepriateľom. Bonusom pre hráčov bude aj splitscreen mód, ktorý veľakrát hrám tohto typu chýba.

Geardice  - Tanks

V dnešnej dobe je veľa hier, ktoré keď chcete hrať, musíte byť napojený na internet, čo ľudí bez internetu diskriminuje. Preto sme prišli s nápadom spraviť lokálny multiplayer, aby si hráči mohli v čase voľna či z dlhej chvíle zahrať proti sebe ;) Pridávame aj video z alpha verzie hry:

Na záver ešte pridávame linky na spomenuté vývojové nástroje:

Programovacie prostredie:

Použité frameworky: (opensource)

Zdroj: Geardice, Petra Múčková

28.1.2014

Pravidlá diskusie

Portál MojAndroid.sk si vyhradzuje právo zmazať neslušné, rasistické a vulgárne príspevky, ako aj osobné útoky na redakciu, či diskutérov v komentároch pod článkom bez ďalšieho upozornenia. V prípade uverejňovania odkazov na externé stránky, je komentár automaticky preposlaný do redakcie na schválenie.

+