Gymnázium, Praha 6, Arabská 16 předmět Programování, vyučující Tomáš Obdržálek. Napking 87



Podobné dokumenty
Gymnázium, Praha 6, Arabská 16 předmět Programování, vyučující Tomáš Obdržálek Šibenice ročníkový projekt Tadeáš Váša, 1E květen 2014

Gymnázium, Praha 6, Arabská 14. předmět Programování, vyučující Tomáš Obdržálek. Počítačová hra Fotbalový Manažer. ročníkový projekt.

Piškvorky. Gymnázium, Praha 6, Arabská 16. Kristofer Filip, 1.E. Květen Stránka 1. předmět programování, vyučující Tomáš Obdržálek

Mobilní hra Block Runner ročníkový projekt David Novák, 1.E květen 2014

HERNÍ ENGINE PRO TVORBU DIDAKTICKÝCH HER VE FLASHI

Gymnázium, Praha 6, Arabská 14. předmět Programování, vyučující Tomáš Obdržálek. Program pro kontrolu správného vývoje dítěte.

4 Microsoft Windows XP Jednoduše

ČÁST 1. Základy 32bitového programování ve Windows

Vědomostní test. Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek

Gymnázium, Praha 6, Arabská 16 Předmět Programování, vyučující Tomáš Obdržálek Hledání Min Ročníkový projekt Filip Mašát, 1.

Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu... 23

Programové vybavení počítačů operační systémy

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Gymnázium, Praha 6, Arabská 16. předmět Programování, vyučující Tomáš Obdržálek Lodě Dokumentace ročníkového projektu Martin Karlík, 1E 17.5.

Před instalací 25 Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu...

Gymnázium, Praha 6, Arabská 14. Loydova patnáctka. Dokumentace ročníkového projektu. Předmět: Programování Vyučující: Ing. Tomáš Obdržálek Třída: 1.

Matematika. Gymnázium, Praha 6, Arabská 16. předmět Programování, vyučující Tomáš Obdržálek. dokumentace ročníkového projektu.

Windows 8.1 (5. třída)

Úvodem... 9 Kapitola 1 Karetních

Reliance 3 design OBSAH

NÁVOD NA INSTALACI KARTY PCTV DELUXE

Návod k použití aplikace Reliview

Windows 10 (5. třída)

Použití prezentací. K heslovitému sdělení informací. Oživení obrázky, schématy, tabulkami, Nevhodné pro dlouhé texty. Doprovodná pomůcka při výkladu

Satori. Uživatelský manuál

Vytváření DVD s DVDStyler

Podpora skriptování v Audacity

Archive Player Divar Series. Návod k obsluze

Informační systém ViSl

NÁVOD NA INSTALACI KARTY PCTV USB2

4.6 Zpracování videa na počítači

Simluátor Trilobota. (projekt do předmětu ROB)

Martin Heni Eugene Trounev Kontrolor: Mike McBride

Specifikace projektu Ocerus

Část 1 - Začínáme. Instalace

PowerPoint lekce II.

Co je nového v aplikaci PaperPort 12?

František Hudek. červen ročník

Instalace programu ProVIS

Steam. 1. Klienta STEAM stáhnete zde: kliknutím na tlačítko (Nainstalovat službu Steam).

Obsah Anotace :... 1 Anotation 2

Univerzální rezervační systém. Uživatelská příručka

Software programové vybavení. 1. část

Příručka Vzdělávacího střediska Konero ke kurzu Milan Myšák

Obslužný software. PAP ISO 9001

VetSoftware.eu V2 Návod pro instalaci vzdálené pomoci verze dokumentu 1.0,

Ukázka knihy z internetového knihkupectví

MS POWERPOINT. MS PowerPoint

MS Excel makra a VBA

Instalace a první spuštění programu.

Na základě Business Targets autora Simona Greenalla, vydaných nakladatelstvím Macmillan Heinemann English Language Teaching (Oxford).

Nápověda k aplikaci EA Script Engine

Příručka aplikace KNetWalk. Fela Winkelmolen Eugene Trounev

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Velký křízovkářský slovník 4.0 (VKS) Instalace programu

