Framework Pro Strategické Webové Hry
Total Page:16
File Type:pdf, Size:1020Kb
Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Jan Pešek Framework pro strategické webové hry Katedra softwarového inženýrství Vedoucí bakalářské práce: Mgr. Miroslav Čermák Studijní program: Informatika Studijní obor: Obecná informatika Praha 2013 Rád bych zde poděkoval svému vedoucímu ročníkového projektu a bakalářské práce Mgr. Miroslavu Čermákovi, za jeho podporu, připomínky, odborné rady a vstřícný přístup během zpracování této práce. Dále bych chtěl poděkovat mému příteli Petru Šiškovi za vytvoření ilustrací pro vzorovou hru. Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně a výhradně s použitím citovaných pramenů, literatury a dalších odborných zdrojů. 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 v platném znění, zejména skutečnost, že Univerzita Karlova 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 ............ Jan Pešek Název práce: Framework pro strategické webové hry Autor: Jan Pešek Katedra: Katedra softwarového inženýrství MFF UK Vedoucí bakalářské práce: Mgr. Miroslav Čermák, Katedra softwarového inženýr- ství MFF UK Abstrakt: Tato bakalářská práce popisuje softwarový projekt, který umožňuje tvorbu internetových tahových her v internetovém prohlížeči s důrazem na upra- vitelnost, tzv. framework. Výsledná aplikace umožňuje snadnou tvorbu tahové hry pro dva hráče, a poskytuje mechanismy pro pokročilou konfiguraci prostřed- nictvím modulů naprogramovaných uživatelem. Součástí projektu je vzorová hra s předdefinovanými daty, ukázkovými moduly a grafickou úpravou. V práci jsou zhodnoceny současné technologie použitelné pro vývoj interaktivních interneto- vých aplikací a diskutovány některé klíčové problémy, na které se při vývoji apli- kace naráží. Dále je v textu popis implementace celého projektu, zejména struk- tura aplikace a databázový a objektový návrh. V práci je dále dokumentace k programu zahrnující názorný návod pro tvorbu vlastních modulů. Klíčová slova: PHP, framework, webová strategie Title: Framework for internet strategy & heroes Author: Jan Pešek Department: Department of Software Engineering, Charles University in Prague Supervisor: Miroslav Čermák, M.Sc., Department of Software Engineering, Char- les University in Prague Abstract: This bachelor’s thesis describes a software project framework that ena- bles the user to create an online turn-based game inside an internet browser, focusing on customizability. The framework allows the user to create a game for two players and enables him to implement advanced configuration of the game by programming additional modules. Part of the project is a model game with predefined data, example modules and graphic representation. The text contains an evaluation of current available technologies usable for developing interactive online applications, along with discussion of some key problems that show up during developing such application. The text includes description of project im- plementation, the structure of the application, database and object design and application documentation with a manual for creating customized modules. Keywords: PHP, framework, web strategy Obsah Úvod 4 0.1 Strukturapráce ............................ 4 1 Analýza projektu 6 1.1 Cílprojektu.............................. 6 1.2 Existujícíprojekty .......................... 7 1.2.1 Modulargaming ....................... 7 1.2.2 NowhereEngine........................ 7 1.2.3 DotKwebengine ....................... 8 1.2.4 NewWorldsEngine...................... 8 1.2.5 Shrnutí ............................ 8 1.3 Volbatechnologií ........................... 9 1.3.1 Kritériavolby ......................... 10 1.3.2 Programovacíjazyk. 11 1.3.3 Databáze ........................... 13 1.3.4 PhPFramework........................ 14 1.3.5 Uživatelskérozhraní . 16 1.4 Klíčovéproblémy ........................... 17 1.4.1 Členěníaplikace. .. .. 17 1.4.2 Komunikace klient-server . 17 1.4.3 Načítání přídavných modulů . 23 1.4.4 Zobrazeníbitevníplochy . 24 1.4.5 Viditelnost vnitřních proměnných v objektovém návrhu.. 26 1.4.6 Hledánínejkratšícesty . 27 2 Struktura aplikace 28 2.1 Entityframeworku .......................... 28 2.1.1 Struktura dle funkčních částí . 29 2.1.2 Struktura dle použitých technologií . 31 2.1.3 Struktura dle objektového návrhu . 31 1 3 Implementace 32 3.1 Databázovýmodel .......................... 32 3.1.1 Procedury ........................... 36 3.2 Objektovýmodel ........................... 37 3.2.1 Třídy poskytované frameworkem Yii . 38 3.2.2 User .............................. 38 3.2.3 Battle ............................. 39 3.2.4 Army ............................. 40 3.2.5 Unit .............................. 41 3.2.6 Hero .............................. 45 3.2.7 Weapon, Armor, Formation, Race, UnitType, School . 46 3.2.8 Schopnostihrdiny. 47 3.2.9 Ostatnítřídy ......................... 48 3.3 Zobrazovacívrstvaaplikace . 49 3.3.1 Uživatelskérozhraníbitvy . 49 3.3.2 Uživatelské rozhraní správní části hry . 52 3.4 Komunikacevreálnémčase . 52 3.4.1 Frontačinností ........................ 53 4 Administrátorská dokumentace 54 4.1 Instalace................................ 54 4.2 Konfigurace .............................. 55 4.3 Programátorskéúpravy. 55 4.3.1 Načítánívlastnítřídy. 55 4.3.2 Tvorbavlastníjednotky . 56 4.3.3 Tvorba vlastní hrdinovy schopnosti . 57 4.3.4 Tvorba vlastního zvláštního výcviku . 59 4.3.5 Úpravahrdiny......................... 59 4.4 Používánísystémuzpráv . 62 4.5 Přidání dalších událostí pro schopnosti či zvláštní výcviky .... 63 5 Herní dokumentace 65 5.1 Správa uživatelského účtu . 65 2 5.2 Správaarmády ............................ 65 5.3 Správabitvy.............................. 67 5.4 Bitva.................................. 68 6 Obsah přiloženého DVD 71 6.1 Virtuálnístroj............................. 71 Závěr 73 Literatura 75 3 Úvod Význam internetových aplikací stále roste - mnoho desktopového softwaru se pře- souvá do podoby internetových aplikací běžících pouze ve webovém prohlížeči. Software on-line představuje pro uživatele nemalé výhody, především možnost rychlého spuštění bez jakékoli instalace a přístup k aplikaci z libovolného za- řízení. Jak se zvětšuje počet online aplikací, zvyšuje se i kvalita webových prohlížečů a tím se opět zvyšují možnosti pro vývoj těchto aplikací. Z těchto důvodů jsem si zvolil jako téma této práce vývoj online herního frameworku pro tvorbu strategických tahových her pro dva hráče. Framework pro tvorbu her jsem zvolil jednak z důvodu pokrytí širokého spektra problémů, na něž se při vývoji internetové aplikace dá narazit (především problémy komunikace server-klient a klient-klient), a jednak z důvodu mé osobní náklonnosti k tomuto tématu. Cílem práce je analýza možností vývoje on-line herního frameworku a jeho návrh, následná implementace a tvorba ukázkové hry. V práci jsou diskutovány klíčové problémy, na něž se při vývoji herního frameworku naráží, a porovnávána možná řešení. Nejlépe vyhovující řešení těchto problémů jsou pak implementována do navrženého frameworku a implementace je popsána podrobněji. Výsledný framework musí především poskytovat možnost snadné tvorby vlast- ní hry. Požadavkem je rovněž rozšiřitelnost, aby se hra postavená nad framewor- kem dala libovolně měnit. 0.1 Struktura práce Práce začíná v 1. kapitole analýzou problému. Stanovuje cíl projektu a předsta- vuje ostatní obdobné projekty, obsahuje porovnání možných použitelných tech- nologií a popisuje klíčové problémy, na něž se při návrhu projektu naráží. Druhá kapitola popisuje strukturu aplikace a navrhuje možné členění z růz- ných pohledů. Ve třetí kapitole se nachází popis konkrétní implementace zahrnující návrh databáze s popisem všech tabulek a procedur a objektový model popisující nej- 4 důležitější třídy návrhu. Kapitola dále představuje základní rysy implementace zobrazovací vrstvy aplikace a nakonec představuje řešení komunikace v reálném čase. Čtvrtá kapitola prezentuje programátorskou dokumentaci frameworku, po- pisující jednak instalaci a konfiguraci hry, a jednak na konkrétních příkladech ukazuje, jak upravovat některé herní entity a herní mechanismy samotné. V páté kapitole se nachází uživatelská dokumentace vzorové implementované hry, vysvětlující, jak začít hrát. Šestá kapitola popisuje obsah přiloženého DVD. V závěru je zhodnocení celé práce s naznačením možností dalšího rozvoje. 5 1. Analýza projektu Tato kapitola je zaměřena na vytyčení konkrétního cíle projektu, zhodnocení obdobných projektů, představení možných technologií a jejich vlastností a diskuse klíčových problémů, jež se při tvorbě herního frameworku vyskytují. 1.1 Cíl projektu Jak již bylo řečeno v úvodu, cílem této práce je vytvořit framework pro tvor- bu webových tahových her, v nichž dochází ke střetu dvou hráčů prostřednic- tvím konfigurovatelných armád. Principem takové hry je střet dvou protihráčů prostřednictvím jejich armád. Framework definuje základní entity hry - armá- du, jednotku, bitvu, hrdinu. Poskytuje mechanismy pro interakci těchto objektů a možnost jejich úprav. Důležitými cíly frameworku jsou rovněž jeho upravitel- nost a rozšiřitelnost. Upravitelnost probíhá jednak na úrovni změny dat - tedy při konfiguraci hry se do databáze nahrají jiné texty a hodnoty, na stanovená místa na serveru obrázky. Další úrovní upravitelnosti je pak programování nových funkcí - speciál- ních jednotek či schopností, jež spočívá ve vytvoření nové třídy pro tento prvek, a následně