PDA - Principy tvorby mobilních aplikací
Sázky závody
SÁZKY A ZÁVODY
Ondřej Fejfar, Tomáš Hůla, Tomáš Nosek
ČVUT v Praze, FEL 2012
1
PDA - Principy tvorby mobilních aplikací
1
Sázky závody
Úvod
Cílem tohoto projektu je navrhnout interaktivní aplikaci pro chytré mobilní telefony Sázky a závody. Aplikace by měla umožnit dvěma, případně více uživatelům, uzavřít sázku, kdo bude první na určeném místě. Uživatelé budou mít k dispozici virtuální peníze, o které se budou moci vsadit. Podle nastavených pravidel budou moci sledovat jak svoji tak soupeřovu přesnou polohu a vzdálenost k cíli. Kdo bude první na předem určeném místě, vyhrává. Aplikace bude využívat typické funkce dnešních smartphonů jako je například zabudovaný GPS čip, připojení k internetu a volně dostupné online mapy díky kterým bude moci fungovat kdekoliv na světě. Jako nativní jazyk bude použita angličtina, aby mohlo aplikaci využít co nejvíce lidí. K tomu bude pomáhat také virtuální měna a její správná konverze do domovské měny každého uživatele.
2
Analýza aplikace Sázky a závody
V této kapitole nalezneme rozbor podobných, již existující řešení a poukážeme na jejich klady a zápory. Dále si shrneme a analyzujeme problémy, které bude potřeba při návrhu aplikace vyřešit. Ty nejdůležitější z nich rozebereme podrobněji. V poslední části zkusíme naznačit, čemu z výše uvedeného se přesně budeme v rámci tohoto předmětu věnovat a co zkusíme dotáhnout do konce v podobě fungující aplikace.
2.1 Rozbor již existujících řešení
Přímo pro zadanou platformu (Android OS) zatím neexistuje aplikace, která by z nějaké větší části pokrývala nám zadané funkční požadavky. Přesto se ale najdou nějaké, které se k tomu alespoň blíží. Aplikace s touto tématikou se většinou zabývají zaznamenáváním trasy, soutěžení je spíše sekundární účel, například formou celkového počtu nachozených/najetých kilometrů nebo nejlepšího času na nějaké trase, okruhu. Uvedeme zde několik aplikací, kde se objevuje nějaká forma závodů
2
PDA - Principy tvorby mobilních aplikací
Sázky závody
Endomondo sport tracker
Aplikace určená pro záznam trasy, sledování statistiky záznamu, sdíení tras s přáteli a pro nás zajímavé, soutěžení s ostatními uživateli na uložených trasách. Uživatel si vybere trasu, následuje ji a aplikace vyhodnotí čas, za jaký ji překonal. Výsledky se ukládají a nejlepší časy se ukazují ostatním uživatelům. Trasy vytváří uživatelská komunita
Endomondo sport tracker, ukázka:
3
PDA - Principy tvorby mobilních aplikací
Sázky závody
Runkeeper
Podobná aplikace jako Endomondo, slouží hlavně pro logování a sledování statistik sportovních aktivit Závody a trasy jsou zde vypisovány jak běžnými uživateli, tak trenéry a organizátory skutečných závodů v běhu, cyklistice..
Runkeeper, ukázka:
4
PDA - Principy tvorby mobilních aplikací
Sázky závody
2.2 Analýza a návrh řešení nalezených problémů Problém č. 1 – Jak sledovat průběh hry? Popis problému:
Návrhy řešení:
Jak sledovat průběh právě probíhající hry? Jak ho zobrazovat protihráči? Co když některý z hráčů právě nemá GPS signál? Co když vlezl hráč do metra nebo má mobil v kapse? Navrhujeme, aby se oběma hráčům na jejich smartphonu zobrazovala stejná obrazovka, kde bude: především mapa s vyznačeným cílem závodu a okamžitá poloha obou hráčů vzdálenost každého hráče od cíle, která se bude včetně okamžité polohy průběžně aktualizovat status hráče (např. „Na obědě“, „V metru“, atd…) chatovací okénko, prostor pro zprávy mezi hráči typu „Už se blížim k cíli, kde vězíš? :)“, „Už ti šlapu na paty“, atd… Poněkud větší problém by mohl nastat, když by byl závodící hráč delší dobu bez GPS signálu nebo dokonce bez GSM signálu a jeho smartphone by tak nemohl komunikovat s přístrojem svého protivníka (v metru, v tramvaji, v tunelu). Tato situace má hned několik dílčích řešení: V pravidlech hry by mělo být zakotveno, že účastník závodu musí mít vždy umístěn svůj smartphone tak, aby byl v dosahu GPS. Svůj přístroj může mít například v ruce nebo si na svůj smartphone koupit „běžecké“ silikonové pouzdro na paži. Tato pouzdra jsou dnes běžně dostupná pro většinu rozšířených modelů. Pokud se chystá použít takový způsob přemístění, že bude bez signálu, musí toto neprodleně promítnout do svého statusu. Buďto napsat ručně nebo vybrat z několika již přednastavených často používaných statusů jako např. „V metru“, „V tramvaji“, atd… Spolu s posledním záznamem polohy pomocí GPS bude tak protihráč dostatečně informován o postupu svého soupeře. Bližším prozkoumáním mapy tak uvidí, na jaké zastávce soupeř nastoupil. Nedodržením některých výše uvedených zásad může vést až k diskvalifikaci hráče ze hry. Jednotliví hráči budou moci okomentovat své soupeře na jejich profilu a upozornit tak na nekalé praktiky některých hráčů.
5
PDA - Principy tvorby mobilních aplikací
Sázky závody
Problém č. 2 – Jaká pravidla hry? Popis problému: Návrhy řešení:
Jak přesně určit pravidla hry? Jak sledovat jejich dodržování? Dát na výběr pouze jeden typ hry nebo více? Hlavní otázkou je, zda má být zakázáno použití některých dopravních prostředků nebo jestli má být povoleno vše. Jako nejhratelnější možnost pro velkoměsto, kde bude mít aplikace asi největší využití, se jeví povolit pouze vlastní chůzi/běh a použití veřejné dopravy. Naopak jízda autem, na kole či taxi by měla být zakázána, protože dává jednomu hráči výhodu oproti druhému (vlastní vůz, kolo nebo peníze na taxi). Ovšem kontrola, zda člověk nepoužívá zakázané způsoby pohybu, by byla v praxi velmi složitá. Povolená MHD by šla například rozpoznat pravidelnými zastávkami, ale jak rozpoznat v centru města, jestli hráč jede taxi, na kole nebo běží? Průměrná rychlost například ve špičce po Praze je nízká a tak se může stát, že průměrná rychlost běžce je o mnoho vyšší než průměrná rychlost taxi na i více jak desetikilometrovém úseku. Pro co nejjednodušší pravidla hry by bylo nejlepší povolit JAKÝKOLIV způsob dopravy nebo nechat dodržování pravidel na „fair play“ závodníků. V opačném případě dát na výběr například z těchto variant: Pěší závod (rychlost závodníka nesmí přesáhnout např. 7 km/h) Běžecký závod (rychlost závodníka nesmí přesáhnout např. 25 km/h) Závod pomocí MHD (neomezená rychlost a závodník staví na zastávkách) Závod autem (neomezená rychlost)
Problém č. 3 – Zadavatelé cílového bodu? Popis problému: Návrhy řešení:
Kdo bude zadávat cílové body? K tomuto problému jsme diskutovali o několika možnostech. Nejprve se na to podíváme z hlediska, kdo bude moci zadávat cílový bod. Mezi možnosti patří zadání cílového bodu všemi uživateli systému nebo zadávání cílového bodu třetí nezúčastněnou osobou. Po přemýšlení jsem došel k závěru, že by bylo dobré povolit obě tyto možnosti: Aby ho uživatelé mohli zadávat sami, protože poté by se například studenti mohli vsázet, kdo bude dřív ve škole, nebo kdo bude dříve v hospodě a podobně, a tím to začlenit do běžného života. Na druhou stranu by bylo dobré, i aby mohla zadávat cílové body nezúčastněná osoba, například z důvodů statistiky (tím
6
PDA - Principy tvorby mobilních aplikací
Sázky závody
by se mohlo zkoumat na jaká místa lidi hodně chodí), nebo nalákání lidí na nějakou konkrétní lokaci, či k obchodu a tím využít aplikaci také ke komerčním účelům.
Problém č. 4 – Způsoby vybrání cílového bodu Popis problému: Návrhy řešení:
Jak jednoduše vybrat konkrétní bod a udělat z něj cíl? Jednou z možností by mohla být aktuální souřadnice, kupříkladu pokud by se vsázeli studenti, kdo se dostane dříve do školy, na místo kam chodí denně každý den, tak by to mohli přímo označit jako aktuální souřadnice a zjednodušit tak zadání adresy a podobně. Další z možností by mohlo být přímé zadání GPS souřadnice cílového bodu, tento způsob by byl také docela jednoduchý, jsou k tomu ale potřeba znát ty souřadnice. Možným řešením, které by se také dalo použít, je zobrazení mapy na display telefonu a uživatel by sám mohl prohlížet mapu a následně cílový bod přímo označit. Poslední z možností je zadání adresy. Tuto možnost bych zkombinoval s předchozím bodem, protože by mohl nastat problém s tolerancí cílového bodu, jelikož adresou by se musel označit buď dům nebo ulice, a tak by nemusel být jasný konkrétní cílový bod. Jak by se například u ulice dlouhé 0,5 km určoval podle adresy konkrétní cílový bod? Uživatel by do kolonky napsal adresu bodu, toto místo by se následně ukázalo na mapě na display a uživatel by vybral konkrétní bod.
Problém č. 5 – Jak určit cíl závodu? Popis problému: Návrhy řešení:
Jak nejlépe určit, zda je závodník na cílovém místě? Bylo by dobré přidat toleranci, tj. okruh kolem cílového bodu, který by označoval cílovou hranici, aby se nestalo, že nalezení konkrétního bodu cíle trvá déle než cesta k němu. Závodník by dosáhl cíle, pokud by se nacházel cca 50 m v okruhu od cílového bodu, což je dostatečná rezerva v rozlišovací schopnosti dnešních integrovaných GPS čipů.
7
PDA - Principy tvorby mobilních aplikací
Sázky závody
Problém č. 6 – Vyzívání soupeře Popis problému: Návrhy řešení:
Jak vyzvat soupeře na závod? Vyzívání soupeře by se lišilo u soukromých akcí a veřejných akcí: V rámci soukromých akcí by bylo dobré udělat systém pozvánek, tak že uživatel který by vytvořil soukromý závod by rovnou mohl i poslat pozvánky, pozvánky by ale šli posílat i následně znova nebo někomu jinému pokud by bylo v závodě volné místo, tento způsob se hodí přesně na soukromé závody u kterých nechceme aby se na něj přihlásila nějaká cizí osoba, ale pouze pozvaní lidé. Tento způsob by ale u veřejných závodů selhal, protože u bych by bylo dobré, aby se závodníci vůbec nemuseli znát a tak by se mohl každý přihlásit do jakéhokoliv veřejného závodu, a proto by se tam spíše hodilo zobrazit seznam aktuálních závodů, na které by se mohl uživatel přihlásit. U seznamu bylo dobré, aby se dal různě seřadit a filtrovat, například, aby se uživateli zobrazily jen ty závody, které by chtěl vidět (př. akce v rámci Prahy, nebo podle času startu akce).
Problém č. 7 – Jak si soupeři rozdělí výhru? Popis problému: Návrhy řešení:
Kolik nabídnout variant hry a jak by tyto varianty mohly vypadat? Diskutujme zde tři typy hry: Jako nejjednodušší se jeví typ hry „Vítěz bere vše“, kde veškerý zisk připadne uživateli, který se dostavil do cíle jako první, tedy vítězi. Druhá varianta by mohla být zajímavější. Aplikace by mohla umět experimentálně spočítat jakýsi kurz na oba účastníky, který by závisel na vzdálenosti hráče od cíle a také například na jeho předchozích výsledcích. Účastníci závodu by se mohli před jeho začátkem dohodnout, zda navrhovaný kurz přijmou nebo ne. Poslední možností by mohlo být vypsat si „vlastní kurz“ a při souhlasu obou soupeřů jednoho zvýhodnit, např. 60:40.
8
PDA - Principy tvorby mobilních aplikací
Co se pokusíme v rámci tohoto předmětu implementovat? Plánujeme udělat funkční základní kostru aplikace, která by měla obsahovat:
Uživatelské účty – aby se dali odlišit jednotliví uživatelé Vytvoření závodu Zadání cílového bodu – zadáním souřadnic či kliknutím do mapy Přihlášení protivníka Sledování stavu hry Sázka o virtuální měnu a její připsání na virtuální účet vítězi
Sázky závody
9