Instalace souborů VHOPE a souborů knihovny VHOPE

Návod na instalaci a použití programu

1. Obsah 2. Úvod Zdarma poštovní klient od společnosti Microsoft přímo v PC

MS PowerPoint ZÁKLADY

Tento dokument popisuje instalaci a používání elektronické cvičebnice Styx.

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

1. Začínáme s FrontPage

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Gymnázium Ostrava Hrabůvka, příspěvková organizace Františka Hajdy 34, Ostrava Hrabůvka

2.1.2 V následujícím dialogovém okně zvolte Instalovat ze seznamu či daného umístění. stiskněte tlačítko Další

T-Mobile Internet. Manager. pro Mac OS X NÁVOD PRO UŽIVATELE

Osnova. Koncept a použití prezentací. Seznámení s pracovním prostředím MS Word Režimy zobrazení. Užitečná nastavení. Základní práce s dokumenty

Instalace programu OZO. z www stránek či odkazu z u

NÁVOD K POUŽITÍ. IP kamerový systém.

Doporučené nastavení prohlížeče MS Internet Explorer 7 a vyšší pro Max Homebanking PS s využitím čipové karty

CommonTestsAndGames03

Jak programovat Tinykeyer?

MS OFFICE, POWERPOINT

Příručka pro aplikaci KSnapshot

3D sledování pozice vojáka v zastavěném prostoru a budově

aneb velice zjednodušené vysvětlení základních funkcí a možností systému Vypracoval: Tomáš Dluhoš tomas.d@centrum.cz

HERNÍ PLÁN MAD MECHANIC APOLLO GAMES APKSOFT s.r.o.

Prozkoumání příkazů na pásu karet Každá karta na pásu karet obsahuje skupiny a každá skupina obsahuje sadu souvisejících příkazů.

SOFTWARE - programové vybavení počítače (nemůžeme si na něj sáhnout) Bez SW nemůže PC fungovat. Schéma počítače:

CUZAK. Instalační příručka. Verze

Návod pro řešení typických problémů se stabilitou AMČR

Práce s velkými sestavami

Základy práce na PC. Ing. Jan Roubíček

Wonderware InTouch 2012 R2 Co je nového

Závěrečná práce. AutoCAD Inventor (Zadání D1)

Práce se soubory a složkami

4x standardní vstupy

Herní engine. Co je Engine Hotové enginy Jemný úvod do game designu

Windows 7 instalace krok za krokem

Elektronický formulář

T-Mobile Internet. Manager. pro Windows NÁVOD PRO UŽIVATELE

CYCLOPE PRINT MANAGEMENT SOFTWARE- UŽIVATELSKÁ PŘÍRUČKA

[BAL-MLP] Multiplayer

Územní plán Ústí nad Labem

Microsoft Office PowerPoint 2003

A4300BDL. Ref: JC

Kapitola 1: Úvod. 1.1 Obsah balení. 1.2 Požadavky na systém. Česky

Uživatelský manuál. XMEye aplikace pro zválený dohled. 1/14

PowerPoint Kurz 1. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/

Transkript:

Gymnázium, Praha 6, Arabská 16 předmět Programování, vyučující Tomáš Obdržálek Napking 87 Dokumentace ročníkového projektu Michal Manda, 1. E květen 2014 Anotace Napking 87 je hra, kde se hráč snaží získat titul mistra světa ve šlofíkování. Docílí toho pomocí spánku, plnění úkolů a nákupu lepších předmětů. Spánek probíhá v reálném čase. Hra je také plně rozšiřitelná, což znamená, že si uživatel muže vytvářet vlastní herní obsah dle libosti bez jakýchkoliv omezení. Hra je vytvořena pomocí herního enginu KuubEngine a využívá grafický systém oken pro navigaci ve hře. Abstract Napking 87 is a game, where you try to be the world champion in napping. You'll achieve this by sleeping, doing quests and by buying better items. The napping is done in real-time. The game is also fully extensible, meaning that the user can create his/her own game content without any restrictions. It is created using game engine KuubEngine and is using graphical window system for navigation in the game. Prohlášení Prohlašuji, že jsem jediným autorem tohoto projektu, všechny citace jsou řádně označené a všechna použitá literatura a další zdroje jsou v práci uvedené. Tímto dle zákona 121/2000 Sb. (tzv. Autorský zákon) ve znění pozdějších předpisů uděluji bezúplatně škole Gymnázium, Praha 6, Arabská 14 oprávnění k výkonu práva na rozmnožování díla ( 13) a práva na sdělování díla veřejnosti ( 18) na dobu časově neomezenou a bez omezení územního rozsahu. V Praze, dne 10. 6. 2014 1

