Mravenci pro Pocket PC

Remake oblíbené logické hry Mravenci (nejen) pro kapesní počítače (tzv. PDA) s Windows Mobile, postavený na univerzálním engine Logicard na platformě .NET Compact Framework 2.0. Engine byl vytvořen především kvůli této implementaci.

Hra z původní verze pro PC (která byla SNADNO a RYCHLE vytvořena v programovacím nástroji PETR firmy Gemtree Software) přebírá zvuky, grafiku, karty a gameplay. Ostatní (GUI, AI, ovládání) bylo vytvořené znovu. Můžete hrát s kolegou na jednom zařízení či proti počítači.

Obsah

  1. Upozornění
  2. Příběh
  3. Popis hry
  4. Požadavky
  5. Instalace
  6. Ovládání
  7. Rozdíly oproti PC verzi
  8. Testováno na
  9. Ke stažení
  10. Diskuse
  11. Hra více hráčů
  12. Známé nedostatky
  13. Poděkování
  14. Budoucnost
  15. Historie
  16. Modifikace
  17. Behind the Scenes
  18. Kontakt

Upozornění

Ptáte se mě, zda budou Mravenci i pro iPhone, Symbian, Javu apod. Konverzi z časových důvodů neplánuji, navíc žádné takové zařízení nevlastním.

Na Linuxu lze Mravence spustit pod platformou MONO.

Příběh

Nikdo z černých ani červených mravenců si již nepamatuje, kdo a kdy začal jejich odvěkou válku o mraveniště "U dvou smrků". Aby věčným soubojům učinili konec, rozhodli se postavit hrady, s jejichž pomocí by získali nadvládu nad celým územím.

Popis hry

Cílem hry je postavit hrad o výšce 100 nebo zničit hrad soupeře. Levým tlačítkem myši lze vybrat kartu, pravé tlačítko kartu odloží. Každá karta spotřebuje určité množství surovin (číslo vpravo nahoře). Rychlost tvorby surovin závisí na množství týmů.

Požadavky

Hra je určena především pro Pocket PC (kapesní počítače s operačním systémem Windows Mobile (Windows CE) a obdélníkovým dotykovým displejem).

Hra vyžaduje operační systém Windows Mobile 2003 (Windows CE 4.2) nebo novější a nainstalovaný .NET Compact Framework alespoň ve verzi 2.0. Instalační balíček frameworku naleznete v download centru autorské firmy Microsoft.

Instalace

Hru stáhnete, rozbalíte ZIP archiv do požadovaného adresáře a spustíte mravenci.exe (platí pro PC i PDA). Hra se neinstaluje. K přenosu souborů z PC do PDA doporučuji plugin WinCE pro Total Commander.

Ovládání

Na PC si vystačíte s třítlačítkovou myší - pravým vynášíte kartu, levým ji odkládáte a prostředním vyvoláte informační okno. Kliknutím na detail karty v informačním okně kartu vynesete. Informační okno zavřete buď kliknutím na nabídku "Karta" nebo prostředním myšítkem na tutéž kartu (kliknutím na jinou kartu zobrazíte detail této karty).

Na Pocket PC tapnutím na kartu vynášíte, tapnutím na nabídku "Karta" zobrazíte/skryjete informační okno, na kterém je tlačítko "Odložit" (kterým kartu odložíte).

Pro urychlení hraní je ve hře připraveno několik klávesových zkratek, přičemž na určité akce existuje zkratek více:

  • Escape: Konec hry
  • Ctrl+N: Nová hra
  • Enter: Vynesení karty (z infoBoxu)
  • Backspace: Odložení karty (z infoBoxu)
  • Šipky: Listování kartami (v infoBoxu)
  • Čísla: Vyvolání infoboxu karty v pořadí dle stisknutého čísla
  • Ostatní: vyvolání/skrytí infoboxu karty

Rozdíly oproti PC verzi

Verze pro Pocket PC se z pochopitelných důvodů musí lišit, protože je určena pro menší displej, standardně orientovaný na výšku (tzv. "portrait mode"), bylo nutné přerozvrhnout grafické rozhraní a obejít se bez některých grafických vychytávek.

  • Přidáno informační okno karty.
  • Chybí stínování karet, hradu a zdi.
  • Chybí animace (vynášení karet, vlajka, vítězní mravenci).
  • Hrad a zeď se nevysunují, ale roztahují.
  • Chybí možnost jakéhokoliv user-friendly nastavení (řeší se v XML).
  • Hra není upoutána pouze na Mravence, lze vytvořit novou hru díky XML definici karet.
  • Chybí indikátor změny zdrojů a týmů, díky tomu je hra o něco svižnější.
  • Hra je napsaná tak, aby se v budoucnu dala rozšířit např. o síťový multiplayer.

