Domů
Recenze
Návody
Zajímavosti
Tvorba her
Svět her
Nejen hry
GameStylus Blog

Jak převést aplikaci pro Android na Windows

Naše hry fungovaly na Androidu, ale rozhodli jsme se je převést i na iOS a Windows 10. Jak jsme to udělali?

Jak o nás asi víte, vyvíjíme adventure hry pro Android - a nejen pro něj. Postupem času jsme je přenesli i na iOS a na Windows. O tom, jak jsme hry portovali z Androidu na iOS, jsem už psal jinde (zde), tentokrát se podíváme na to, jak se dají snadno portovat hry, případně další aplikace, samozřejmě, z Androidu na Windows. Krok za krokem. Snad to někomu z vás pomůže...

Náš herní engine GameStylus (více o něm je zde) byl kompletně napsán v jazyce Java. O portování na jiné platformy než Android jsme původně příliš neuvažovali, resp. zdálo se to jako možná vzdálená budoucnost. V jednom okamžiku už jsme ale měli na tomto engine několik her a přišlo nám škoda, že když už jsme jednou vytvořili grafiku, animace, texty, překlady a herní logiku, nemohou si hry zahrát i hráči na jiných platformách, než je Android. A po pravdě: Když se naše hra Alice a Polepšovna pro čarodějky přehoupla přes milion stažení a pořád měla hodnocení přes čtyři hvězdičky z pěti, řekli jsme si, že bychom ji měli převést právě i na iOS a Windows.

Jak už jsem psal výše, začali jsme s portací z Androidu na iOS. Pokud jde o převod na Windows, původně jsme měli za to, že použijeme Windows bridge for Android (Přemostění na Windows pro Android, známé jako projekt Astoria) od Microsoftu. Microsoft ho začal vyvíjet v době, kdy přišel s Windows 10 a cíl byl jasný: Rychle získat na Windows 10 UWP (Universal Windows Platform, tedy aplikace, které Microsoft začínal nabízet ve svém Microsoft Store) co nejvíce aplikací. Spolu s tím přišel i projekt Windows bridge for iOS (Přemostění na Windows pro iOS). A tak jsme čekali, až Microsoft tyto nástroje dokončí.

Vše se ale táhlo. První preview Přemostění se objevila - jako preview - přesně před třemi lety, v srpnu 2015, přemostění pro iOS je nyní ve verzi 0.2 (ano, 0.2 po třech letech!) a přemostění pro Android Microsoft úplně vzdal. Jestli se vám to u tak velké firmy zdá neuvěřitelné, pak věřte, že nám také. Nicméně zprvu jsme netušili, že to bude takový průšvih - a trpělivě jsme čekali. Pak Microsoft ukončil projekt Astoria, my jsme portovali náš engine na iOS a říkali jsme si, že odtud ho pak portujeme na Windows 10 díky Přemostění na Windows pro iOS. Průběžně jsme to testovali a ukazovalo se, že se to přemostění (preview) chová naprosto nepředvídatelně, hra se ukáže v nesmyslných rozlišeních, nelze ji odkrokovat a podobně. A tak jsme letos čekání vzdali.

Jak jsme převedli hry z Androidu na Windows 10

Windows 10 jsme ale úplně vzdát nechtěli. Jak to ale udělat co nejsnáze a nejrychleji? Naše hry nabízíme zdarma nebo za částky mezi jedním a dvěma dolary, nemůžeme si tedy, po pravdě, dovolit vysoké náklady - a musíme také pracovat na věcech, které nás živí, což hry, bohužel, nejsou.

Problém má dvě části: Jednak je třeba převést kód z Javy do nějakého jazyka, se kterým si dobře rozumí Microsoft Visual Studio a ze kterého je schopno udělat UWP aplikaci pro Windows 10. A jednak je třeba vytvořit propojení s Windows - výkonné funkce závislé na Androidu je třeba převést na funkce fungující ve Windows 10. Jde o funkce pro grafiku, zvuky, ukládání dat a podobně. A také o základní strukturu aplikace, kdy je třeba nutné ve vhodný okamžik volat herní logiku, update displeje, ukončení a uložení hry a podobně.