Obsah Anotace... 1 Abstract... 1 Prohlášení... 1 Zadání... 3 Cíl projektu... 3 Řešení projektu... 3 Grafika... 3 Hudba... 3 Intro + Animace... 4 Ovládání... 4 Modifikace... 4 Klíčové částí... 5 Diagram tříd... 5 GuiWindow + Okna... 5 Stavy... 6 NapManager... 6 MainState... 6 Hráč + Lua... 6 Ostatní... 6 Modifikace... 6 Závěr... 8 Další rozvoj... 8 Zkušenosti... 8 Návod na instalaci, spuštění a hraní... 8 Minimální systémové požadavky... 8 Potřebné knihovny / balíky... 8 Windows... 8 Linux... 8 Spuštění... 9 Ovládání... 9 Speciální poděkování... 9 2

Zadání NapKing 87 Michal Manda 1. E Hra o tom stát se mistrem světa ve šlofíkování (šlofíčkování?). Typ hry bude Idle, což znamená, že se ve hře nebude dít moc věcí. Vyžaduje minimální aktivitu od uživatele, takže je vhodná do práce nebo při sledováni videí, avšak cílem je i přes to vytvořit zábavnou hru. 2D OpenGL grafika textury, žádné modely Adventurové ovládání Dialogová okna + objekty na obrazovce OpenTK -> KuubEngine Mono > Linux + Windows Systém vylepšování postavy Bonusové body: Lepší grafika Animace Mac verze Integrace skriptovacího jazyka Lua -> Modifikace? Cíl projektu Cílem mého projektu bylo vytvořit nenáročnou hru pro občasné hráče, která nezabírá moc času. Ovládání jsem se nažil vytvořit jednoduché a přehledné. Po stránce příběhové jsem se nažil věci zpracovat spíše vtipně a obecně celá zápletka je lehce absurdní. Vedlejší cíl mého projektu bylo vyzkoušet všechny nové technologie v našem herním enginu. Řešení projektu V mém projektu bylo několik zásadních překážek. Dokázal jsem většinu vyřešit, avšak ne všechny. Grafika Mým prvním problémem byla zřejmě grafika. Naštěstí mi s tímto problém pomohl někdo z internetu a následně jsem si náhodně vygeneroval podle základní, červené, postele další a podobně jsem tento proces opakoval i s ostatními předměty. Tento generační algoritmus však není v mé ročníkově práci. Hudba Moje hra obsahuje minimum hudby, ale jeden 30 vteřinový úsek s hudbou tam je (konkrétně v intru). Hudbu jsem generoval algoritmem z internetu, který byl původně vytvořen pro účastníky Ludum Dare. Tudíž je volně použivatelný a mohu jím vytvořenou hudbu volně šířit. Také jsem uvažoval o přidání hudby do více částí hry, ale shledal jsem, že by to bylo po zhruba čtvrt hodině 3