Testováno na

  • PC (SXGA), Windows XP SP3 CZ
  • Device Emulator (QVGA), WM 2003 EN
  • HTC Touch Pro (VGA), WM 6.1 EN
  • HTC Touch Diamond (VGA), WM 6.1 EN
  • Sony Ericsson Xperia X1 (WVGA), WM 6.1 EN
  • E-ten X600 (QVGA)
  • HP iPAQ 2210 (QVGA), WinCE 4.2

Ke stažení

Mravenci PPC 1.2 (2009-08-03): freeware, < 0.5 MB.

Stáhnout ZIP v1.2 - Stáhnout CAB v1.1

Diskuse

Pojďte se o hře pobavit na SmartMania.cz

Hra více hráčů

Ačkoliv je hra připravena na neomezené množství hráčů, fungují zatím pouze dva, přičemž druhým hráčem může být člověk nebo počítač (AI).

Hráči jsou definování v XML souboru v tagu "player", přičemž má-li parametr "type" hodnotu "ai" (nebo "ai1") hraje za něj počítač, jinak hraje člověk. Hodnota tagu je pak hráčovo jméno.

Dalším zajímavým tagem je "ap", čili "Active Player" (aktivní hráč). Výchozí hodnota je "0" (nula), kdy začíná hráč 1 (v XML definovaný jako první, vlevo se nacházející). Je-li "ap" nastaveno na "1", začíná druhý hráč (ten napravo).

Známé nedostatky

  • Zvuky fungují pouze na Pocket PC.
  • Na PC se elementy neroztahují s oknem (protože na PPC nelze roztáhnout okno).
  • Hra je určena spíše pro hráče, kteří mají zkušenosti s původní hrou.
  • Platforma Pocket PC neumožňuje prvkům nastavit průhlednost.
  • Portrait mode není pro tento typ hry vhodný, ale landscape by se hůře ladil.

Poděkování

Rypi: nápady na vylepšení, instalační CAB balíček

Verze 1.2

  • Upraveno generování karet (nové určení levelů karet) => změny v "mravenci.xml"
  • Možnost generování pouze karet, na kterou má hráč suroviny (<mode>hasRes</mode> v "mravenci.xml")
  • Možnost vypnout zvuk (<sound>0</sound> v "mravenci.xml")
  • Evidence skóre (parametr "score" u hráče v "mravenci.xml")
  • Evidence počtu zahájených her; [matches - (p1score + p2score) = počet nedokončených her], "mravenci.xml"
  • Pokus o potlačení chyby opakovaného vynesení karty na téže pozici při dvojkliku na kartu (potlačení neznamená odstranění, nevygooglil jsem funkční řešení mazání Message Queue). Potlačí se pouze první klik "navíc".

Verze 1.1

  • Podpora QVGA Square displeje.
  • Neaktivní karty ze souboru, ne generovaně (zrychlení hry).
  • Upraveno AI a rozdávání karet.
  • Možnost permanentního zobrazení panelu s kartou.

Historie

3.8.2009 - Verze 1.2 - oprava chyb a přidání několika featur.

13.6.2009 - Verze 1.1 - oprava chyb a přidání několika featur.

23.12.2008 - Přidána možnost hry dvou hráčů na jednom zařízení s definicí, kdo bude začínat. Vylepšení grafiky, debug.

22.12.2008 - Jazykové mutace, další optimalizace kódu, zjednodušení a zrychlení ovládání, vylepšení rozdávání karet, About box.

21.12.2008 - První verze, vytvoření (zatím nikde nezmiňované) webové stránky.

20.12.2008 - Finální úpravy kódu a grafiky, vytvoření úvodní obrazovky, ošetření chyb.

19.12.2008 - Významná optimalizace kódu, import grafických prvků, informační okno karty.

18.12.2008 - Umělá inteligence, rozvržení grafických prvků, zvuky.

17.12.2008 - Základní herní principy, objektový model, XML schéma.

16.12.2008 - Kladná odpověď z Gemtree, obsahující i návod, jak v programu PETR získat komponenty programu. Zahájení prací.

15.12.2008 - Prvotní nápad a kontaktování autorů ve věci použití komponent programu Mravenci v remake hry pro kapesní zařízení Pocket PC.

Modifikace

Pokud máte nápad na vlastní hru na podobném principu (nebo se vám třeba nelíbí grafika Mravenců), stačí si pouze obstarat karty, pozadí a zvuky, vytvořit definiční XML soubor a již můžete začít hrát. Karty jsou standardně obrázky ve formátu PNG o rozměrech 58×90 pixelů. Pozadí je obrázek JPEG (bg.jpg), přičemž rozměry nejsou důležité a přizpůsobují se velikosti okna - stejně jako title a intro (výchozí velikost je 240×270 pixelů).

