V rámci své bakalářské práce jsem vytvořil knihovnu pro Android, která umožňuje jednoduchou tvorbu geolokačních her.
Geolokační hry (anglicky Location based games) jsou takové hry, které nějakým způsobem závisí na aktuální poloze hráče (hráčů) v reálném světě. Nejčastěji se k jejich hraní využívá chytrý telefon s GPS přijímačem (a eventuálně i s připojením k internetu).
Tato knihovna aktuálně umožňuje tvorbu her pro jednoho hráče bez pohybujících se objektů (tedy bez nepřátel a umělé inteligence). Měla by být použitelná pro různé šifrovačky, logické hry, nebo i pro mnoho dalších typů her - víceméně záleží jen na nápadu a kreativitě.
Knihovna se stará o načítání hry, správu jejího průběhu, zpracování informací o aktuální poloze hráče, aktualizace herního času, umožňuje zpětnou vazbu (zvukové efekty, vibrace, přepínání oken, apod.), umožňuje interakci s reálným světem (podpora skenování QR kódù, sleduje příchody a odchody uživatelů z definovaných oblastí a distribuuje různé herní události aplikaci.
Princip vytvoření herní aplikace spočívá v rozdělení na 3 části:
Herní scénář obsahuje definici herních objektů a logiky. Je uložen v *.xml souboru a je jednoduše čitelný i editovatelný. Knihovna pak zabezpečuje jeho načtení, zpracování a vykonávání.
Mimochodem je možné, aby autor scénáře byl někdo, kdo vůbec v Javě/pro Android neprogramuje. Samozřejmě za předpokladu, že použije nějaké hotové GUI (nebo pokud budou dva, kdy jeden připraví aplikaci/GUI a druhý scénář - podobně jako kodér a programátor v rámci webových stránek).
Ve scénáři lze definovat:
Jednotlivé položky mají různé parametry a typy, ale toto je v zásadě vše, co tvoří herní logiku. Pro další informace navštivte některý z odkazů dole.
Návrh aplikace a jejího uživatelského rozhraní záleží čistě na programátorovi. Knihovna jej nijak neomezuje.
Je tedy možné mít aplikaci, která by byla univerzálně použitelná pro různé scénáře. Představoval bych si ji tak, že bude propojená s nějakým serverem, na který budou lidé ukládat vlastní scénáře her, a následně bude možné si je stáhnout do mobilu a kdykoliv si vybrat, kterou hru si člověk právě přeje spustit.
Pro komunikaci s knihovnou je potřeba implementovat některé základní metody pro příjem herních událostí a reagování na ně. A samozřejmě i vyvolávání případných vlastních událostí (např. klepnutí na tlačítko) a ovládání uživatelského rozhraní.
Do budoucna bych rád přidával nové funkce a možnosti dle zpětné vazby, kterou získám. Proto by bylo skvělé, kdyby by se našel někdo, kdo by ji vyzkoušel a dal mi vědět, co mu zde chybí nebo co by potřebovalo změnit/vylepšit v rámci potřeb jeho hry.
Pokud by tato knihovna někoho zaujala a chtěl by ji použít, rád mu s čímkoliv poradím.
Knihovna je vydána pod licencí Apache License Version 2.0, tedy zdarma prakticky bez omezení i pro komerční účely.