hraní silně otravné a hráč by již nemohl dělat ostatní věci v pozadí, aniž by si musel před tím hru ztlumit. Intro + Animace Bohužel tuto překážku jsem kvůli nedostatku svého uměleckého nadání nepřekonal. Není v mých možnostech vytvořit slušně vypadající animaci a grafik odmítal pracovat na něčem takto velkém. Druhým problémem byla limitace enginu. Využíváme systém pro správu oken GWEN a používáme OpenTK (wrapper pro OpenGL) jako renderer. Přestože by neměl být problém vykreslit video s OpenGL, tak nevím jak se s OpenGL zachází. Dalším problémem je že bych si musel video parsovat sám a videa používají složitou kompresi a ještě je tam k tomu zvuk. Mohl bych použít nějakou knihovnu, jako například Bink, ale tyto technologie stojí peníze a já nemám prostředky na to, abych mohl takovéto technologie využívat. Ovládání Ovládání hry bylo zásadní otázkou, protože jsem se snažil nedělat složité nabídky. Zezačátku jsem měl v plánu udělat ovládání pomocí obrázků. Následně by hráč klikal na objekty na obrázcích. Například kliknutí na postel by otevřelo menu na spánek. Avšak tato možnost byla grafický více náročná a hra se občas stávala nepřehlednou. Od tohoto nápadu jsem proto opustil a rozhodl jsem se začít používat okna. Výhodou je že hráč si může okna přesouvat volně po herní ploše a uspořádat si je akorát tak, jak potřebuje. Modifikace Od začátku projektu jsem chtěl, aby byla moje hra plně modifikovatelná, bez potřeby umět programovat. Je pravda, že pro vytvoření úkolů je potřeba znalosti skriptovací jazyku Lua, ale ten není těžký se naučit. Já osobně jsem se základy například naučil za pouhý jeden den. Hráč si muže bez problému vytvářet vlastní předměty a úkoly pomocí XML souborů se značkami. Není potřeba žádný speciální editor a na svých stránkách mám návody pro začátečníky, které pochopí snad každý. 4

Klíčové částí Diagram tříd GuiWindow + Okna Okna jsou bezpochyby nejklíčovější částí mé hry. Jak můžete na diagramu vidět, je jedna hlavní abstraktní třída GuiWindow od které se odvíjejí všechna ostatní okna. Tato třída poskytuje metody jako přepínání mezi skrytím a zobrazením, referenci na hlavní třídu a instanci herního okna, na které se dále přidávají další komponenty (tlačítka, text, nabídky). Také jsem přidal metodu Update, která se vykoná při každé aktualizaci hry (zhruba 60x za vteřinu). Poslední důležitou částí je metoda LoadLanguage, která v případě změny herního jazyka nebo potřeby aktualizace textu znovu načte text všech komponentů v daném okně. Speciálními příklady jsou třídy ItemBox a QuestBox. Tyto třídy nevyužívají okna, ale jsou pouze "shlukem" komponentů. Ty jsou přidané do GroupBoxu, který umožňuje spojit více objektů a manipulovat s nimi jako s jedním objektem. Tyto třídy jako jediné používám více než jednou. Jak jíž z názvu vyplívá tak udávají jisté informace o předmětu nebo úkolu (například cena, název, nebo cíl úkolu). 5

Zde vidíte ukázku těchto dvou tříd. Jak můžete vidět, nemají okno. Stavy Hra se rozděluje na 2 současně běžící stavy. NapManager a MainState. NapManager NapManager se stará o časování šlofíku a posílá event v případě dokončení nebo přerušení šlofíku. Proto se zde také vyskytuje delegát NapEvent, který určuje jaké argumenty a výstupní typy musí mít všechny metody, které naslouchají NapEvent. MainState Zde se děje většina herních mechanik. Tento stav zpravuje všechny okna. V případě nutnosti je zde metoda, která aktualizuje všechen text ve všech oknech, která se používá například při změně herního jazyka. Z této třídy se také volají všechny metody Update. V této třídě se nachází i metoda Wipe, která umožňuje hráči začít s novou uloženou pozicí. Hráč + Lua Třídy Player a LuaHelper patří k sobě. Player obsahuje všechny informace o hráči, jako například jeho peníze, příjem, předměty a další. LuaHelper mapuje tyto proměnné do skriptovacího jazyku Lua pro použití v úkolech. Ostatní Následně tu máme třídy pro předmět, obsahující například název, cenu a výdrž a pro úkol, obsahující například podmínku pro splnění, popis nebo odměnu. Také tu jsou třídy Main a Program, které se využívají jen při spuštění programu a prvotní načtení hry. A jako poslední je zde MessageBox, což je pomocná třída umožňující mi vytvořit jednoduchá dialogová okna bez nutnosti kopírování kódu. Modifikace Každý nový předmět, úkol nebo překlad je ve formě XML souboru se značkami. 6

