Univerzita Pardubice Fakulta Elektrotechniky a Informatiky Návrh
Total Page:16
File Type:pdf, Size:1020Kb
Univerzita Pardubice Fakulta elektrotechniky a informatiky Návrh a realizace 2D herního engine Bc. Petr Martinec Diplomová práce 2019 Prohlašuji: Tuto práci jsem vypracoval samostatně. Veškeré literární prameny a informace, které jsem v práci využil, jsou uvedeny v seznamu použité literatury. Byl jsem seznámen s tím, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorský zákon, zejména se skutečností, že Univerzita Pardubice 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, a s tím, že pokud dojde k užití této práce mnou nebo bude poskytnuta licence o užití jinému subjektu, je Univerzita Pardubice oprávněna ode mne požadovat přiměřený příspěvek na úhradu nákladů, které na vytvoření díla vynaložila, a to podle okolností až do jejich skutečné výše. Beru na vědomí, že v souladu s § 47b zákona č. 111/1998 Sb., o vysokých školách a o změně a doplnění dalších zákonů (zákon o vysokých školách), ve znění pozdějších předpisů, a směrnicí Univerzity Pardubice č. 9/2012, bude práce zveřejněna v Univerzitní knihovně a prostřednic- tvím Digitální knihovny Univerzity Pardubice. V Pardubicích dne Bc. Petr Martinec PODĚKOVÁNÍ Rád bych poděkovat panu Ing. Romanu Divišovi za odborné vedení, trpělivost a ochotu, kterou mi věnoval v průběhu vypracování diplomové práce. Dále bych chtěl poděkovat především Alžbětě Ludínové, rodině a přátelům, kteří při mně celou dobu stáli a podporovali mě. ANOTACE Diplomové práce se zabývá návrhem a realizací herního engine, se kterým bude možné vytvářet 2D hry. V úvodní části bude představen herní průmysl, následovaný teoretickým popisem herního enginu a rešerší dnes dostupných herních enginu. V závěru práce bude popsána realizace praktické části. KLÍČOVÁ SLOVA herní engine, C++, SDL TITLE Design and implementation of 2D game engine. ANNOTATION The thesis is about design and implementation of a game engine which it will be possible to create 2D games. In the introductory part will be introduced the gaming industry, theoretical description of the gaming engine and list of existing game engines used todays. In the final part of the work will be introduce a realization of the practical part. KEYWORDS game engine, C++, SDL OBSAH Seznam obrázků ...................................................................................................................... 10 Seznam tabulek ....................................................................................................................... 11 Seznam zkratek ....................................................................................................................... 12 Úvod ......................................................................................................................................... 13 1 Herní průmysl ................................................................................................................. 14 1.1 Hry ........................................................................................................................ 14 1.2 Herní žánry ........................................................................................................... 14 1.2.1 Karetní .......................................................................................................... 15 1.2.2 Adventury ..................................................................................................... 15 1.2.3 Strategie ........................................................................................................ 15 1.2.4 FPS ................................................................................................................ 16 1.2.5 TPS ................................................................................................................ 16 1.2.6 Sportovní ....................................................................................................... 16 1.2.7 Závodní ......................................................................................................... 16 1.2.8 RPG ............................................................................................................... 17 1.2.9 Simulátory ..................................................................................................... 17 1.2.10 MMO ............................................................................................................ 17 1.3 Kategorizace her ................................................................................................... 18 1.3.1 AAA .............................................................................................................. 18 1.3.2 Indie .............................................................................................................. 18 1.4 Počátky herního průmyslu .................................................................................... 19 1.5 Současná situace ................................................................................................... 20 2 Herní engine .................................................................................................................... 21 2.1 Co je to herní engine ............................................................................................. 21 2.2 Hra a herní engine ................................................................................................. 21 2.3 Vznik prvního herního enginu .............................................................................. 22 2.4 Potřeba existence herního enginu ......................................................................... 22 2.4.1 Zkrácení doby vývoje ................................................................................... 22 2.4.2 Spolupráce .................................................................................................... 23 2.4.3 Kompatibilita zařízení ................................................................................... 23 2.4.4 Přenositelnost mezi platformami .................................................................. 23 3 Komponenty herního enginu ......................................................................................... 25 3.1 Herní smyčka ........................................................................................................ 25 3.2 Simulace fyziky .................................................................................................... 26 3.2.1 Detekce kolize ............................................................................................... 26 3.3 PhysX .................................................................................................................... 26 3.3.1 Box2D ........................................................................................................... 27 3.4 Zvuk ...................................................................................................................... 27 3.4.1 FMOD ........................................................................................................... 27 3.5 Vstupy ................................................................................................................... 28 3.5.1 DirectInput .................................................................................................... 28 3.6 Renderování .......................................................................................................... 28 3.6.1 Grafická API ................................................................................................. 28 3.7 Animace ................................................................................................................ 29 3.7.1 Sprite ............................................................................................................. 30 3.7.2 Skinned ......................................................................................................... 30 3.8 Částicový systém .................................................................................................. 31 3.9 Umělá inteligence ................................................................................................. 32 3.10 Kompilátor ............................................................................................................ 32 3.10.1 Emscripten .................................................................................................... 33 4 Herní enginy na trhu ...................................................................................................... 34 4.1 Unity ..................................................................................................................... 34 4.1.1 Licenční politika ........................................................................................... 35 4.1.2 Hry vytvořené na enginu ............................................................................... 36 4.2 GameMaker .......................................................................................................... 39 4.2.1 Licenční politika ........................................................................................... 40 4.2.2 Hry vytvořené na enginu ............................................................................... 41 4.3 Unreal Engine ....................................................................................................... 44 4.3.1 Licenční politika ..........................................................................................