Jako programovací jazyk jsme z různých důvodů zvolili C#. Po pravdě: S C a C++ máme zkušenosti, s C# vůbec žádné. Chtělo by to ovšem nějaký pomocný nástroj, který kód pro Javu převede na kód C#. A tady jsme sáhli po Java to C# Converter od Tangible Software Solutions. Tenhle nástroj má verzi zdarma, která je omezená, a verzi placenou (120 dolarů je jistě velmi dobrá cena v případě, že děláte převodů více). My jsme se rozhodli využít verzi zdarma, která má méně nastavení a omezený počet řádek kódu k převodu. Nicméně i tak to byla velká pomoc.

Po nějaké chvíli jsme tedy měli hru v C#, nicméně byl tu ještě druhý úkol: Upravit ji tak, aby byla schopna pracovat s Windows 10 API. Naším cílem nebylo stát se specialisty na programování pro Windows v C#, chtěli jsme to udělast co nejsnáze. Nicméně dokumentace, kterou Microsoft poskytuje, je z našeho pohledu dost neintuitivní. Když si chci ke snídani připravit omeletu, nechci číst manuál vysvětlující, jak funguje programovatelná trouba, mikrovlnka, myčka nádobí a digestoř, nechci si číst o historii vajec, o jejich nutričních hodnotách a o druzích slepic, ani si nechci číst recepty na guláš, svíčkovou omáčku nebo sous vide vepřovou panenku. Ne, nechci znát všechny možnosti, chci prostě jasně a stručně vědět, jak mám rozehřát pánev a hodit na ní to pitomé vejce! A ve Windows chci zase vědět, kde jsou vstupní body pro volání metod pro update stavu engine a pro update displeje (a, ano, start a ukončení aplikace) jak zobrazím bitmapu, zahraji zvuk a uložím soubor do místa, kde mi na něj, pokud možno, nebudou sahat jiné appky. Snadno a rychle. Bohužel, tento typ snadného návodu Microsoft nenabízí - i nejjednodušší příklady jsou nesmyslně překombinované. A věřte mi - osobně jsem programoval v lecčems a pro lecjakou platformu, ale i tak bych musel strávit dlouhé hodiny zkoumáním, jak tu UWP appku rozchodit. A to se mi nechtělo.

Takže - co dál? Naštěstí existuje open source projekt MonoGame, který jednak poskytuje framework, jednak přesně takovou jednoduchou dokumentaci, se kterou se Microsoft neobtěžuje. (Nutno dodat, že Mono je opuštěný projekt Microsoftu. Co dodat?) Stačí nainstalovat (do bezplatné verze VisualStudia), chvilku si počíst, vložit kód na ta správná místa, upravit a zkopilovat. Jistě, že je třeba najít správné funkce API pro Windows 10, ale díky MonoGame jsou šikovně zapouzdřené a jejich nalezení a použití je hračka. Podle složitosti aplikace (a způsobu jejího napsání, ovšem) se do dá zvládnout za desítky minut, možná několik málo hodin.

Hotový herní engine pro Windows 10 samozřejmě vyžadoval ještě nějaké to testování a doladění, bylo třeba nahrát všechna data her, jednu po druhé projít a odzkoušet. Potom hry otestovat na soulad s požadavky Windows Store a nahrát je tam. Při ohlédnutí zpátky ale musím říci, že to vše proběhlo relativně rychle.

A ještě jedna poznámka: Editor lokací pro naše hry je napsaný v PHP a JavaScriptu a běží na webu GameStylus.com. Takže v tomto ohledu se nic nemění, hru zde vytvoříte jednou a ona může běžet na Androidu, iOS i Windows 10.

Naše hry k vyzkoušení

Jak už jsem psal výše, vyvíjíme klasické point and click adventury. Využíváme jeden engine a snažíme se, abychom za vývoj neutratili příliš peněz a mohli je nabízet zdarma nebo hodně levně. I když přemýšlíme i o tom, že bychom zkusili i nějaký větší projekt. Engine GameStylus by ho zvládl. Jestli máte chuť se na portované hry podívat, najdete je zde:

Portované adventure hry pro Windows 10

Portované adventure hry pro iOS

Původní adventure hry pro Android, například Alice a Polepšovna pro čarodějky


Komentáře, názory a rady
Zatím sem nikdo nevložil žádný komentář. Buďte první...


>>> Číst a vkládat komentáře <<<
©2015-2019 GameCondor.com
Provozovatel: Bispiral, s.r.o. | O nás | Pravidla webu GameCondor.com a ochrana soukromí | Pošlete nám tip na hru
Facebook Twitter Pinterest