Při vývoji Tablexie jsme zpočátku počítali pouze s Android aplikací pro tablety. Poté, co jsme Tablexii upravili i pro telefony, přišel čas pro další krok ve vývoji. Tímto krokem je podpora další důležité platformy, kterou je iOS. Místo kroku vpřed to ale znamenalo spíše vrátit se na začátek a hru napsat zcela znovu pro druhou platformu.
Proč ale zahazovat již hotové hry a spoustu kódu, který už jsme měli napsaný? Začali jsme se tedy rozhlížet po alternativě pro původně použitý AndEngine, která by nám umožnila použít stávající Javový kód. Současně jsme chtěli nástroj, který bude podporovat iOS a Android s jedinou codebase a jednoduchým workflow.
V podstatě jedinou variantou, vyhovující našim požadavkům, byla knihovna LibGDX. OpenSource knihovna, která dovoluje používat stávající nástroje (Eclipse/Android Studio) a využívá Gradle pro správu závislostí. Umožňuje tvorbu 2D i 3D aplikací a má na sobě postavenu spoustu úspěšných titulů, kterým vévodí hra Ingress s miliony stažení.
Kromě zmíněných iOS a Android platforem podporuje knihovna jako cílové platformy Javu pro desktop a web, pro který se kód přeloží do javascriptu a nepotřebuje tedy žádný plugin.
Samozřejmě jsou na webu určitá omezení v přístupu k souboru a podobně.
Výhodou tohoto řešení je možnost vyvíjet na desktopu bez emulátorů, připojených zařízení a zpoždění s nahráváním aplikace na cílová zařízení. To umožňuje velmi zásadním způsobem zkrátit vývojový cyklus.
Pro úvodní experimentování je možné vytvořit projekt pomocí dodávaného nástroje, jehož výsledkem je jednoduchá aplikace, která se skládá z několika Gradle modulů:
– core – hlavní kód aplikace
– android – kód specifický pro Android platformu a assety pro celou aplikaci
– ios – kód pro platformu iOS s inicializací RoboVM
– html – aplikace pro web s využitím Google Web Toolkit
– desktop – aplikace pro JVM na desktopu
Dále stačí hledat ve spoustě zdrojů na fórech LibGDX nebo StackOverflow. V češtině je zdrojů minimum a nejlepším je asi DP z VUT v Brně, která popisuje vývoj 3D hry s využitím této knihovny.
V rámci Tablexie řešíme podporu SQLite pro všechny platformy a ORM nad touto databází, aby bylo možno jednoduše ukládat složitější data. Dále se snažíme využít nástroj Spoon pro automatizované UI testování na různých zařízeních. Vše bude brzy k nalezení na GitLabu CZ.NIC.