Sem vložte zadání Vaší práce.
České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství
Bakalářská práce
Přenesení hry Heroes of Might and Magic III na platformy J2ME a Android Michal Bečka
Vedoucí práce: Ing. Miroslav Balík, Ph.D.
15. května 2013
Poděkování Chtěl bych poděkovat především vedoucímu mé práce Ing. Miroslavu Balíkovi, Ph.D. za jeho podporu a rady při vedení bakalářské práce. Dále bych rád poděkoval své rodině, která mne po celou dobu studia podporovala. Mé poděkování také patří všem přátelům a známým, kteří mi zapůjčili své telefony pro testování hry.
Prohlášení Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle § 60 odst. 1 autorského zákona.
V Praze dne 15. května 2013
..................... 7
České vysoké učení technické v Praze Fakulta informačních technologií c 2013 Michal Bečka. Všechna práva vyhrazena.
Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora.
Odkaz na tuto práci Michal Bečka. Přenesení hry Heroes of Might and Magic III na platformy J2ME a Android: Bakalářská práce. Praha: ČVUT v Praze, Fakulta informačních technologií, 2013.
Abstract The aim of the project is a comparison between J2ME and Android platforms for creation of extensive graphical applications. Part of my work is also to implement a J2ME remake of computer game Heroes of Might and Magic III and then port it to the Android platform. Keywords J2ME, Java 2 Micro Edition, Android, software porting, Heroes III
Abstrakt Obsahem mé práce je porovnání možností platforem J2ME a Android pro tvorbu rozsáhlých grafických aplikací. Součástí práce je implementace předělávky počítačové hry Heroes of Might and Magic III na platformu J2ME a její následná portace na platformu Android. Klíčová slova Heroes III
J2ME, Java 2 Micro Edition, Android, portace softwaru,
9
Obsah Úvod
19
1 J2ME 1.1 Stručná historie 1.2 Vrstvy J2ME . 1.3 MIDP 2.0 . . . 1.4 MIDlet . . . . .
21 21 21 23 24
platformy . . . . . . . . . . . . . . . . . .
J2ME . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
2 Android 29 2.1 Stručná historie operačního systému Android . . . . . . . . . . 29 2.2 Architektura operačního systému Android . . . . . . . . . . . . 29 3 Analýza a návrh 3.1 Současný stav řešení problematiky 3.2 Heroes of Might and Magic III . . 3.3 Posun herní mapy . . . . . . . . . 3.4 Herní mapa . . . . . . . . . . . . . 3.5 Přizpůsobení rozlišení displeje . . . 3.6 Uživatelské rozhraní hry . . . . . . 3.7 Vykreslení textu . . . . . . . . . . 4 Realizace 4.1 Vývojové prostředí . . . . . . . . 4.2 Architektura . . . . . . . . . . . 4.3 Javadoc dokumentace . . . . . . 4.4 Umělá inteligence . . . . . . . . . 4.5 Minimalizace velikosti výsledného
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
31 31 31 32 32 33 34 36
. . . . . . . . . . . . . . . . . . . . . . . . bytecode
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
37 37 37 38 38 39
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
5 Přenesení na OS Android 41 5.1 Možnosti přenesení . . . . . . . . . . . . . . . . . . . . . . . . . 41 11
5.2 5.3 5.4 5.5
Zvolený způsob přenesení . . . . . . . . . Přizpůsobení rozlišení displeje . . . . . . . Emulace RMS . . . . . . . . . . . . . . . . Specifické nastavení pro danou platformu
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
42 42 42 43
6 Měření 45 6.1 Metodika měření . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.2 Naměřené hodnoty . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.3 Vyhodnocení výsledků měření . . . . . . . . . . . . . . . . . . . 46 Závěr Zhodnocení práce . . . . . . . . . . . . . Srovnání výkonnostních parametrů obou Srovnání platforem . . . . . . . . . . . . Možnosti dalšího vývoje hry . . . . . . .
. . . . . aplikací . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
47 47 48 48 48
Literatura
49
A Seznam použitých zkratek
53
B Obsah přiloženého CD
55
C Uživatelská příručka C.1 Minimální požadavky J2ME verze hry . . . . C.2 Minimální požadavky verze pro OS Android . C.3 Instalace J2ME verze hry . . . . . . . . . . . C.4 Instalace verze pro OS Android . . . . . . . . C.5 Spuštění hry . . . . . . . . . . . . . . . . . . C.6 Hlavní menu . . . . . . . . . . . . . . . . . . C.7 Menu nové hry . . . . . . . . . . . . . . . . . C.8 Seznam dostupných map (Scénářů) . . . . . . C.9 Pokročilé nastavení mapy (Advanced options) C.10 Obrazovka s detailními informacemi o mapě . C.11 Herní obrazovka . . . . . . . . . . . . . . . . C.12 Lokace na herní mapě . . . . . . . . . . . . . C.13 Herní menu . . . . . . . . . . . . . . . . . . . C.14 Nastavení (System Options) . . . . . . . . . . C.15 Obrazovka se statistikami hrdiny . . . . . . . C.16 Obrazovka s hrdinovými artefakty . . . . . . C.17 Výměna jednotek a artefaktů mezi hrdiny . . C.18 Získání nové úrovně . . . . . . . . . . . . . . C.19 Bitvy . . . . . . . . . . . . . . . . . . . . . . C.20 Města . . . . . . . . . . . . . . . . . . . . . . C.21 Kniha kouzel (Spell Book) . . . . . . . . . . . C.22 Přidání mapy vytvořené uživatelem . . . . . . 12
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
57 57 57 58 58 58 58 59 60 60 61 62 62 64 65 67 67 70 70 70 75 81 81
D Změny oproti původní verzi hry D.1 Posun herní mapy . . . . . . . . D.2 Zjednodušení bitevní obrazovky . D.3 Omezení způsobů hry více hráčů D.4 Absence herní kampaně . . . . .
13
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
83 83 83 83 85
Seznam obrázků 1.1 1.2
Diagram průniku společných knihoven . . . . . . . . . . . . . . . . Schéma vrstev platformy Java . . . . . . . . . . . . . . . . . . . . .
22 23
2.1
Schéma vrstev OS Android . . . . . . . . . . . . . . . . . . . . . .
30
3.1 3.2 3.3
Uživatelské rozhraní původní hry . . . . . . . . . . . . . . . . . . . Uživatelské rozhraní pro rozlišení 176x220 obrazových bodů . . . . Uživatelské rozhraní pro rozlišení 240x320 obrazových bodů . . . .
34 35 35
4.1
Jednotlivé třídy . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.1
Třídy návrhového vzoru adaptér . . . . . . . . . . . . . . . . . . .
44
C.1 C.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9 C.10 C.11 C.12 C.13 C.14 C.15 C.16 C.17 C.18
Dialog pro povolení zvukových efektů . . . Seznam dostupných map (Scénářů) . . . . Pokročilé nastavení mapy . . . . . . . . . . Obrazovka s detailními informacemi o mapě Herní obrazovka . . . . . . . . . . . . . . . Herní menu . . . . . . . . . . . . . . . . . . Nastavení (System Options) . . . . . . . . . Obrazovka se statistikami hrdiny . . . . . . Obrazovka s hrdinovými artefakty . . . . . Rozmístění artefaktů . . . . . . . . . . . . . Výměna jednotek a artefaktů mezi hrdiny . Získání nové úrovně . . . . . . . . . . . . . Bitva . . . . . . . . . . . . . . . . . . . . . . Dobývání města . . . . . . . . . . . . . . . . Nastavení bitvy . . . . . . . . . . . . . . . . Město . . . . . . . . . . . . . . . . . . . . . Radnice: seznam budov ve městě . . . . . . Dialog postavení budovy . . . . . . . . . . .
58 60 61 61 63 65 67 68 69 69 70 71 72 74 75 76 77 77
15
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
C.19 C.20 C.21 C.22 C.23 C.24
Putyka (Tavern) . . . . . Cech zlodějů . . . . . . . Nájem jednotek . . . . . . Cech mágů . . . . . . . . Tržiště (Marketplace) . . Kniha kouzel (Spell Book)
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
78 79 79 80 81 82
D.1 Bitevní obrazovka předělávky . . . . . . . . . . . . . . . . . . . . . D.2 Bitevní obrazovka původní hry . . . . . . . . . . . . . . . . . . . .
84 84
16
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Seznam tabulek 1.1
Minimální požadavky MIDP 2.0 . . . . . . . . . . . . . . . . . . .
24
3.1
Srovnání typů herní mapy . . . . . . . . . . . . . . . . . . . . . . .
33
6.1
Srovnání výkonu hry na jednotlivých telefonech . . . . . . . . . . .
46
C.1 Podporované soubory map . . . . . . . . . . . . . . . . . . . . . . .
82
17
Úvod V posledním desetiletí došlo k prudkému rozvoji výkonu a schopností mobilních telefonů. Konkrétně od telefonů bez možnosti spouštět aplikace třetích stran přes telefony s podporou platformy J2ME až po dnešní telefony s operačním systémem. Dnes se na mobilních telefonech běžně vyskytují předělávky počítačových her z osmdesátých a devadesátých let. Jednou ze stále velmi populárních her konce devadesátých let je počítačová hra Heroes of Might and Magic III. I když se v minulosti již několik lidí pokusilo přenést tuto hru na mobilní zařízení, zatím nikomu se nepovedlo vytvořit kompletní předělávku hry s uživatelským rozhraním přizpůsobeným malým úhlopříčkám displejů mobilních telefonů. Proto jsem se rozhodl prostudovat možnosti platforem J2ME a Android a vytvořit nejdříve J2ME předělávku hry, kterou následně přenesu na OS Android.
19
Kapitola
J2ME Při tvorbě této kapitoly bylo vycházeno z materiálů dostupných na internetových stránkách společnosti Oracle (17) a z článků Lucie Rút Bittnerové zveřejněných na serveru Interval.cz (5). Java 2 Micro Edition (dále jen J2ME) je jednou z edic jazyka Java. Zatímco J2SE je zaměřena na využití v oblasti osobních počítačů a J2EE je určena pro použití v podnikových aplikacích a informačních systémech, J2ME je navržena pro použití v zařízeních s omezenými prostředky. Konkrétně mobilních telefonech, PDA, set-top boxech, některých herních konzolích a elektronických hračkách. Největšího rozšíření J2ME dosáhla v oblasti mobilních telefonů, na které je tato práce primárně zaměřena.
1.1
Stručná historie platformy J2ME
V roce 1998 společnost Sun Microsystems zahájila vývoj platformy PersonalJava pro nově se rozvíjející trh mobilních zařízení. V roce 2000 byla PersonalJava nahrazena specifikací J2ME. Postupem času byly přidávány nové konfigurace a profily. Počátkem roku 2003 byla přidána konfigurace CLDC 1.1, která ruší mnohá omezení. Například umožňuje použití datových typů s plovoucí desetinnou čárkou, či slabých referencí. V roce 2003 byl uveden také profil MIDP 2.0, který nově umožňoval práci s multimédii a přidal možnost trvalého uložení uživatelských dat. Zatím poslední větší novinkou bylo uvedení profilu MIDP 3.0 v roce 2009, který umožňuje spuštění několika aplikací zároveň, či automatický start aplikace na pozadí. Do dnešních dnů však bylo vydáno pouze několik málo mobilních telefonů podporujících profil MIDP 3.0.
1.2
Vrstvy J2ME
Platforma J2ME se skládá ze tří vrstev: 21
1
1. J2ME
J2EE
J2SE
CDC CLDC
J2ME
Obrázek 1.1: Diagram průniku společných knihoven (Zdroj: (4))
1.2.1
Virtuální stroj
Java Virtual Machine zpracovává bytecode a zajišťuje, aby byl spustitelný na různých typech zařízení. Mobilní telefony využívají virtuální stroj CLDC-HI nebo Kilobite Virtual Machine (KVM).
1.2.2
Konfigurace
Konfigurace vymezuje základní funkcionalitu pro jednotlivé kategorie zařízení. J2ME obsahuje dvě kategorie zařízení: • Connected Device Configuration (CDC) obsahuje zařízení s větší pamětí a výpočetním výkonem. • Connected Limited Device Configuration (CLDC) obsahuje zařízení s omezenou pamětí a výpočetním výkonem. Do této konfigurace patří mobilní telefony, proto se tato práce dále zaměřuje pouze na tuto konfiguraci.
1.2.3
Profil
Profil rozšiřuje funkcionalitu jednotlivé konfigurace a specifikuje požadované funkcionality pro určitou skupinu zařízení. Každý profil poskytuje rozhraní (API), díky kterému je možné zajistit přenositelnost mezi všemi zařízeními v rámci daného profilu. Například pro aplikace v mobilních telefonech jsou využívány různé verze profilu Mobile Information Device Profile (MIDP). V textu se nadále budeme zabývat tzv. MIDlety - aplikacemi, které využívají pouze rozhraní CLDC a MIDP. Přehledně jsou vztahy mezi vrstvami znázorněny na obrázku 1.2. Nejnižší vrstvou je virtuální stroj, který zpracovává bytecode jazyka Java. Bytecode musí využívat pouze funkce z podporované konfigurace a profilu. Případně dle typu konkrétního zařízení smí využívat volitelné balíčky, které zajišťují rozšiřitelnost pro různé specifické funkce daného zařízení. 22
1.3. MIDP 2.0
Volitelné balíčky
Volitelné balíčky
Volitelné balíčky Osobní profil
J2EE
JVM
J2SE
JVM
Základní osobní profil
Volitelné balíčky
Základní profil
MIDP
CDC
CLDC
Java Card
JVM
KVM / CLDC-HI
Card VM
J2ME
Obrázek 1.2: Schéma vrstev platformy Java (Zdroj: (11))
1.3
MIDP 2.0
Mobile Information Device Profile 2.0 (MIDP 2.0) je dnes nejrozšířenějším profilem mezi mobilními telefony s podporou J2ME. Pro možnost implementace profilu MIDP 2.0 musí dané zařízení splnit požadavky uvedené v tabulce 1.1. MIDP 2.0 poskytuje následující knihovny: • javax.microedition.lcdui (Definuje uživatelské rozhraní.) • javax.microedition.midlet (Definuje třídy řídící životní cyklus aplikace.) • javax.microedition.rms (Definuje třídy pro perzistentní ukládání dat.) • javax.microedition.io (Definuje třídy a rozhraní pro síťové protokoly.) • javax.microedition.media (Definuje podporované mediální typy.) • javax.microedition.media.control (Poskytuje třídy umožňující ovládání přehrávání médií.)
23
1. J2ME Tabulka 1.1: Minimální požadavky MIDP 2.0 Rozlišení displeje Bitová hloubka displeje Vstup Perzistentní paměť Paměť pro RMS Halda Virtuálního stroje Připojení Zvuk
1.4
96x54 pixelů 1 hardwarová klávesnice nebo dotykový displej o 256 KB více,než vyžaduje použitá CLDC 8 KB perzistentní paměti 128 KB možnost obousměrné síťové komunikace schopnost přehrávat zvuky a média
MIDlet
MIDlet je J2ME aplikace, která využívá pouze rozhraní konfigurace CLDC, profilu MIDP a případně některých volitelných balíčků. MIDlet musí být zabalen v JAR archivu. JAR archiv využívá souborový formát ZIP, pouze mění příponu souboru z .zip na .jar. JAR archiv obsahuje následující soubory: • Jednu nebo více tříd dědících od třídy javax.microedition.MIDlet. • Případně další třídy potřebné pro funkčnost MIDletu, které nejsou definovány specifikací CLDC či MIDP. • Případně grafické a zvukové soubory využité v MIDletu. • Soubor Manifest.mf obsahující informace o MIDletu. Jeden JAR archiv může obsahovat i více MIDletů. V takovém případě MIDlety mezi sebou mohou sdílet jak třídy, tak data.
1.4.1
Soubor Manifest.mf
Soubor Manifest.mf je textový soubor uložený v JAR archivu. Na každém řádku souboru je vždy jméno atributu a za dvojitečkou hodnoty přislušející danému atributu. Soubor Manifest.mf obsahuje informaci o počtu MIDletů v JAR archivu. Pro každý MIDlet musí obsahovat následující atributy: • MIDlet-Name obsahuje jméno MIDletu. • MIDlet-Version obsahuje číselné označení verze konkrétního MIDletu. • MIDlet-Vendor obsahuje jméno autora aplikace. • MIDlet-n Kde n je pořadové číslo konkrétního MIDletu. Obsahuje název MIDletu viditelný v seznamu aplikací konkrétního zařízení, odkaz na ikonu a odkaz na hlavní třídu MIDletu, která musí dědit od třídy javax.microedition.MIDlet. 24
1.4. MIDlet • MicroEdition-Profile specifikuje minimální požadovanou verzi profilu. • MicroEdition-Configuration specifikuje minimální požadovanou verzi konfigurace. Dále soubor Manifest.mf může obsahovat nepovinné položky, jako například: informace o potřebných oprávněních.
1.4.2
Deskriptor aplikace
Deskriptor aplikace je textový soubor, který může být distribuován spolu s JAR archivem. Způsob formátování je shodný se souborem Manifest.mf. Pokud je deskriptor aplikace použit, musí splňovat následující kritéria: • Musí být pojmenován stejně jako JAR archiv, pouze přípona je .jad místo .jar. • Musí obsahovat stejné povinné položky jako soubor Manifest.mf. • Navíc musí obsahovat položku MIDlet-Jar-URL obsahující cestu k JAR archivu. • Navíc musí obsahovat položku MIDlet-Jar-Size obsahující přesnou velikost JAR archivu.
1.4.3
Vlastní atributy
Soubor Manifest.mf a deskriptor aplikace umožňují definici vlastních atributů. Vlastní atributy je možné pojmenovat názvem, který nezačíná řetězci „MIDlet-“ nebo „MicroEdition-“. K atributům je následně možné přistupovat pomocí metody getAppProperty(String key), kde atribut key obsahuje jméno požadovaného atributu.
1.4.4
Architektura uživatelského rozhraní
Architektura uživatelského rozhraní definovaného profilem MIDP je velmi odlišná od architektury uživatelského rozhraní použitého v edici J2SE. Knihovny AWT a Swing ,pocházející z edice J2SE, jsou pro využití v mobilních zařízeních nevhodné z následujících důvodů: • Mobilní zařízení mají mnohonásobně menší rozlišení displeje oproti stolním počítačům. • Mobilní zařízení většinou nepoužívají standardní QWERTY / QWERTZ klávesnici. Nejčastěji používají pouze číselnou klávesnici s různými funkčními tlačítky. 25
1. J2ME • Knihovny AWT a Swing jsou pro mobilní zařízení příliš paměťově a výpočetně náročné. Navíc obsahují mnoho funkcí, které jsou pro mobilní zařízení postradatelné. Proto MIDP definuje vlastní architekturu tříd uživatelského rozhraní, která je navržena s ohledem na možnosti mobilních zařízení. Profil MIDP poskytuje uživatelské rozhraní vyšší a nižší úrovně:
1.4.5
Uživatelské rozhraní vyšší úrovně
Uživatelské rozhraní vyšší úrovně vytváří abstraktní vrstvu, která poskytuje jednotlivé ovládací prvky uživatelského rozhraní a mechanismus zpracování událostí. Konkrétní způsob vykreslení prvků však závisí na implementaci použité v konkrétním zařízení. Uživatelské rozhraní vyšší úrovně je vhodné pro vývoj aplikací, které obsahují z větší části různá menu a formuláře. Pro vývoj her je toto rozhraní nevhodné kvůli různým omezením. Například nemožnosti vykreslit obrázek na konkrétní zadané souřadnice .
1.4.6
Uživatelské rozhraní nižší úrovně
Uživatelské rozhraní nižší úrovně poskytuje mnohem méně abstrakce než Uživatelské rozhraní vyšší úrovně. Je navrženo pro aplikace, které potřebují mít možnost vykreslovat obrázky a text na přesně zadané souřadnice. Zároveň umožňuje přímý přístup k číselným kódům stisknutých kláves a přesným souřadnicím kliknutí na dotykovou obrazovku. Díky těmto vlastnostem je toto rozhraní vhodné pro vývoj her. Rozhraní využívá abstraktní třídu Canvas, která dědí od třídy Displayable. Abstraktní třída Canvas obsahuje metodu paint(Graphics g).
1.4.7
Vykreslení objektu na display
Pokud chceme začít vykreslovat na display musíme vytvořit svou vlastní třídu, která dědí od abstraktní třídy Canvas. Námi vytvořená třída zdědí i metodu paint(Graphics g), kterou musí implementovat. Metodě paint(Graphics g) předáme jako parametr objekt třídy Graphics, který poskytuje metody pro vykreslení jednotlivých prvků (například obrázků či textu). Každý MIDlet obsahuje právě jednu třídu Display, která reprezentuje samotné zobrazovací zařízení telefonu. Pro nastavení aktuálně zobrazované třídy poskytuje třída Display metodu setCurrent(Displayable nextDisplayable), která přijímá jako parametr potomka třídy Displayable. Protože třída Canvas dědí od Displayable, je i naše třída potomkem třídy Displayable. Tudíž můžeme námi vytvořenou třídu předat parametrem metodě setCurrent(Displayable nextDisplayable), čímž ji nastavíme jako aktuálně zobrazovanou třídu. 26
1.4. MIDlet
1.4.8
Balíček pro tvorbu her
MIDP 2.0 specifikuje balíček javax.microedition.lcdui.game, který rozšiřuje funkcionalitu uživatelského rozhraní nižší úrovně. Přidává třídy zaměřené přímo na vývoj her. Konkrétně poskytuje funkce pro otáčení a překlápění obrázků či funkce pro zpracování kolizí jednotlivých objektů na herní obrazovce.
1.4.9
Instalace MIDletu
Způsobů instalace MIDletu na konkrétní mobilní zařízení je většinou více. Pro splnění specifikace MIDP 2.0 je však nutné poskytnou minimálně takzvaný Over the Air způsob instalace. Tento způsob instalace vyžaduje možnost připojení ke vzdálenému serveru pomocí integrovaného prohlížeče, který podporuje alespoň protokol HTTP 1.1. Z tohoto serveru musí být integrovaný prohlížeč schopen uložit a nainstalovat zvolený MIDlet. Výrobci mobilních zařízení často umožňují další způsoby instalace MIDletu (například pomocí USB kabelu ze stolního počítače).
1.4.10
Odstranění a přepsání MIDletu
Pokud chceme MIDlet ze zařízení odstranit, zařízení musí odstranit jak JAR archiv obsahující daný MIDlet, tak uživatelská data uložená v RecordStore. Pokud ovšem MIDlet v zařízení nahrazujeme jeho novější verzí, zařízení je povinno zachovat uživatelská data uložená v RecordStore.
27
Kapitola
Android Při tvorbě této kapitoly bylo vycházeno z materiálů dostupných ve vývojářské sekci serveru android.com (3) a z článku zveřejněného na serveru Android– App–Market.com (1). Android je operační systém (dále OS) pro mobilní zařízení založený jádře operačního systému Linux verze 2.6. Android je navržen pro použití v mobilních telefonech, tabletech, navigacích a dalších mobilních zařízeních. Dnes je Android nejrozšířenějším operačním systémem pro mobilní telefony. Konkrétně podle analytické společnosti IDC(10) 75% telefonů s operačním systémem prodaných ve třetím čtvrtletí roku 2012 používalo operační systém Android.
2.1
Stručná historie operačního systému Android
Ačkoliv počátky platformy Android sahají do roku 2003, v širší povědomí se jméno společnosti Android, Inc. dostalo až v roce 2005, kdy byla koupena společností Google, Inc. V listopadu 2007 společnost Google Inc. iniciovala založení konsorcia Open Handset Alliance, jehož hlavním cílem je vývoj operačního systému Android. Mezi členy konsorcia patří například společnosti Google, Inc., Intel Corporation, Samsung Electronics, nVidia Corporation a mnohé další. Na podzim roku 2008 byl uveden HTC Dream – první mobilní telefon používající operační systém Android. V roce 2010 se Android stal nejrozšířenějším mobilním operačním systémem a do dnešních dnů jeho podíl na trhu stále roste.
2.2
Architektura operačního systému Android
Architektura OS Android je graficky znázorněna na obrázku 2.1. Konkrétně Architektura OS Android využívá těchto vrstev: 29
2
2. Android
Android Aplikace Aplikační Framework - Resource Manager - Activity Manager - View System - Window Manager - Package Manager - Notification Manager - Content Providers - Telephony Manager - Location Manager
Knihovny Android RT Knihovny
Android RT Dalvik VM
- Media - Surface Manager - Freetype - Open GL - SSL - SQL Lite - SGL - Webkit - libc
Linuxové jádro
Obrázek 2.1: Schéma vrstev OS Android (Zdroj: (2))
2.2.1
Jádro
Android využívá jádro operačního systému Linux ve verzi 2.6. Jádro obsahuje ovladače, které zajišťují komunikaci s hardwarem konkrétního zařízení. Jádro obstarává správu procesů a paměti síťového spojení či napájení.
2.2.2
Knihovny
Knihovny poskytující základní funkcionalitu operačního systému jsou napsány v jazyce C nebo C++. Konkrétně se jedná o knihovny pro zobrazování aplikací a jejich vrstvení (Surface Manager), práci s grafikou (Open GL, SGL), práci s daty (SQLite) či multimédii.
2.2.3
Android Runtime, Dalvik Virtual Machine
Tato vrstva slouží pro spouštění aplikací. Aplikace jsou psány v Javě a následně převedeny na bytecode pro virtuální stroj Dalvik Virtual Machine. Při spuštění má každá aplikace svůj proces a svůj virtuální stroj.
2.2.4
Application Framework
Vrstva tvořící systémové rozhraní obsahující knihovny napsané v Javě. Konkrétně se jedná například správu životního cyklu aplikací, 30
Kapitola
Analýza a návrh 3.1
Současný stav řešení problematiky
Pro platformu J2ME existují dva tituly inspirované počítačovou hrou Heroes of Might and Magic III: Prvním titulem je hra pojmenovaná Heroes 3 Uriel mod(8). Tento projekt však obsahuje pouhý zlomek funkcionality původní hry. Navíc není dostupný editor map, tudíž je možné hrát pouze jednu zabudovanou mapu. Tento projekt byl vyvíjen pod záštitou dnes již neexistujícího serveru sithlab.ru. Druhým titulem je komerční série her Age of Heroes(18), která má velmi podobné herní mechanismy, avšak s původní hrou nemá jinak nic společného. Pro platformu Android existuje volně dostupný engine VCMI(20), který je schopen načítat soubory map vytvořené map editorem z původní hry. Jedná se pouze o engine bez umělé inteligence, tudíž je možná pouze hra několika lidských hráčů proti sobě. Navíc má tento engine relativně vysoké hardwarové nároky: • rozlišení displeje: 800x480 obrazových bodů. • velikost operační paměti: 256MB.
3.2
Heroes of Might and Magic III
Heroes of Might and Magic III je tahová strategie vyvinutá v roce 1999 společností New World Computing a vydaná společností 3DO. Ke hře byly později vydány dva datadisky. V roce 2000 byla vydána edice Heroes of Might and Magic III Complete, která obsahuje veškerý obsah původní hry a obou datadisků. Jedná se o poslední oficiálně vydanou verzi této hry. Z této verze jsem vycházel při tvorbě své předělávky. Na počátku hry si hráč zvolí, kterou mapu bude hrát – v původní hře je k dispozici více jak 150 herních map a editor map pro tvorbu dalších. Dále si hráč zvolí národ, za který bude hrát – výběr je možný z devíti národů. 31
3
3. Analýza a návrh Ve hře hráč ovládá jednoho či více hrdinů, kteří cestují po herní mapě, ve městech najímají jednotky do své armády, obsazují různé herní lokace, sbírají předměty a bojují s nepřáteli.
3.3
Posun herní mapy
Nejdůležitějším úkolem analýzy bylo řešení problému posunu herní mapy, kde se nabízelo několik možností řešení: První možností bylo umožnit použití souborů map vytvořených map editorem z původní hry, které byly navrženy pro plynulý posun. A umožnit plynulý posun po mapě v plném rozsahu. Bylo by ovšem nutné mít v operační paměti uloženou grafickou podobu veškerých objektů na mapě nebo tuto grafickou podobu dynamicky načítat při posunu. Takováto implementace by byla ovšem velmi hardwarově náročná a na pomalejších telefonech by byla hra nehratelná. Tento přístup zvolil tvůrce enginu VCMI(20). Druhou možností bylo Umožnit použití souborů map vytvořených map editorem z původní hry. Místo plynulého posunu však použít skokový posun mezi obrazovkami. Využitím tohoto řešení by došlo k radikálnímu snížení nároků na výkon. Vykreslení neanimované části dané obrazovky by se pokaždé provedlo pouze jednou a to při vstupu na danou obrazovku. Dále by byly překreslovány pouze animované části obrazovky. Zásadní nevýhodou tohoto řešení je ovšem skutečnost, že mapy z původní hry nejsou na tento způsob posunu mezi obrazovkami navrženy a docházelo by k situacím, kdy by jednotlivé objekty na mapě přesahovaly z jedné obrazovky do druhé. Toto by bylo pro hráče velmi matoucí, neboť by musel velmi často přecházet mezi jednotlivými obrazovkami. Poslední zvažovanou možností bylo navrhnout vlastní formát souborů map, který zohledňuje skokový posun mezi obrazovkami. Tento způsob řešení si zachovává veškeré výhody uvedené v předchozím odstavci a odstraňuje nevýhodu spojenou s přesahujícími objekty mezi obrazovkami, neboť map editor je navržen tak, aby mapa již od počátku byla vytvářena po jednotlivých obrazovkách. Pro tuto předělávku byl zvolen poslední jmenovaný způsob. Za cenu ztráty kompatibility se soubory map z původní hry byly mnohonásobně sníženy nároky na výkon a zároveň získán formát map navržený přímo pro použití na telefonech s menším rozlišením a úhlopříčkou displeje.
3.4
Herní mapa
Původní hra využívá herní mapu skládající se z jednotlivých čtvercových políček. Každé políčko má rozměr 32x32 obrazových bodů. Existují čtyři různé typy herní mapy – konkrétně typy S, M, L a XL. Rozměry jednotlivých typů map jsou uvedeny v tabulce 3.1. Navíc každá mapa může obsahovat buď jednu úroveň (obsahuje pouze povrch) nebo dvě úrovně (obsahuje povrch a podzemí). 32
3.5. Přizpůsobení rozlišení displeje Tabulka 3.1: Srovnání typů herní mapy Typ mapy S M L XL
Původní hra 36x36 políček 72x72 políček 108x108 políček 144x144 políček
Předělávka 33x39 políček (3x3 obrazovky) 77x65 políček (7x5 obrazovek) 110x104 políček (10x8 obrazovek) 143x143 políček (13x11 obrazovek)
Povrch a podzemí mají vždy stejné rozměry. Propojení mezi povrchem a podzemím zajišťuje tvůrce konkrétní mapy pomocí některých budov a portálů umístěných na mapě, které umožňují vstup do podzemí. Pro tuto předělávku bylo použito rozložení, kde se každá obrazovka skládá z jednotlivých čtvercových políček. Každé políčko má rozměr 16x16 obrazových bodů. Každá obrazovka obsahuje 11x13 políček. Díky tomuto rozložení má každá herní obrazovka rozlišení 176x208 obrazových bodů, což je vhodné pro telefony s rozlišením displeje 176x220 obrazových bodů. Podpora map s jednou i dvěma úrovněmi zůstala zachována.
3.5
Přizpůsobení rozlišení displeje
Zvolený způsob, kdy každá herní obrazovka má přesně dané rozlišení, komplikuje možnosti přizpůsobení hry telefonům s větším rozlišením displeje, než je již zmiňovaných 176x220 obrazových bodů. Jediným vhodným způsobem přizpůsobení hry telefonům s větším rozlišením displeje je škálování. API profilu MIDP 2.0 však neobsahuje metodu pro škálování obrazu. Je tudíž nutné využít algoritmy třetích stran. Konkrétně byl použit algoritmus uvedený na serveru Code Ranch1 . S použitím škálování na platformě J2ME dosahovala snímková frekvence hodnot 3 FPS na telefonu Sony Ericsson K750i a 7 FPS na telefonu Sony Ericsson W705i. Při takto nízkém počtu snímků za vteřinu hra téměř není hratelná. Z tohoto důvodu není škálování v konečné J2ME verzi hry použito.2 Škálování je tedy možné pouze ve verzi pro OS Android (viz 5.3). Z důvodu absence škálování podporuje J2ME verze hry pouze rozlišení 176x220 a 240x320 obrazových bodů. Tato dvě rozlišení však pokrývají značnou část používaných telefonů s podporou platformy J2ME. Neboť, jak uvádí Morten Hjerde (9), v roce 2008 se jednalo o dvě nejrozšířenější rozlišení displeje mobilních telefonů podporujících platformu J2ME. Novější údaje pouze pro platformu J2ME bohužel nejsou k dispozici. 1
Algoritmus je dostupný z: http://www.coderanch.com/t/228899/JME/Mobile/resize-image 2 Snímková frekvence J2ME verze hry bez použití škálování je uvedena v tabulce 6.1.
33
3. Analýza a návrh
Obrázek 3.1: Uživatelské rozhraní původní hry se znázorněním jednotlivých políček. Vpravo nahoře se nachází schématická mapka. Vpravo uprostřed je umístěno herní menu obsahující tlačítka pro ovládání hry. Vpravo dole leží okénko s podrobnostmi o aktuálně zvoleném hrdinovi.
3.6
Uživatelské rozhraní hry
Uživatelské rozhraní původní hry je navrženo téměř výhradně pro ovládání pomocí kurzoru myši. Bylo tedy nutné uzpůsobit uživatelské rozhraní hry tak, aby jej bylo možné ovládat jak pomocí klávesnice, tak pomocí dotykové obrazovky. Uživatelské rozhraní také muselo být přizpůsobeno rozlišení a velikosti displeje. Původní hra používala výhradně rozlišení 800x600 obrazových bodů. Většina ovládacích prvků byla v původní hře soustředěna do sloupce v pravé části obrazovky. Tento sloupec obsahoval tři části: schématickou mapku, herní menu s tlačítky pro ovládání hry a okénko s podrobnostmi o aktuálně zvoleném hrdinovi. V předělávce je schématická mapka umístěna na samostatné obrazovce přístupné pomocí tlačítka v dolní části obrazovky. Po poklepání na konkrétního hrdinu je dostupné okénko s podrobnostmi o zvoleném hrdinovi. Herní menu je při použití rozlišení 240x320 obrazových bodů dostupné v pravé části obrazovky nebo případně na samostatné obrazovce. Při použití rozlišení 176x220 obrazových bodů je herní menu dostupné pouze na samostatné obrazovce. 34
3.6. Uživatelské rozhraní hry
Obrázek 3.2: Uživatelské rozhraní pro rozlišení 176x220 obrazových bodů je rozděleno na dvě obrazovky. Levá obrazovka obsahuje pouze herní obrazovku s políčky a několik tlačítek v dolní části. Pravá obrazovka obsahuje herní menu s tlačítky pro ovládání hry. Přechod mezi obrazovkami je možný pomocí tlačítek ve spodní části obrazovek.
Obrázek 3.3: Uživatelské rozhraní pro rozlišení 240x320 obrazových bodů obsahuje v pravé části tlačítka herního menu. Případně je možné přejít na samostatnou obrazovku obsahující pouze herní menu stejné jako v uživatelském rozhraní pro rozlišení 176x220 obrazových bodů.
35
3. Analýza a návrh
3.7
Vykreslení textu
Jednotlivé styly písma v J2ME poskytuje třída Font. Pomocí této třídy je možné získat písmo na základě zadaných parametrů. Je možné zvolit ze tří velikostí písma (malé, střední a velké) a několika rodin písma (tučné, kurzíva, podtržené, atd.). Každý výrobce zařízení má možnost vykreslit výsledný styl a velikost písma takovým způsobem, jaký považuje za nejvhodnější pro rozlišení a úhlopříčku displeje konkrétního zařízení. V důsledku jsou velikosti a styly písma na různých zařízeních diametrálně odlišné. Pokud je třeba vykreslit písmo s absolutní velikostí a pevně daným stylem ukazuje se třída Font jako nevhodná, neboť toto není schopna zaručit. Proto předělávka využívá vlastní třídu pro vykreslování textu s absolutní velikostí a předem daným stylem.
36
Kapitola
Realizace 4.1
Vývojové prostředí
K vývoji pro platformu J2ME bylo použito vývojové prostředí JCreator(23) a nástroj Sun Java(TM) Wireless Toolkit 2.5.1 for CLDC, EA (21), který umožňuje spouštět J2ME aplikace ve vestavěném emulátoru. Verze hry pro platformu J2ME byla také průběžně testována na telefonu Sony Ericsson K750i s použitím sady nástrojů Sony Ericsson SDK(19), která mimo jiné umožňuje průběžné monitorování využití haldy virtuálního stroje a zobrazení konzole. K vývoji pro OS Android bylo použito vývojové prostředí Eclipse SDK verze 4.2.1 spolu s nainstalovaným zásuvným modulem ADT Plugin (7), který umožňuje spouštět Android aplikace ve virtuálním zařízemí AVD přímo na PC, kde je aplikace vyvíjena. Verze hry pro OS Android byla průběžně testována na telefonu Sony Xperia Ray.
4.2
Architektura
Hlavní třídou je třída MainCl, která dědí od třídy javax.microedition.MIDlet. Tato třída obsahuje statické proměnné, které slouží pro uchování veškerých důležitých herních dat, která mají být zachována po celou dobu běhu aplikace. Zároveň tato třída obsahuje metodu setCurrent(byte classNumber), která zajišťuje přepínání mezi zobrazením jednotlivých tříd dědících od třídy javax.microedition.lcdui.Canvas. Ostatní využívané třídy lze rozdělit do čtyř hlavních kategorií.
4.2.1
Třídy vykreslující aktuální obrazovku
Třídy dědící od třídy javax.microedition.lcdui.Canvas a implementující rozhraní java.lang.Runnable náleží do první kategorie. V daném okamžiku je 37
4
4. Realizace spuštěna vždy maximálně jedna třída tohoto typu, která zajišťuje vykreslení aktuální obrazovky na displej telefonu. Jména všech těchto tříd končí slovem Screen. Do této kategorie patří například třídy MainMenuScreen, MapScreen nebo MarketplaceScreen.
4.2.2
Třídy zajišťující dotykové uživatelské rozhraní
Druhá kategorie obsahuje třídy, které obstarávají dotykové uživatelské rozhraní. Typicky patří jedna třída z této kategorie k jedné třídě z první kategorie a zajišťuje pro ni dotykové uživatelské rozhraní. Jména všech těchto tříd začínají slovy PointerHandlerFor, za kterými následuje jméno nebo část jména třídy, ke které patří. Do této kategorie patří například třídy PointerHandlerForMainMenu, PointerHandlerForMapScreen nebo PointerHandlerForSaveScreen.
4.2.3
Knihovní třídy
Třetí kategorie obsahuje knihovní třídy. Jedná se o třídy obsahující pouze statické metody. Knihovní třída vždy obsahuje skupinu metod s podobným zaměřením. Do této kategorie patří například třídy Artifact, Terrain nebo Colision. Mezi knihovní třídy lze zařadit i třídu MyFont, která umožňuje vykreslení textu popsané v sekci 3.7.
4.2.4
Třídy vykreslující vyčleněné části hry
Čtvrtá kategorie obsahuje třídy zajišťující zobrazení určité vyčleněné části hry, která je zobrazována z více tříd první kategorie. Tyto třídy dědí od java.lang.Object a neimplementují rozhraní java.lang.Runnable. Typicky poskytují metody pro vykreslení vyčleněné části hry, které jsou volány z metody paint(Graphics g) některé třídy náležející do první kategorie.
4.3
Javadoc dokumentace
Jednotlivé třídy jsou podrobně zdokumentovány v přiložené Javadoc dokumentaci.
4.4
Umělá inteligence
K určení vzdálenosti mezi hrdinou a lokací na mapě používá umělá inteligence protihráčů prohledávání do šířky (algoritmus vlny). Výsledná matice obsahující vzdálenosti jednotlivých políček od hrdiny je také využita při hledání optimálních cest hráčem ovládaných hrdinů při použití ovládání pomocí kurzoru. 38
4.5. Minimalizace velikosti výsledného bytecode Umělá inteligence se chová následujícím způsobem. Pokud se v blízkosti vyskytne slabší nepřátelský hrdina, zaútočí na něj. Pokud se v blízkosti vyskytne silnější nepřátelský hrdina, snaží se uniknout do nejbližšího hradu. Pokud je ohrožen hrad, snaží se stáhnout z okolí co nejvíce jednotek k ubránění hradu. V ostatních situacích hrdinové prozkoumávají mapu a obsazují doly.
4.5
Minimalizace velikosti výsledného bytecode
Zařízení s podporou platformy J2ME disponují relativně malým množstvím paměti. Proto je vhodné využít všech dostupných prostředků k minimalizaci paměťových nároků aplikace. Paměťové nároky aplikace je možné snížit pomocí nástroje, který minimalizuje délku názvů proměnných v bytecode a optimalizuje velikost některých části bytecode. K tomuto účelu byl použit nástroj Proguard(13).
39
4. Realizace
Obrázek 4.1: Jednotlivé třídy
40
Kapitola
Přenesení na OS Android Tato kapitola uvádí možnosti přenesení J2ME aplikace na OS Android a srovnává výhody a nevýhody jednotlivých možností. Dále přibližuje zvolený způsob přenesení J2ME verze hry na OS Android.
5.1
Možnosti přenesení
Způsoby přenesení J2ME aplikace na OS Android je možné rozdělit do dvou hlavních kategorií.
5.1.1
Emulace
První kategorií je využití emulátoru, který vytváří prostředí pro spuštění původní J2ME aplikace v nezměněné podobě. Do této kategorie můžeme zařadit například emulátory App Runner (16) nebo Jbed (15). Výhodou emulace je skutečnost, že ke spuštění J2ME aplikace na OS Android stačí umístit JAR archiv do emulátoru a je možné aplikaci spustit. V neprospěch emulace hovoří vyšší hardwarové nároky, problémy se škálováním obrazu a ne vždy naprostá kompatibilita se všemi J2ME aplikacemi a verzemi OS Android.
5.1.2
Využití adaptéru
Do druhé kategorie lze zařadit knihovny obsahující sadu tříd, které jsou navrženy jako návrhový vzor adaptér a implementují J2ME rozhraní (API) pomocí tříd dostupných v rozhraní (API) OS Android. Do této kategorie lze zařadit projekt J2ME Android Bridge (12), který bohužel není dokončen. Projekt neobsahuje možnost práce s objekty typu Sprite, které jsou v předělávce hojně využity. Navíc mnoho metod se nechová naprosto shodně jako původní metody v J2ME rozhraní (API). 41
5
5. Přenesení na OS Android Pro využití tohoto řešení je nutné mít přístup ke zdrojovým kódům aplikace. Výhodou při správné implementaci jsou nižší hardwarové nároky a kompatibilita s naprostou většinou verzí OS Android.
5.2
Zvolený způsob přenesení
Pro přenesení J2ME verze hry na OS Android je využita sada tříd, které jsou navrženy jako návrhový vzor adaptér. Mezi knihovnami třetích stran se nepodařilo nalézt dostatečně spolehlivou sadu knihoven, která by nevyžadovala rozsáhlé testování a opravu nepřesností v implementaci. Pro přenesení hry na OS Android byla proto využita vlastní sada tříd implementujících část J2ME rozhraní (API) pomocí tříd dostupných v rozhraní (API) OS Android. Navíc pro účely přenesení J2ME verze hry na OS Android postačilo implementovat pouze ty třídy a metody J2ME rozhraní, které hra využívá.
5.3
Přizpůsobení rozlišení displeje
J2ME verze hry podporuje pouze rozlišení 176x220 a 240x320 obrazových bodů (viz 3.5). Aby byla verze pro OS Android schopna se automaticky přizpůsobit rozlišení displeje konkrétního zařízení, je ve hře implementováno automatické škálování obrazu do metody repaint() třídy Canvas. Toto implementované škálování se snaží přizpůsobit obraz vykreslovaný pomocí metody repaint() na maximální možnou velikost tak, aby zůstal zachován poměr velikosti stran vykreslovaného obrazu.
5.4
Emulace RMS
Uživatelské nastavení hry a uložené herní pozice jsou v J2ME verzi hry ukládány do do tzv. RMS (Record Management System). RMS je velmi zjednodušenou formou databáze. Emulace RMS ve verzi pro OS Android data ukládá do souborů. Jednotlivé soubory se nacházejí ve složce rms v adresáři pro umístění dat aplikace. Jednotlivé záznamy ve složce jsou číslovány dle následujícího klíče: název_id. Kde název je názvem daného Record Store a id je pořadové číslo záznamu v Record Store. Název Record Store nesmí obsahovat znak podtržení. Hlavním důvodem pro uložení dat do souborů místo do databáze byla snadná přenositelnost uložených herních pozic. Export dat z databáze a následný jejich import by byl podstatně komplikovanější, než pouhé přenesení souborů. 42
5.5. Specifické nastavení pro danou platformu
5.5
Specifické nastavení pro danou platformu
I když se návrhový vzor adaptér snaží odstínit J2ME kód aplikace od rozhraní OS Android, v některých situacích by naprosté odstínění bylo příliš implementačně náročné. Proto aplikace obsahuje třídu org.beckamichal.emulate.Emulate. Jedná se o jedinou třídu, která se vyskytuje jak v J2ME verzi, tak ve verzi pro OS Android a zároveň je na obou platformách implementována odlišně. Tato třída poskytuje například cestu k uložené herní grafice a hudbě. V J2ME verzi hry jsou uloženy v kořenovém adresáři JAR archivu. Ve verzi pro OS Android jsou uloženy buď ve složce assets v apk archivu nebo v adresáři pro umístění dat aplikace. Zároveň zajišťuje některé funkce spojené s přepínáním mezi jednotlivými obrazovkami. V J2ME verzi hry je možné provést přepnutí mezi obrazovkami z jakéhokoliv vlákna. Ve verzi pro OS Android je to možné pouze z hlavního vlákna.
43
5. Přenesení na OS Android
Obrázek 5.1: Třídy návrhového vzoru adaptér
44
Kapitola
Měření Tato kapitola se zabývá srovnáním výkonu obou vytvořených verzí hry na různých zařízeních na základě naměřených údajů. Měření bylo prováděno se snahou se co nejvíce přiblížit reálné situaci během hraní hry, proto byla aplikaci testována vždy v nejvyšším rozlišení, které bylo pro dané zařízení dostupné. Zároveň ve verzi pro OS Android bylo vždy použito automatické škálování, pokud bylo nutné přizpůsobit vykreslovaný obraz rozlišení displeje. Cílem tohoto měření tedy nebylo pouhé porovnání výpočetního a grafického výkonu jednotlivých zařízení. Pokud by byla na všech telefonech testována pouze verzi hry s rozlišením 176x220 obrazových bodů bez použití škálování, tak by rozdíly mezi jednotlivými telefony byly jistě mnohem markantnější.
6.1
Metodika měření
Srovnání výkonu jednotlivých verzí bylo provedeno na základě naměřené snímkové frekvence na konkrétních telefonech. Snímková frekvence byla vždy měřena na herní obrazovce s vypnutými animacemi a vypnutým omezovačem snímkové frekvence. Hodnota snímkové frekvence byla odečítána vždy alespoň 10 sekund po načtení herní obrazovky. Konkrétní zvolená mapa nemá na měření vliv, protože její obsah je vykreslen pouze jednou do pomocného obrázku s rozlišením 176x220 obrazových bodů. Následně je tento pomocný obrázek vykreslován na pozadí. Díky vypnutým animacím probíhá další překreslování herní obrazovky již nezávisle na zvolené mapě.
6.2
Naměřené hodnoty
Naměřené hodnoty snímkové frekvence jsou uvedeny v tabulce 6.1. 45
6
6. Měření Tabulka 6.1: Srovnání výkonu hry na jednotlivých telefonech Model telefonu Nokia N72 Sony Ericsson K750i Sony Ericsson W705i Aligator D900 Sony Xperia Ray Sony Xperia S LT26i
verze OS / firmware Symbian v8.1a R1CA021 R1EA033 a
Android 2.3.4 Android 2.3.7
Použité rozlišení hry 176x220 176x220 240x320 240x320 škálování škálování
Snímková frekvence [FPS] 12 41 45 23 24 46
a
Verzi firmware telefonu Aligator D900 se nepodařilo zjistit ani po kontaktování společnosti ADART COMPUTERS s.r.o., která zajišťuje distribuci telefonů značky Aligator v České republice.
Na většině testovaných telefonů byla snímková frekvence dostačující a hra tudíž dostatečně plynulá. Pouze na telefonu Nokia N72 se snímková frekvence ustálila na hodnotě 12 FPS, což je pro plynulé hraní nedostačující.
6.3
Vyhodnocení výsledků měření
Z naměřených hodnot je patrné, že hraní hry je plynulé jak na telefonu Sony Ericsson K750i z roku 2005, tak na nejnovějších telefonech s OS Android. Zároveň je z naměřených hodnot patrný propad výkonu u telefonu Sony Xperia Ray oproti některým starším telefonům bez OS Android (například Sony Ericsson W705i). Tento propad je způsoben použitím škálování ve verzi hry pro OS Android u telefonů s vyšším rozlišením displeje, než 240x320 obrazových bodů. Podobně vysoké snímkové frekvence, jako telefon Sony Ericsson W705i, dosahuje s použitím škálování až Sony Xperia S LT26i, který však disponuje dvoujádrovým procesorem o frekvenci 1500MHz3 .
3
46
Informace převzata z katalogu telefonů na serveru Mobilmania.cz(14)
Závěr Cílem práce bylo prostudovat možnosti tvorby rozsáhlých grafických aplikací na platformě J2ME a zároveň pro tuto platformu navrhnout a implementovat předělávku hry Heroes of Might and Magic III. A následně přenést hotovou hru na OS Android. Možnosti platformy J2ME pro tvorbu rozsáhlých grafických aplikací jsou popsány v kapitole 1.
Zhodnocení práce Implementace hry, s ohledem na možnosti platformy, byla splněna. Byly sice nutné některé změny oproti původní verzi hry (viz příloha D), avšak herní koncepce zůstala zachována. K vývoji pro platformu J2ME bylo použito vývojové prostředí JCreator(23) a nástroj Sun Java(TM) Wireless Toolkit 2.5.1 for CLDC, EA (21). Další částí práce bylo přenesení hotové J2ME verze hry na OS Android. K tomuto účelu byla vytvořena sada tříd, které jsou navrženy jako návrhový vzor adaptér. Implementace samotné sady tříd nebyla nijak zvlášť časově náročná. Ovšem o to náročnější byla tvorba tříd pro dotykové uživatelské rozhraní, kde bylo nutno přizpůsobit uživatelské rozhraní původně navržené pro ovládání pomocí klávesnice. Ve výsledku je hru možno ovládat dvěma naprosto odlišnými způsoby. Hlavním úskalím přenášení aplikací mezi platformou J2ME a OS Android je naprosto odlišný způsob ovládání a tudíž i rozdílné požadavky na uspořádání herních prvků na obrazovce. K vývoji pro OS Android bylo použito vývojové prostředí Eclipse SDK verze 4.2.1 spolu s nainstalovaným zásuvným modulem ADT Plugin (7). 47
Závěr
Srovnání výkonnostních parametrů obou aplikací Hru je možné plynule hrát na velké části dnes používaných telefonů, což lze považovat za hlavní úspěch této práce. Verzi hry pro platformu J2ME je možné plynule hrát na telefonu Sony Ericsson K750i z roku 2005. Zároveň je možné hrát verzi hry pro OS Android na nejnovějších telefonech s tímto operačním systémem. K určitému propadu snímkové frekvence hry došlo pouze u telefonu Sony Xperia Ray, který lze zařadit do kategorie výkonově slabších telefonů s OS Android. Tento propad byl způsoben použitím škálování ve verzi hry pro OS Android u telefonů s vyšším rozlišením displeje než 240x320 obrazových bodů. U výkonnějších telefonů s OS Android tento propad není již tolik patrný. Srovnání výkonnostních parametrů obou verzí hry je obsaženo v kapitole 6.
Srovnání platforem I přes dnešní rozmach telefonů s OS, má platforma J2ME stále co nabídnout. Její hlavní výhodou je jednoduchost, díky které je dostupná i mezi nejlevnějšími telefony. Zároveň je pozůstatkem snahy umožnit uživatelům spustit jednu aplikaci na telefonu téměř jakéhokoliv výrobce, což je ušlechtilá myšlenka. Na druhou stranu během vývoje hry bylo několikrát dosaženo hranic možností platformy, které jsou stanoveny profilem MIDP 2.0 a konfigurací CLDC 1.1. OS Android je dnes již vyspělým operačním systémem, který nabízí vývojářům širokou paletu možností. Z pohledu této práce je jeho hlavní výhodou relativně nízké množství omezení pro vývojáře oproti platformě J2ME.
Možnosti dalšího vývoje hry Vzhledem k tomu, že cílem bylo implementovat předělávku existující hry, jsou možnosti dalšího rozvoje relativně omezeny na případnou úpravu změn, které byly provedeny oproti původní verzi hry. Mezi možnosti dalšího vývoje hry lze také zařadit případné vylepšení umělé inteligence protihráčů.
48
Literatura (1) Android Architecture – The Key Concepts of Android OS [online] [cit. 2012-11-17]. Dostupné z: http://www.android-app-market.com/ android-architecture.html (2) Android Architecture [online], poslední revize 10.2.2012 [cit. 201211-17]. Dostupné z: http://java4freshers.blogspot.cz/2012/02/ android-architecture.html (3) Android Developers [online] [cit. 2012-11-17]. Dostupné z: http:// developer.android.com/ (4) BAAR GROUP. KVM: A Small Java Virtual Machine for J2ME[online] [cit. 2012-11-9]. Dostupné z: http://www.barrgroup. com/Embedded-Systems/How-To/KVM-J2ME-Java-Virtual-Machine (5) BITTNEROVÁ, Lucie Rút. J2ME v kostce [online] [cit. 2013-4-20]. Dostupné z: http://http://interval.cz/programovani/j2me/ (6) ECLIPSE FOUNDATION. Eclipse 4.2.1 [online] [cit. 2013-3-30]. Dostupné z: http://download.eclipse.org/eclipse/downloads/drops4/ R-4.2.1-201209141800/ (7) GOOGLE INC. ADT Plugin [online] [cit. 2013-3-30]. Dostupné z: http: //developer.android.com/tools/sdk/eclipse-adt.html (8) Heroes of Might and Magic III Uriel MOD [online] [cit. 2012-11-29]. Dostupné z: http://java.mob.org/game/heroes_of_might_and_magis_3_ uriel_mod.html (9) HJERDE, Morten. Mobile screen size trends[online], poslední revize 15.4.2008 [cit. 2013-2-7]. Dostupné z: http://sender11.typepad.com/ sender11/2008/04/mobile-screen-s.html 49
Literatura (10) IDC CORPORATE USA. Android Marks Fourth Anniversary Since Launch with 75.0% Market Share in Third Quarter [online] [cit. 201211-11]. Dostupné z: https://www.idc.com/getdoc.jsp?containerId= prUS23771812 (11) IST MUSIC. Documentation about J2ME[online] [cit. 2012-11-9]. Dostupné z: http://ist-music.berlios.de/site/middleware-phoneme. html (12) J2ME Android Bridge [online] [cit. 2013-3-2]. Dostupné z: https://www. assembla.com/spaces/j2ab/documents (13) LAFORTUNE, Eric. Proguard 4.8 [online] [cit. 2013-3-30]. Dostupné z: http://proguard.sourceforge.net/#downloads.html (14) MOBILMANIA.CZ. Katalog telefonů: Sony Xperia S [online] [cit. 2013-4-20]. Dostupné z: http://www.mobilmania.cz/katalog-mobilu/ sony-xperia-s/sc-63-c-1-ci-36949/default.aspx (15) MYRIAD GROUP. Jbed – Java Emulator for Android [online] [cit. 2013-3-2]. Dostupné z: http://free-mobile-messenger.com/2011/02/ 24/jbed-java-emulator-for-android-1-5-2-2/ (16) NETMITE CORPORATION. App Runner [online] [cit. 2013-3-2]. Dostupné z: http://www.netmite.com/android/ (17) ORACLE CORPORATION. Developer section for J2ME [online] [cit. 2012-11-17]. Dostupné z: http://www.oracle.com/technetwork/java/ javame/index.html (18) QPLAZE. Age of Heroes [online] [cit. 2012-11-29]. Dostupné z: http: //play.qplaze.com/en/games/game-1191/index.html (19) SONY ERICSSON. Sony Ericsson SDK for the Java ME platform 2.5.0.3 [online], poslední revize 23.10.2008 [cit. 2013-3-30]. Dostupné z: http://developer.sonymobile.com/downloads/tool/ sony-ericsson-sdk-for-the-java-me-platform-2-5-0-3/ (20) STEIN, Gerhard. VCMI [online] [cit. 2012-11-29]. Dostupné z: https: //play.google.com/store/apps/details?id=eu.vcmi&hl=cs (21) SUN MICROSYSTEMS. Sun Java(TM) Wireless Toolkit 2.5.1 for CLDC, EA [online], poslední revize 27.3.2007 [cit. 2013-330]. Dostupné z: http://www.oracle.com/technetwork/java/ download-2-5-1-138417.html (22) THE 3DO COMPANY. Heroes of Might and Magic III Player Manual. 1999. 50
Literatura (23) XINOX SOFTWARE. JCreator 3.50 LE [online] [cit. 2013-3-30]. Dostupné z: http://www.jcreator.org/download.htm
51
Příloha
Seznam použitých zkratek API Application Programming Interface AVD Android Virtual Device AWT Abstract Window Toolkit CDC Connected Device Configuration CLDC Connected Limited Device Configuration FPS frames per second HTTP Hypertext Transfer Protocol J2EE Java 2 Enterprise Edition J2ME Java 2 Micro Edition J2SE Java 2 Standard Edition KVM Kilobite Virtual Machine MIDP Mobile Information Device Profile OS operační systém PDA Personal Digital Assistant RMS Record Management System SQL Structured Query Language SSL Secure Sockets Layer USB Universal Serial Bus
53
A
Příloha
Obsah přiloženého CD
readme.txt...................................stručný popis obsahu CD Android bin .................... adresář se spustitelnou verzí pro OS Android sources ......... Eclipse projekt se zdrojovými kódy pro OS Android J2ME bin................adresář se spustitelnou verzí pro platformu J2ME sources ............ projekt se zdrojovými kódy pro platformu J2ME javadoc ......................................... javadoc dokumentace text ....................................................... text práce BP_Becka_Michal_2013.pdf ............. text práce ve formátu PDF BP_Becka_Michal_2013.tex..zdrojová forma práce ve formátu LATEX 55
B
Příloha
Uživatelská příručka Tato uživatelská příručka je navržena tak, aby její členění přibližně odpovídalo struktuře uživatelské příručky k původní hře (22). Tato uživatelská příručka popisuje uživatelské rozhraní hry a základy herních mechanismů. Zároveň poskytuje informace nutné ke správné instalaci a spuštění hry. Podrobnější informace o statistikách jednotlivých hrdinů, jednotek, kouzel, schopností apod. jsou k dispozici v uživatelské příručce k původní hře a k ní přidružených dokumentech.
C.1
Minimální požadavky J2ME verze hry
• konfigurace CLDC 1.1 • profil MIDP 2.0 • rozlišení displeje 176x220 obrazových bodů • velikost haldy virtuálního stroje 4MB (telefony Sony Ericsson 1MB)
C.2
Minimální požadavky verze pro OS Android
• OS Android verze 2.2 (Froyo) • rozlišení displeje 240x320 obrazových bodů • velikost haldy virtuálního stroje 64MB • paměťová karta 57
C
C. Uživatelská příručka
Obrázek C.1: Dialog pro povolení zvukových efektů
C.3
Instalace J2ME verze hry
Pomocí USB kabelu přeneste z osobního počítače do telefonu instalační JAR archiv HeroesIIIMobileRemake.jar. Dále v instalaci postupujte dle instrukcí výrobce konkrétního telefonu.
C.4
Instalace verze pro OS Android
Pomocí USB kabelu přeneste z osobního počítače do telefonu instalační apk archiv HeroesIIIMobileRemake.apk a nainstalujte jej. K instalaci je nutné mít povolenou možnost instalace aplikací z jiných zdrojů, než z oficiálního obchodu Google Play. Typicky se tato možnost nachází v nastavení telefonu v sekci Aplikace pod položkou Neznámé zdroje. V některých verzích OS Android se může cesta k tomuto nastavení lišit. Rozbalte obsah archivu resources.zip na paměťovou kartu telefonu do složky /Android/data/org.beckamichal.heroes3/heroes3_remake.
C.5
Spuštění hry
Po spuštění hry budete dotázáni, zda mají být ve hře zakázány, či povoleny zvukové efekty. Pokud zakážete v tomto dialogu použití zvukových efektů, budou zvukové efekty po celou dobu spuštění hry vypnuty. Po potvrzení volby bude zobrazeno hlavní menu.
C.6
Hlavní menu
Obrazovka hlavního menu obsahuje následující položky.
C.6.1
Nová hra (New Game)
Tato položka slouží k započetí nové hry. Po jejím stisknutí bude zobrazeno menu nové hry. 58
C.7. Menu nové hry
C.6.2
Načtení uložené hry (Load Game)
Tato položka slouží k načtení dříve uložené hry. Po jejím stisknutí bude zobrazena obrazovka se seznamem uložených her, které je možné načíst.
C.6.3
Nejvyšší Skóre (High Score)
Tato položka slouží k zobrazení seznamu nejvyšších skóre, kterých bylo dosaženo na tomto zařízení. Také je zde možné smazat všechny záznamy v tabulce nejvyšších skóre.
C.6.4
Titulky (Credits)
Položka sloužící pro zobrazení celého názvu hry a jména autora.
C.6.5
Opustit hru (Quit)
Položka sloužící pro ukončení hry.
C.7
Menu nové hry
Obrazovka menu nové hry obsahuje položky umožňující různé způsoby hry. Kampaň (Campaign) a výcviková mise (Tutorial) nejsou v předělávce obsaženy.
C.7.1
Hra jednotlivé herní mapy (Single Scenario)
Položka umožňující hru jednotlivé herní mapy jedním hráčem. Po stisknutí této položky bude zobrazena obrazovka se seznamem dostupných map (scénářů).
C.7.2
Hra více hráčů (Multi-Player)
Položka umožňující hru více hráčů na jednom telefonu. Je použit způsob hry Horké křeslo. Po stisknutí této položky bude zobrazena obrazovka pro volbu počtu lidských hráčů. Po zvolení počtu lidských hráčů bude zobrazena obrazovka se seznamem dostupných map (scénářů).
C.7.3
Zpět do hlavního menu (Back)
Položka pro přechod zpět do hlavního menu. 59
C. Uživatelská příručka
Celkový počet hráčů / počet lidských hráčů
Filtrování dle velikosti mapy Podmínky vítězství
Velikost mapy Podmínky prohry
Obrázek C.2: Seznam dostupných map (Scénářů)
C.8
Seznam dostupných map (Scénářů)
Obrazovka seznamu dostupných map umožňuje filtrovat a řadit dostupné mapy dle různých kritérií. Mapy je možné filtrovat dle jejich typu a následně je řadit dle počtu hráčů, názvu mapy nebo dle podmínek vítězství a prohry. Po zvolení konkrétní mapy bude zobrazena obrazovka pokročilého nastavení mapy.
C.9
Pokročilé nastavení mapy (Advanced options)
Tato obrazovka umožňuje nastavit typ počátečního města, hrdinu, který bude umístěn před počáteční město, a počáteční bonus. Hráč má na výběr z devíti typů měst. Pro každé město je k dispozici 14 hrdinů rozdělených do dvou tříd (jedna třída zaměřena na sílu, druhá na magii). Počátečním bonusem může být zlato, suroviny nebo náhodně vybraný artefakt. Některé mapy mohou mít předem nastavený typ počátečního města. U takovýchto map není možné měnit typ počátečního města a hrdinu, který bude umístěn u počátečního města. Po stisknutí tlačítka Next bude zobrazena obrazovka s detailními informacemi o mapě. 60
C.10. Obrazovka s detailními informacemi o mapě
Jméno hráče Vlajka hráče Počáteční bonus
Počáteční město Hrdina u počátečního města
Obrázek C.3: Pokročilé nastavení mapy
Název aktuálně zvolené mapy Tlačítko pro návrat zpět na seznam dostupných map
Typ aktuálně zvolené mapy Popis aktuálně zvolené mapy
Podmínky vítězství Podmínky prohry Seznam spojenců / nepřátel (pokud jsou na mapě povoleny týmy) Tlačítko pro návrat zpět na pokročilé nastavení mapy
Nastavení obtížnosti
Obrázek C.4: Obrazovka s detailními informacemi o mapě
C.10
Obrazovka s detailními informacemi o mapě
Tato obrazovka obsahuje popis mapy a nastavení obtížnosti počítačem řízených protihráčů. Zároveň umožňuje návrat na seznam dostupných map nebo na obrazovku s pokročilým nastavením mapy. Po stisknutí tlačítka Begin bude započata hra. 61
C. Uživatelská příručka
C.11
Herní obrazovka
Po započetí hry bude zobrazena herní obrazovka obsahující pohled na jednu obrazovku herní mapy. V pravé a spodní části obrazovky se nacházejí ovládací prvky hry.
C.11.1
Herní mapa
Mezi jednotlivými obrazovkami herní mapy je možné se pohybovat pomocí gesta pro posun (při použití dotykové obrazovky) nebo pomocí umístění kurzoru na okraj herní obrazovky (při použití klávesnice). Mini mapa také umožňuje rychlý pohyb mezi obrazovkami herní mapy. Informace o jednotlivých lokacích a objektech nacházejících se na herní mapě je možné zjistit stisknutím klávesy 9 nebo stisknutím kurzoru na dotykovém displeji alespoň po dobu jedné sekundy. Dvojitým klepnutím na hráčova hrdinu bude zobrazena obrazovka se statistikami hrdiny.
C.11.2
Hrdinové
Každý hráč může ovládat až čtyři hrdiny. Celkem na herní mapě však nesmí být více než 16 hrdinů. Každý hrdina nese vlajku s barvou hráče, kterému náleží. Každý hrdina u sebe může mít až 7 skupin jednotek. Vždy u sebe musí mít alespoň jednu skupinu jednotek. V dané skupině jednotek smí být vždy pouze jednotky stejného typu. Pokud jsou všechny skupiny hrdinových jednotek poraženy, nemůže se dále pohybovat po herní mapě. Avšak je jej možné znovu najmout v putyce v některém z hráčových měst, kde získá i nové jednotky do své armády.
C.11.3
Pohyb hrdiny
Dvojitým klepnutím na dané místo na herní mapě se hrdina pokusí přesunout na toto místo. Pokud na dané místo klepneme pouze jednou, zobrazí se cesta, kterou hrdina půjde. Zeleně zvýrazněnou část cesty je hrdina schopen urazit ještě tento den, hnědě zvýrazněnou část cesty je hrdina schopen urazit až v dalších dnech.
C.12
Lokace na herní mapě
Na herní mapě se nacházejí jednotlivé lokace, které hrdina může navštívit. 62
C.12. Lokace na herní mapě Obelisk Seznam hrdinů
Obrazovka herní mapy Město Truhla s pokladem
Hrdina
Budova umožňující nákup jednotek
Seznam měst
Důl na suroviny Datum
Lišta s hráčovými surovinami
Tlačítko pro zobrazení celého herního menu Tlačítko pro zobrazení minimapy Tlačítko pro zobrazení nápovědy
Obrázek C.5: Herní obrazovka
C.12.1
Města
Města poskytují hráči, který je vlastní, zdroj finančních příjmů. Zároveň umožňují nákup jednotek. Více informací o městech se nachází v sekci C.20.
C.12.2
Doly
Doly poskytují hráči, který je vlastní, každodenní přísun surovin nebo zlata.
C.12.3
Volně umístěné suroviny
Na herní mapě se vyskytují volně umístěné suroviny. Pokud je hrdina sebere získá hráč jednorázově určité množství dané suroviny.
C.12.4
Truhly s pokladem
Truhly s pokladem mohou obsahovat zlato, artefakty nebo určité množství nových zkušeností pro hrdinu.
C.12.5
Artefakty
Artefakty jsou předměty poskytující hrdinovi, který je používá, různé schopnosti a výhody. 63
C. Uživatelská příručka
C.12.6
Strážní věže a brány (Border Guards and Gates)
Strážní věže a brány jsou budovy nacházející se typicky v úzkých místech, která není možno jinak obejít. Aby byl hráčův hrdina vpuštěn za bránu, musí nejdříve navštívit klíčníkův stan (Keymaster’s Tent).
C.12.7
Budovy umožňující nákup jednotek (Dwellings)
Tyto budovy umožňují nákup určitého množství jednotek, které zde sídlí. Každý týden se toto množství obnovuje.
C.12.8
Obelisk
Obelisky se vyskytují pouze na mapách, kde se nachází grál. Návštěvou jednotlivých obelisků získává hráč jednotlivé dílky skládací puzzle mapy, která vede k nalezení grálu.
C.12.9
Jednotky hlídající části mapy
Na herní mapě se vyskytují jednotky, které nepatří žádnému hráči. Tyto jednotky většinou hlídají nějakou lokaci nebo zúžený průchod. Pokud chce hrdina projít, musí jednotky porazit v boji. V některých případech, kdy je hrdinova armáda několikanásobně silnější než jednotky hlídající část mapy, se jednotky mohou pokusit uprchnout bez boje.
C.13
Herní menu
Herní menu obsahuje seznam hrdinů a seznam měst. V prostřední části obsahuje sloupec tlačítek pro ovládání hry. Pokud je hra spuštěna v módu pro rozlišení 240x320 obrazových bodů a vyšší, je zmenšené herní menu zobrazeno v pravé části herní obrazovky.
C.13.1
Přehled království (Kingdom Overview)
Zobrazí přehled království, který obsahuje informace o počtu jednotlivých dolů ve vlastnictví aktuálně hrajícího hráče a o denním příjmu zlata.
C.13.2
Kniha kouzel
Pokud má aktuálně hrající hrdina knihu kouzel, zobrazí kouzla v ní obsažená.
C.13.3
Možnosti dobrodružství (Adventure options)
Zobrazí obrazovku umožňující zobrazení puzzle mapy. Také umožňuje vykopat na místě, kde se nachází hrdina, díru a zjistit, zda se zde nachází grál. 64
C.14. Nastavení (System Options) Přehled království (Kingdom Overview)
Přepnutí mezi povrchem a podzemím
Seznam hrdinů
Seznam měst
Kniha kouzel
Uspání / probuzení hrdiny
Možnosti dobrodružství (Adventure options)
Červené písmeno X značí že v tomto městě byla dnes již postavena budova.
Přepnutí na dalšího neuspaného hrdinu
Nastavení (System options) Ukončit tah
Lišta s hráčovými surovinami
Datum Tlačítko pro opuštení menu
Obrázek C.6: Herní menu
Zobrazení informací o mapě (scénáři) a přehrání posledního protihráčova tahu není v předělávce obsaženo.
C.13.4
Přepnutí na dalšího neuspaného hrdinu
Pokusí se přepnout na dalšího hráčova hrdinu, který není uspaný.
C.13.5
Přepnutí mezi povrchem a podzemím
Přepne pohled mezi podzemní a nadzemní částí herní mapy (pokud mapa obsahuje podzemí).
C.13.6
Uspání / probuzení hrdiny
Přepíná aktuálního hrdinu mezi stavy probuzený a uspaný. Na uspaného hrdinu se není možné přepnout pomocí tlačítka pro přepnutí na dalšího hrdinu. Také není zobrazováno upozornění o nevyužití pohybových bodů uspaného hrdiny.
C.13.7
Nastavení (System Options)
Zobrazí obrazovku s nastavením hry. Tato obrazovka také umožňuje uložení hry, přechod do hlavního menu a ukončení hry.
C.14
Nastavení (System Options)
Obrazovka obsahující nastavení hry. 65
C. Uživatelská příručka
C.14.1
Upozornění o nevyužití pohybových bodů
Upozornění o nevyužití pohybových bodů (Show Hero Reminder) zapíná / vypíná upozornění, které informuje o nevyužitých pohybových bodech neuspaných hrdinů na konci tahu.
C.14.2
Zobrazit snímkovou frekvenci (Show FPS)
Zobrazí snímkovou frekvenci hry. Vypisuje hodnoty některých proměnných na display. Za normálních okolností není nutné tuto položku aktivovat.
C.14.3
Používat kurzor (Use Cursor)
Zapíná / vypíná použití kurzoru na herní obrazovce. Vypnutí kurzoru není doporučeno na telefonech bez hardwarové klávesnice.
C.14.4
Rychlost hrdiny (Hero Speed)
Nabízí čtyři rychlosti animace pohybu hrdiny. Také umožňuje animace pohybu hrdiny vypnout – hrdina bude okamžitě přenesen na zvolené políčko, pokud je dosažitelné.
C.14.5
Rychlost nepřátelských hrdinů (Enemy Speed)
Nabízí čtyři rychlosti animace pohybu nepřátelských hrdinů. Také umožňuje vypnout zobrazení pohybu nepřátelských hrdinů.
C.14.6
Hlasitost hudby (Music Volume)
Slouží k nastavení úrovně hlasitosti hudby ve hře. Pokud byly na počátku hry zakázány zvukové efekty, zůstane hudba vypnuta i po změně nastavení hlasitosti.
C.14.7
Hlasitost hudby (Effects Volume)
Slouží k nastavení úrovně hlasitosti zvukových efektů ve hře. Pokud byly na počátku hry zakázány zvukové efekty, zůstanou vypnuty i po změně nastavení hlasitosti.
C.14.8
Uložení hry (Save Game)
Po stisknutí tohoto tlačítka bude zobrazena obrazovka sloužící k ukládání hry.
C.14.9
Ukončení hry (Quit Game)
Po stisknutí tohoto tlačítka bude hra ukončena. 66
C.15. Obrazovka se statistikami hrdiny
Obrázek C.7: Nastavení (System Options)
C.14.10
Do hlavního menu (Main Menu)
Po stisknutí tohoto tlačítka bude ukončena rozehraná hra. Následně bude zobrazeno hlavní menu.
C.14.11
Návrat do hry (Return to Game)
Vrátí se zpět do herního menu (a následně zpět do hry).
C.15
Obrazovka se statistikami hrdiny
Tato obrazovka obsahuje v horní části jméno, úroveň a třídu hrdiny. Dále zobrazuje základní a druhotné schopnosti, hrdinovu specializaci, dosažené množství zkušeností, počet bodů many a celkový počet bodů many. Sloupec v pravé části obsahuje seznam hrdinů, tlačítko pro přepnutí na obrazovku s hrdinovými artefakty a tlačítko pro návrat na herní obrazovku.
C.16
Obrazovka s hrdinovými artefakty
Tato obrazovka zobrazuje artefakty, které hrdina získal při svém putování po herní mapě. Aby hrdina mohl získat výhody či schopnosti spojené s artefaktem, musí se tímto artefaktem vybavit. Mezi artefakty, kterými je hrdina vybaven jsou za67
C. Uživatelská příručka Hrdinův portrét Úroveň hrdiny
Jméno hrdiny Třída hrdiny
Základní schopnosti Seznam hrdinů Specializace Zkušenosti
Druhotné schopnosti
Morálka Štěstí Tlačítko pro přepnutí na obrazovku s hrdinovými artefakty
Tlačítko pro návrat na herní obrazovku
Obrázek C.8: Obrazovka se statistikami hrdiny
hrnuty veškeré artefakty, které hrdina nese, kromě artefaktů v batohu. Různé typy artefaktů lze umístit na různá místa. Například zbraň smí hrdina držet pouze v pravé ruce, štít pouze v levé ruce. Pozice pro umístění artefaktů jsou patrné z obrázku C.10. Pozice, na které je možno artefakt umístit, jsou zvýrazněny bílou barvou (viz obrázek C.9). Zobrazení informací o daném artefaktu je možné stisknutím klávesy 9 nebo stisknutím kurzoru na dotykovém displeji alespoň po dobu jedné sekundy.
C.16.1
Válečné stroje
V pravém horním rohu obrazovky se nachází čtyři políčka, do kterých je možné umístit pouze válečné stroje. Mezi válečné stroje patří balista, katapult, stan první pomoci (First Aid Tent) a vozík s municí (Ammo Cart). Válečné stroje je možné nakoupit v kovárně (Blacksmith) jakéhokoliv města.
C.16.2
Propustit hrdinu (Dismiss Hero)
Po stisknutí tohoto tlačítka bude daný hrdina propuštěn. V budoucnu jej bude možné znovu najmout v putyce (Tavern) některého z měst. Stejně tak jej ovšem budou moci najmout i protihráči. 68
C.16. Obrazovka s hrdinovými artefakty
Válečné stroje
Pozice, na kterou je možno umístit zvolený artefakt, je zvýrazněna.
Seznam hrdinů
Kniha kouzel
Aktuálně zvolený artefakt
Tlačítko pro přepnutí na obrazovku se statistikami hrdiny Propustit hrdinu
Tlačítko pro návrat na herní obrazovku
Obrázek C.9: Obrazovka s hrdinovými artefakty
Pravá ruka (zbraň) Pravá ruka (prsten, rukavice) Trup (brnění) Různé (ostatní artefakty)
Hlava (helma, koruna, klobouk) Krk (náhrdelník, přívěšek) Levá ruka (štít) Levá ruka (prsten, rukavice) Ramena (plášť)
Nohy (boty) Batoh
Obrázek C.10: Rozmístění artefaktů
69
C. Uživatelská příručka První hrdina Jednotky prvního hrdiny
Artefakty prvního hrdiny
Tlačítko pro rozdělení skupiny jednotek Jednotky druhého hrdiny
Artefakty druhého hrdiny
Druhý hrdina
Tlačítko pro návrat zpět na herní obrazovku
Obrázek C.11: Výměna jednotek a artefaktů mezi hrdiny
C.17
Výměna jednotek a artefaktů mezi hrdiny
Když se na herní mapě potkají dva hrdinové stejného hráče, mohou si mezi sebou vyměnit své jednotky a artefakty. Každý hrdina musí mít u sebe vždy alespoň jednu skupinu jednotek, proto není možné hrdinovi tuto poslední skupinu jednotek celou odebrat. Skupiny jednotek je možné také dělit a slučovat (pokud obsahují stejný typ jednotek) pomocí příslušného tlačítka.
C.18
Získání nové úrovně
Když hrdina vyhraje bitvu získá určité množství zkušeností. Zkušenosti lze také získat navštívením některých lokací na herní mapě nebo sebráním truhly s pokladem. Když množství hrdinových zkušeností dosáhne určité hodnoty, získá hrdina novou úroveň (level). Při získání nové úrovně je hrdinovi automaticky zvýšena jedna ze základních schopností. Zároveň jsou nabídnuty (typicky dvě) druhotné schopnosti, ze kterých si hráč musí jednu zvolit. Po potvrzení volby bude zobrazena obrazovka se statistikami hrdiny.
C.19
Bitvy
Hráčův hrdina může bojovat proti nepřátelským hrdinům nebo jednotkám hlídajícím část mapy. Dobývání měst také probíhá na bitevní obrazovce. 70
C.19. Bitvy
Číslo aktuální úrovně hrdiny Základní schopnost, kterou hrdina získal.
Druhá druhotná schopnost
První druhotná schopnost
Obrázek C.12: Získání nové úrovně
Typ terénu, na kterém se bitva odehrává, závisí na umístění bitvy na herní mapě, nebo na typu dobývaného města. V bitvě proti sobě bojují jednotky obou stran, hrdinové do boje mohou zasahovat pouze použitím kouzel. Každá bojující strana může mít až sedm skupin jednotek. Každá skupina jednotek je na bitevní obrazovce reprezentována, jako jedna jednotka s číselným označením počtu jednotek ve skupině. Bitva je rozdělena do jednotlivých kol. V jednom kole hraje každá jednotka nebo válečný stroj právě jednou (pokud není upraveno díky vyšší morálce nebo kouzlům). Pokud se jedna ze stran vzdá, uprchne nebo porazí veškeré jednotky druhé strany, bitva končí. Hrdina, který bitvu vyhrál získá množství zkušeností odpovídající celkovému součtu životů všech poražených nepřátelských jednotek.
C.19.1
Akce jednotek
Každá skupina jednotek smí udělat během jednoho kola jednu akci. Mezi akce patří pohyb jednotek, útok zblízka a útok zdálky. Aktuálně hrající jednotka je zvýrazněna žlutým oválem.
C.19.2
Pohyb jednotek
Aktuálně hrající skupina jednotek se může přesunout na jiné políčko. Skupina jednotek může za jedno kolo překročit tolik políček, kolik má pohybových bodů. Počet zbývajících pohybových bodů aktuálně hrající skupiny jednotek je zvýrazněn červenými obdélníčky ve spodní části obrazovky. 71
C. Uživatelská příručka
Hrdina
Skupina nepřátelských jednotek
Skupina jednotek
Kurzor
Automatický boj (Auto Combat)
Seslat kouzlo
Uprchnout (Retreat)
Čekat (Wait)
Vzdát se (Surrender)
Obranné postavení (Defend)
Počet pohybových bodů aktuálně hrající skupiny jednotek Nastavení
Zobrazit / skrýt popisky s počtem jednotek ve skupině
Zobrazit / skrýt čtvercovou síť
Zvýraznit dosažitelná políčka stínem
Obrázek C.13: Bitva
C.19.3
Útok zblízka
Zblízka smí útočit každá skupina jednotek, která se nachází na políčku těsně vedle skupiny jednotek na kterou chce útočit. Jednotky schopné útočit zdálky mají zpravidla nižší útok zblízka.
C.19.4
Útok zdálky
Některé jednotky jsou schopny útočit zdálky. Typicky se jedná o lukostřelce, kušníky apod. Aby mohla skupina jednotek provést útok zdálky, nesmí se na žádném ze čtyř políček, která ji obklopují, vyskytovat skupina nepřátelských jednotek.
C.19.5
Protiútok
Každá skupina jednotek vrací první úder, který obdržela během daného kola. Některé jednotky mohou vracet i více úderů v daném kole. 72
C.19. Bitvy
C.19.6
Použití kouzel
Pokud vlastní hrdina knihu kouzel, smí během bitvy sesílat kouzla v ní obsažená. Některá kouzla je možné použít pouze na jednu skupinu jednotek, jiná kouzla jsou automaticky použita na všechny skupiny jednotek na bitevním poli.
C.19.7
Tlačítko čekat (Wait)
Po stisknutí tohoto tlačítka bude aktuálně hrající skupina jednotek čekat až všechny ostatní skupiny jednotek provedou v tomto kole nějakou akci.
C.19.8
Tlačítko zaujmout obranné postavení (Defend)
Po stisknutí tohoto tlačítka přeskočí aktuálně hrající skupina jednotek svůj tah v tomto kole. Avšak získá zvýšenou šanci na obranu před nepřátelskými útoky během zbytku tohoto kola.
C.19.9
Tlačítko Vzdát se (Surrender)
Po stisknutí tohoto tlačítka bude hrdina nucen zaplatit určitý obnos zlata, za který může z boje odejít i se svou armádou. Protihráč však musí s tímto krokem souhlasit. Následně se hrdina objeví v putyce (Tavern) některého z hráčových měst, kde je možné jej znovu najmout i s jeho armádou.
C.19.10
Uprchnout (Retreat)
Po stisknutí tohoto tlačítka hrdina uprchne z boje a zanechá jednotky napospas nepříteli. Následně se hrdina objeví v putyce (Tavern) některého z hráčových měst, kde je možné jej znovu najmout, avšak bez jeho původní armády.
C.19.11
Dobývání města
Ve chvíli, kdy se hrdina pokusí dobýt nepřátelské město, je zobrazena bitevní obrazovka pro dobývání města. Opevnění města se liší podle budov, které jsou v něm postaveny. Postavením pevnosti (Fort) získá město obranné hradby. Vybudováním citadely (Citadel) získá město příkop a jednu střílející jednotku na věž. Postavením hradu (Castle) získá město další dvě střílející jednotky do věží. V hradbách se nachází brána, kterou mohou procházet pouze jednotky hráče bránícího hrad. Hráč, který dobývá hrad, má k dispozici katapult, který každé kolo vystřelí na obranné budovy města. Brána je průchozí pro jednotky obou hráčů, pokud se ji podaří rozbít katapultem. Pokud katapult rozbije část hradeb, jsou průchozí pro jednotky obou hráčů. Katapult také může zasáhnout věže se střílejícími jednotkami a tím je zničit. 73
C. Uživatelská příručka Hrdina dobývající město
Hrdina bránící město
Věže Katapult
Hradby
Obrázek C.14: Dobývání města
Pokud útočící jednotky vstoupí do příkopu okolo města, utrpí poškození, jehož výše závisí na typu příkopu.
C.19.12
Nastavení bitvy
Obrazovka obsahující nastavení bitvy.
C.19.13
Zobrazit čtvercovou síť (View Grid)
Zobrazí čtvercovou síť znázorňující jednotlivá políčka na bitevním poli.
C.19.14
Zvýraznit políčka (Movement Shadow)
Políčka dosažitelná v tomto kole zvýrazní stínem.
C.19.15
Používat kurzor (Use Cursor)
Zapíná / vypíná použití kurzoru na bitevní obrazovce. Vypnutí kurzoru není doporučeno na telefonech bez hardwarové klávesnice.
C.19.16
Popisky s počtem jednotek (View Tags)
Zobrazí popisky s počty jednotek v jednotlivých skupinách jednotek.
C.19.17
Rychlost animací (Animation Speed)
Nabízí tři rychlosti animací během bitvy. 74
C.20. Města
Obrázek C.15: Nastavení bitvy
C.19.18
Hlasitost hudby (Music Volume)
Slouží k nastavení úrovně hlasitosti hudby ve hře. Pokud byly na počátku hry zakázány zvukové efekty, zůstane hudba vypnuta i po změně nastavení hlasitosti.
C.19.19
Hlasitost hudby (Effects Volume)
Slouží k nastavení úrovně hlasitosti zvukových efektů ve hře. Pokud byly na počátku hry zakázány zvukové efekty, zůstanou vypnuty i po změně nastavení hlasitosti.
C.20
Města
Ve hře se nachází devět typů měst. Ke každému typu města náleží čtrnáct typů jednotek (sedm nevylepšených a sedm vylepšených). Při návštěvě města je zobrazena obrazovka obsahující pohled na město, seznam jednotek ve městě a seznam jednotek u hrdiny navštěvujícího město. V pravém dolním rohu je zobrazen seznam měst ovládaných tímto hráčem. 75
C. Uživatelská příručka Hrad (Castle)
Radnice (Hall)
Cech mágů (Mage Guild)
Putyka (Tavern)
Tržiště (Marketplace) Jednotky ve městě Kovárna (Blacksmith)
Ikona města
Seznam měst
Hrdina navštěvující město Jednotky hrdiny navštěvujícího město
Tlačítko pro návrat na herní mapu
Obrázek C.16: Město
Pro přesun jednotek jednotek je možné použít klávesu *. Pro rozdělení skupiny jednotek je možné použít klávesu # nebo příslušné tlačítko na obrazovce. Pro zobrazení informací o dané skupině jednotek je možné použít klávesu 9 nebo stisknout kurzor na dotykovém displeji alespoň po dobu jedné sekundy.
C.20.1
Radnice (Hall): stavba budov ve městě
Radnice umožňuje stavět nové budovy ve městě. Po klepnutí na radnici se zobrazí seznam budov ve městě (viz obrázek C.17). Budovy, které byly již postaveny, jsou v seznamu označeny zlatou barvou. Budovy, které je možné postavit, jsou označeny zelenou barvou. Budovy, které nyní není možné postavit, jsou označeny červenou barvou. Budovy, které v tomto městě nejsou dostupné, jsou označeny šedivou barvou. Ve spodní části obrazovky je zobrazen název budovy, na které se nachází kurzor. Po klepnutí na budovu v seznamu se zobrazí dialog pro postavení dané budovy. Dialog obsahuje popis budovy, seznam požadovaných prerekvizit a náklady na postavení budovy (viz obrázek C.18).
C.20.2
Putyka (Tavern)
Putyka umožňuje najímání hrdinů. Hráč má vždy na výběr ze dvou dostupných hrdinů. Putyka také umožňuje navštívit cech zlodějů (Thieves Guild). Cech zlodějů poskytuje možnost porovnání různých statistik s protihráči. Množství informací závisí na počtu měst s putykou, která hráč vlastní. Čím více takovýchto měst je pod hráčovou kontrolou, tím více informací je možné v cechu zlodějů získat. Struktura obrazovky cechu zlodějů je patrná z obrázku C.20. 76
C.20. Města
Budova je již postavena Budovu je možné postavit
Budova v tomto městě není dostupná Budovu nyní není možné postavit
Název budovy, na které se nachází kurzor
Obrázek C.17: Radnice: seznam budov ve městě
Popis budovy Prerekvizity Náklady na postavení budovy
Postavit budovu (pokud jsou splněny požadavky)
Zpět
Obrázek C.18: Dialog postavení budovy
77
C. Uživatelská příručka
Dostupní hrdinové
Najmout zvoleného hrdinu Zpět
Cech zlodějů (Thieves Guild)
Obrázek C.19: Putyka (Tavern)
Čtyři čísla ve čtverci pod ikonou hrdiny značí hodnoty následujících základních schopností hrdiny: • vlevo nahoře: útok hrdiny • vpravo nahoře: obranu hrdiny • vlevo dole: sílu kouzel hrdiny • vpravo dole: znalosti hrdiny
C.20.3
Hrad (Castle): nájem jednotek
V hradě je možné najmout do své armády jednotky, které žijí v různých budovách ve městě. Množství dostupných jednotek se obnovuje vždy na počátku nového týdne. Po klepnutí na hrad se zobrazí obrazovka obsahující seznam budov, ve kterých žijí jednotky. Pokud je daná budova v tomto městě postavena, je zobrazen také počet dostupných jednotek. Po klepnutí na budovu v seznamu, která byla ve městě postavena, se zobrazí obrazovka umožňující najímání jednotek do armády. Struktura obrazovky patrná z obrázku C.21. 78
C.20. Města
Obrázek C.20: Cech zlodějů
Cena za jednu jednotku
Celková cena Počet jednotek k nájmu
Počet dostupných jednotek
Zvýšit počet jednotek k nájmu
Snížit počet jednotek k nájmu
Najmout zvolený počet jednotek
Najmout veškeré dostupné jednotky
Zpět
Obrázek C.21: Nájem jednotek
79
C. Uživatelská příručka Kouzla druhé úrovně
Kouzla třetí úrovně
Kouzla čtvrté úrovně
Kouzla páté úrovně
Kouzla první úrovně
Zpět
Obrázek C.22: Cech mágů
C.20.4
Cech mágů (Mage Guild)
Hrdina navštěvující dané město se v cechu mágů může naučit novým kouzlům. Cech mágů lze postupně vylepšovat. V některých městech je možné cech mágů vylepšit až na pátou úroveň, v jiných městech pouze na čtvrtou nebo třetí úroveň. Po klepnutí na budovu cechu mágů se zobrazí obrazovka obsahující ikony dostupných kouzel. Zároveň automaticky naučí hrdinu, který je ve městě, veškerá kouzla, která je se může se svými schopnostmi naučit.
C.20.5
Tržiště (Marketplace)
Tržiště umožňuje směnit přebytečné suroviny za ty, kterých má hráč aktuálně nedostatek. Po klepnutí na tržiště ve městě se zobrazí obrazovka umožňující směnu surovin. V levé části se nacházejí hráčovy suroviny a v pravé části se nacházejí suroviny dostupné na tržišti. Ke směně surovin je nutné v levé části zvolit surovinu, kterou bude hráč platit, a v pravé části surovinu, kterou bude hráč nakupovat. Následně je nutné nastavit množství nakupované suroviny a potvrdit uzavření obchodu příslušným tlačítkem. Ceny surovin v tržišti závisejí na počtu měst s tržištěm, která hráč vlastní. Čím vyšší počet takových měst, tím výhodnější ceny surovin v tržišti. Tržiště také umožňuje poslat suroviny jinému hráči. Tato možnost je výhodná při hře více hráčů v jednom týmu. 80
C.21. Kniha kouzel (Spell Book)
Hráčovy suroviny
Suroviny dostupné na tržišti
Množství surovin k nákupu
Množství surovin k prodeji Maximum
Uzavřít obchod
Poslat suroviny jinému hráči
Zpět
Obrázek C.23: Tržiště (Marketplace)
C.21
Kniha kouzel (Spell Book)
Každý hrdina může vlastnit knihu kouzel. Kniha kouzel obsahuje veškerá kouzla, která hrdina ovládá. Pokud hrdina nevlastní knihu kouzel, může ji zakoupit v jakémkoliv cechu mágů. Knihu kouzel je možné otevřít během bitvy nebo na herní mapě. Hráč v knize kouzel vybírá, které kouzlo má hrdina použít. Po klepnutí na kouzlo v knize kouzel je ve spodní části obrazovky zobrazen název kouzla, úroveň kouzla, potřebný počet bodů many a popis kouzla. Po druhém klepnutí na kouzlo, pokud má hrdina potřebný počet bodů many, je kouzlo použito. Mezi jednotlivými stránkami knihy kouzel je možné se pohybovat pomocí gesta pro posun (při použití dotykové obrazovky) nebo pomocí kláves * a #. Struktura obrazovky s knihou kouzel je patrná z obrázku C.24.
C.22
Přidání mapy vytvořené uživatelem
Pokud uživatel vytvoří pomocí externího editoru map mapu, kterou chce umístit do hry, je nutné postupovat dle následujícího postupu. V adresáři s herními daty otevřete složku Maps. Do této složky umístěte soubor s vytvořenou herní mapou. Otevřete soubor _list.txt, který se nachází v 81
C. Uživatelská příručka Kouzla magie vzduchu Kouzla magie země Kouzla magie ohně Kouzla magie vody Všechna kouzla
Kouzla použitelná na herní mapě
Zpět Bojová kouzla
Počet dostupných bodů many
Ikona zvoleného kouzla
Název zvoleného kouzla Úroveň zvoleného kouzla Spotřeba bodů many na použití kouzla Popis kouzla
Obrázek C.24: Kniha kouzel (Spell Book) Tabulka C.1: Podporované soubory map Přípona názvu souboru .h3msu .h3mmu .h3mlu .h3mxu .h3msw .h3mmw .h3mlw .h3mxw
Typ mapy mapa velikosti mapa velikosti mapa velikosti mapa velikosti mapa velikosti mapa velikosti mapa velikosti mapa velikosti
S s podzemím M s podzemím L s podzemím XL s podzemím S bez podzemí M bez podzemí L bez podzemí XL bez podzemí
této složce, a na nový řádek vložte název souboru vytvořené mapy i s příponou názvu souboru. Uložte upravený soubor _list.txt. Podporovány jsou mapy s příponami uvedenými v tabulce C.1.
82
Příloha
Změny oproti původní verzi hry Vzhledem k omezeným možnostem platformy J2ME a OS Android oproti PC platformě bylo nutné provést určité změny v konceptu hry. Zde je uveden seznam změn oproti původní verzi hry.
D.1
Posun herní mapy
Provedené změny týkající se posunu herní mapy jsou popsány v kapitolách 3.3 a 3.6.
D.2
Zjednodušení bitevní obrazovky
Původní hra obsahuje bitevní pole o rozměrech 15x11 políček. Jednotlivá políčka mají tvar šestiúhelníku. Při zobrazení takovéhoto množství políček na displeji mobilního telefonu s úhlopříčkou displeje několik palců by byla políčka tak malá, že by hru téměř nebylo možné ovládat. Proto předělávka používá bitevní pole o rozměrech 7x7 políček. Jednotlivá políčka jsou obdélníky. Se zmenšením bitevního pole je úzce spjata i úprava rychlosti jednotek adekvátně velikosti bitevního pole. Rychlost jednotek v předělávce je proto určena následujícím způsobem: Rychlost jednotky z původní hry je vydělena dvěmi. Pokud nevychází celé číslo, zaokrouhlení nahoru či dolů je určeno náhodně. Rychlost jednotky je vždy minimálně rovna jednomu políčku za jedno herní kolo.
D.3
Omezení způsobů hry více hráčů
Původní hra obsahuje několik způsobů hry více hráčů přes počítačovou síť (konkrétně protokol IPX, protokol TCP/IP, modem a Direct Connect) a jeden způsob hry více hráčů na jednom PC, který se nazývá Horké křeslo. V tomto 83
D
D. Změny oproti původní verzi hry
Obrázek D.1: Bitevní obrazovka předělávky s mřížkou zvýrazňující rozložení jednotlivých políček.
Obrázek D.2: Bitevní obrazovka původní hry s mřížkou zvýrazňující rozložení jednotlivých políček.
84
D.4. Absence herní kampaně způsobu hry se všichni hráči střídají o jeden počítač, na kterém je spuštěna hra. Předělávka podporuje pouze hru více hráčů na jednom telefonu (Horké křeslo).
D.4
Absence herní kampaně
Původní hra obsahuje jednotlivé herní mapy (scénáře), kampaň a výukovou misi – Tutorial. Předělávka obsahuje pouze jednotlivé herní mapy (scénáře).
85