Zde vidíme, jak vypadá XML soubor pro předmět. Z názvu značek je patrné co každá znamená. Pokud si hráč chce vytvořit předmět vlastní, stačí tuto strukturu zkopírovat, upravit a následně soubor uložit do adresáře s hrou. To samé platí pro úkoly, které mimo jiné využívají skripty (viz. Spodní obrázek). Skript má 3 funkce, kde 1. se volá při přijmutí úkolu, 2. kontroluje splnění úkolu a poslední se zavolá při splnění. Je také možno si vytvářet vlastní překlady. Stačí si zkopírovat jakýkoliv stávající jazyk a upravit text ve značkách. 7

Závěr Myslím si, že se mi podařilo více či méně úspěšně splnit zadání a dokonce jsem splnil i některé vedlejší úkoly. Také jsem otestoval funkci herního enginu. Většinu překážek se mi podařilo úspěšně překonat. Bohužel jsem nestihl vytvořit dostatek herního obsahu, takže je čistě na komunitě a na hráčích další průběh a vývoj hry. Avšak není problém další obsah přidat. Další informace můžete nalézt na stránkách http://virusek20.kuubstduios.com, kde můžete nalézt návody pro modifikace, screenshoty a něco o hře (pouze v Anglickém jazyce). Další rozvoj Rozhodně plánuji tuto hru rozvíjet i nadále. Mám v plánu přidat více herního obsahu a mód pro vývojáře. Tento mód umožní hráči vytvářet vlastní předmět rovnou ze hry bez nutnosti úpravy XML souborů. Také se mu naskytne živý náhled ze hry, takže může posoudit, zdali není například popis úkolu moc dlouhý, nebo jestli se ikona předmětu zobrazuje správně. Další funkcí, kterou mám v plánu je nahlašování chyb přes internet, ale bohužel tato funkce je úzce spjata s herním enginem a tuto funkci nemohu přidat do té doby, než to bude technicky možné v enginu. Sdílení modifikací přímo ze hry je také plánováno, ale vůbec to není jisté. Zkušenosti Z tohoto projektu jsem se naučil více, než jsem očekával. Hlavním přínosem bylo se naučit spravovat větší projekt. Většinou jsem se ve svých dřívějších projektech lehce ztrácel. Také jsem se naučil jak udělat přehlednou aplikaci bez nutnosti konzole nebo podobných oken. Akorát lituji, že jsem se nedostal k systémům jako je Git, Mercury nebo SVN. Návod na instalaci, spuštění a hraní Minimální systémové požadavky Operační systém: Windows XP a vyšší, Linux s grafickým prostředím Místo na disku: 16 MB (záleží na modifikacích) RAM: 128 MB Procesor: 1 jádrový procesor x86 Grafická karta: Karta podporující OpenGL 2.0 Potřebné knihovny / balíky Všechny dynamické knihovny jsou obsaženy s hrou. Jediné co potřebujete mít nainstalované je: Windows Je potřeba mít nainstalovaný.net Runtime 4.0 a ovladače na grafickou kartu. Je také potřeba mít nainstalovaný program Visual C++ Redistributable 2012. Linux Je potřeba mít nainstalovaný balík Mono Runtime, grafické ovladače. Bohužel máme problémy se zvukovými knihovnami a verze pro Linux bude mít zřejmě zpoždění. Pokud chcete, můžete využít programů jako je Wine, nebo virtuální systém. 8

Spuštění 2x poklepejte na spustitelný soubor Napking87.exe. Hra by se měla spustit a mělo by se zobrazit intro. Ovládání Ovládání je zprostředkováno pouze pomocí oken s tlačítky a dalšími komponenty. V případě, že nevíte co dělat, můžete zkontrolovat nápovědu, která se nachází v hlavním menu, kde si můžete vybrat, o jaké části hry se chcete dozvědět více. Speciální poděkování Chtěl bych poděkovat mému kamarádovi Petrovi Bauerovi, za to, že mi pomohl s grafikou intra, předmětů, za jeho konstruktivní kritiku a nápady do hry. Dále bych také rád poděkoval Wisse Aartsovi, za společný vývoj KuubEnginu. 9