Každá karta je definována svým "id" (na které se váže obrázek, doporučuji pouze malá písmena a-z), "title" (textový popisek), "level" (jak snadné bude kartu obdržet, 1 = lame, 3 = wow), dále kolik surovin karta stojí (res1c, res2c, res3c) a co za to bude (def1+ zvýší vaši zeď, tgt2- sníží protivníkův hrad, lab11+ přidá jednoho stavitele, res32- sniží krystaly protivníka apod. Posledním parametrem karty je "sound", což je WAV zvuk, který se přehraje při vynesení karty (bez přípony). Ideální kartou na studium definic vlastností karet je Kletba :)

Debug

Behind the Scenes

Dlouho jsem na svém PDA neměl žádné hry. Pak jsem si řekl, že už to dál nejde a tak prolezl všechny možné servery, nabízející bezplatné programy. Protože jsem tou dobou krátil čas nad hrou Mravenci, napadlo mě najít něco podobného pro PPC. Ale ani Eleworia, ani Beton Bar (který z ní vychází) mi nesedl. Mravenci jsou prostě Mravenci, karty znám, vím co s nimi a mám svou určitou strategii.

Protože mám zkušenosti s vývoje programů v .NET Compact Framework 2.0 v jazyce C#, neváhal jsem ani chvíli a okamžitě kontaktoval autory původní hry (Gemtree Software) a požádal je o svolení k použití obrázků, zvuků apod. z jejich hry Mravenci, na které demonstrují schopnosti svého programovacího nástroje PETR.

Hned druhý den jsem dostal kladnou odpověď, která navíc obsahovala i návod, jak si ze hry komponenety vyextrahovat. Stáhl jsem program PETR Lite a přemýšlel, jak získat "projekt" Mravenců, když na webu existuje pouze spustitelný EXE soubor. V nabídce programu byla možnost otevřít ukázkový projekt, který ale ve skutečnosti byl pouze EXE soubor. Zkusil jsem tedy v PETRovi otevít mravenci.exe a ejhle, zdrojová data byla na světě. To mě velmi mile překvapilo, člověk se tím pádem nemusí zalamovat se zdrojovými kódy.

Podle návodu jsem z Mravenců vyextrahoval obrázky, zvuky a texty. Zjistil jsem, že každá karta se skládá ze tří částí - pozadí (modré, zelené, červené), grafické reprezentace a textového popisu (CZ/EN). Vytvořil jsem tedy skupiny obrázků, ze kterých jsem pospojoval výsledné karty.

Během toho jsem již v programovacím nástroji Sharp Develop vytvořil základní kostru hry. Snažil jsem se hru napsat co nejobecnější, aby bylo možné změnou definičního XML souboru a grafiky vytvořit novou hru na podobném principu, případě multiplayer na více zařízení spojených pomocí LAN, internetu či Bluetooth apod. Párkrát jsem se vydal slepou uličkou, než jsem vymyslel nejoptimálnější objektový model, čímž jsem ztratil asi tak den vývoje. Samozřejmě základem pro vytvoření AI a následnou optimalizaci načítání dat a práce AI (která hru zrychlila asi tak trojnásobně) bylo vytvoření logovacího systému. Ve finální verzi budou logovány pouze chybová hlášení, takže na PC to bude znamenat log každého spuštění programu, neboť pro zvuky je nutná knihovna CoreDLL.dll.

Za pár dní volnočasového programování již bylo dílko na světě. Zbývalo doladit chybová hlášní, grafiku, přidat skóre a vše důkladně otestovat. Důležité bylo, aby se AI choval přirozeně a racionálně. Rozhoduje se na základě svých karet a do protihráčových karet nevidí. Algoritmus je triviální a tak doufám, že nebude dělat problémy.

Trochu mě potrápila rychlost celé hry, občas se to neskutečně táhne a já nevím proč. Věřím, že generování zašedlých karet na PPC chvíli trvá a tak to dělám průběžně, když je to nutné. Taktéž ostatní náročnější prvky (stahování obrázků do paměti) se snažím řešit ve chvíli, kdy hráč zuřivě nekliká a nepožaduje okamžitě další obrazovku, což bohužel ne vždy bylo možné.

S webovou stránkou jsem se moc nemazal, hlavní je, aby Mravenci PPC měli nějaké internetové útočiště. Nejsem webdesignér, tak případní milovníci milionů barevných odstínů a odlesků prominou, nepovažoval jsem to za nutné.

Kontakt

Dotazy, náměty, připomínky a bugreporty prosím zasílejte na mravenci@qex.cz.
V případě problému přidejte prosím i typ zařízení a operační systém.

Původní Mravenci

Původní Mravenci

Mravenci ve WinXP

Mravenci PPC ve WinXP (1:1)

Infobox karty

Informační okno karty

Mravenci PPC

Mravenci PPC

Mravenci na WM 2003

Mravenci PPC na Windows Mobile 2003

Mravenci na WM 6.1

Mravenci PPC na Windows Mobile 6.1

Vyhrál Počítač

Vyhrál Počítač

Mravenci ve Sharp Develop

Vývojové prostředí hry Mravenci PPC

Mravenci v nástroji PETR

Mravenci v nástroji PETR