Download - Pocítacové hry - Herní engine
![Page 1: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/1.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Počítačové hryHerní engine
1 / 39
![Page 2: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/2.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Obsah přednášky
I Co je „EngineÿI Herní smyčkaI Struktura enginuI Hotové enginy
2 / 39
![Page 3: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/3.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Literatura a odkazy
I http://gpwiki.org/index.php/Game Engines
I http://en.wikipedia.org/wiki/Game engine
I http://www.devmaster.net/engines/
I Dalmau. Core Techniques and Algorithms in Game Programming. 2003
I Zerbst, Duvel. 3D Game Engine Programming. 2004
I Harbour. Game Programming All in One (2nd Edition). 2004
I Eberly. 3D Game Engine Architecture: Engineering Real-Time Applications with
Wild Magic. 2004
3 / 39
![Page 4: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/4.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
”It is a mistake to think you can solve any major problemsjust with potatoes.”
-Douglas Adams
4 / 39
![Page 5: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/5.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Co je engine?
I Je jádro interaktivní aplikaceI Má za úkol odstínit programátora-uživatele od systémových záležitostí
I poskytuje základní metodyI inicializaceI nahrání datI . . .I ukončení
I Ulehčuje vývoj hryI možnost znovuvyužití velkých kusů kódu
I v ideálním případě „pouzeÿ změna datI přechod na jinou platformu
5 / 39
![Page 6: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/6.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Co všechno engine nabízí?
I Záleží na kvalitě enginuI grafika 2D, 3DI fyzika a kolizeI zvukI vstupy/výstupyI skriptováníI animaceI umělá inteligenceI síťové záležitostiI správa pamětiI reprezentace světa (scene graph)I správa souborůI GUI
6 / 39
![Page 7: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/7.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aplikace v reálném čase
I Hry jsou časově závislé aplikaceI modul pro simulaci virtuálního světa
I AII fyzikaI . . .
I prezentační modulI vstupní modul
I pro zjednodušení jen 3 - update světa a prezentace, vstupI Každý z modulů je časově omezen
I co si s tím počít?
I Všechny moduly běží současněI jak to ale zařídit?
7 / 39
![Page 8: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/8.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aplikace v reálném čase
I Hry jsou časově závislé aplikaceI modul pro simulaci virtuálního světa
I AII fyzikaI . . .
I prezentační modulI vstupní modul
I pro zjednodušení jen 3 - update světa a prezentace, vstupI Každý z modulů je časově omezen
I co si s tím počít?I Všechny moduly běží současně
I jak to ale zařídit?
7 / 39
![Page 9: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/9.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus první – jednoduchá smyčka
I Jednoduchá smyčkaI update, pak prezentaceI oba moduly mají stejnou váhu
while(!end){Input()Update ()Presentation ()
}
I VýhodyI jednoduchost
I ProblémyI závislost na výkonu systému
I na rychlém stroji nehratelnéI na pomalém taky
Update
Vstupy
Prezentace
8 / 39
![Page 10: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/10.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus první – jednoduchá smyčka
I Jednoduchá smyčkaI update, pak prezentaceI oba moduly mají stejnou váhu
while(!end){Input()Update ()Presentation ()
}
I VýhodyI jednoduchost
I ProblémyI závislost na výkonu systému
I na rychlém stroji nehratelnéI na pomalém taky
Update
Vstupy
Prezentace
8 / 39
![Page 11: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/11.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus první – jednoduchá smyčka
I Jednoduchá smyčkaI update, pak prezentaceI oba moduly mají stejnou váhu
while(!end){Input()Update ()Presentation ()
}
I VýhodyI jednoduchost
I ProblémyI závislost na výkonu systému
I na rychlém stroji nehratelnéI na pomalém taky
Update
Vstupy
Prezentace
8 / 39
![Page 12: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/12.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus druhý – konstantní rychlost hry a závislé FPS
I Konstantní rychlost hryI update, pak prezentaceI pokud zbývá čas, čeká se
while(!end){Input()Update ()Presentation ()nextTime += 1000/ FPSsleepTime = nextTime - currTime;Sleep(sleepTime );
}
I VýhodyI jednoduchost
I ProblémyI na rychlém stroji čekáI na pomalém stroji nestíhá
Update
Vstupy
Prezentace
Sync
9 / 39
![Page 13: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/13.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus druhý – konstantní rychlost hry a závislé FPS
I Konstantní rychlost hryI update, pak prezentaceI pokud zbývá čas, čeká se
while(!end){Input()Update ()Presentation ()nextTime += 1000/ FPSsleepTime = nextTime - currTime;Sleep(sleepTime );
}
I VýhodyI jednoduchost
I ProblémyI na rychlém stroji čekáI na pomalém stroji nestíhá
Update
Vstupy
Prezentace
Sync
9 / 39
![Page 14: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/14.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus druhý – konstantní rychlost hry a závislé FPS
I Konstantní rychlost hryI update, pak prezentaceI pokud zbývá čas, čeká se
while(!end){Input()Update ()Presentation ()nextTime += 1000/ FPSsleepTime = nextTime - currTime;Sleep(sleepTime );
}
I VýhodyI jednoduchost
I ProblémyI na rychlém stroji čekáI na pomalém stroji nestíhá
Update
Vstupy
Prezentace
Sync
9 / 39
![Page 15: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/15.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus třetí – proměnné FPS a závislá rychlost hry
I Maximální rychlost diktovaná kreslenímI počítá se čas od posledního snímku
while(!end){prevTime=currTimecurrTime=GetTime ()Input()Update(currTime -prevTime)Presentation ()
}
I VýhodyI plynulejší v závislosti na rychlosti
I ProblémyI spousta
Update
Vstupy
Prezentace
10 / 39
![Page 16: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/16.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus třetí – proměnné FPS a závislá rychlost hry
I Maximální rychlost diktovaná kreslenímI počítá se čas od posledního snímku
while(!end){prevTime=currTimecurrTime=GetTime ()Input()Update(currTime -prevTime)Presentation ()
}
I VýhodyI plynulejší v závislosti na rychlosti
I ProblémyI spousta
Update
Vstupy
Prezentace
10 / 39
![Page 17: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/17.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus třetí – proměnné FPS a závislá rychlost hry
I Maximální rychlost diktovaná kreslenímI počítá se čas od posledního snímku
while(!end){prevTime=currTimecurrTime=GetTime ()Input()Update(currTime -prevTime)Presentation ()
}
I VýhodyI plynulejší v závislosti na rychlosti
I ProblémyI spousta
Update
Vstupy
Prezentace
10 / 39
![Page 18: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/18.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus čtvrtý - konstantní rychlost a maximální FPS
I Oddělení updatů a prezentaceI update držet konstantní, prezentace
kdykoliv je to možné
while(!end){loops = 0while(GetTime()>nextTime &&loops <MAX_SKIP) {Input()Update ()loops++nextTime += 1000/ TPS
}Presentation ()
}
I VýhodyI stabilní rychlost
I ProblémyI na rychlém stroji se zbytečně kreslí
stejné snímky
Update
Vstupy
Prezentace
11 / 39
![Page 19: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/19.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus čtvrtý - konstantní rychlost a maximální FPS
I Oddělení updatů a prezentaceI update držet konstantní, prezentace
kdykoliv je to možné
while(!end){loops = 0while(GetTime()>nextTime &&loops <MAX_SKIP) {Input()Update ()loops++nextTime += 1000/ TPS
}Presentation ()
}
I VýhodyI stabilní rychlost
I ProblémyI na rychlém stroji se zbytečně kreslí
stejné snímky
Update
Vstupy
Prezentace
11 / 39
![Page 20: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/20.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus čtvrtý - konstantní rychlost a maximální FPS
I Oddělení updatů a prezentaceI update držet konstantní, prezentace
kdykoliv je to možné
while(!end){loops = 0while(GetTime()>nextTime &&loops <MAX_SKIP) {Input()Update ()loops++nextTime += 1000/ TPS
}Presentation ()
}
I VýhodyI stabilní rychlost
I ProblémyI na rychlém stroji se zbytečně kreslí
stejné snímky
Update
Vstupy
Prezentace
11 / 39
![Page 21: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/21.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus pátý – konstantní rychlost a variabilní FPS
I Využití inter/extrapolace pro větší plynulost animacewhile(!end){loops = 0while(GetTime()>nextTime &&loops <MAX_SKIP) {Input()Update ()loops++nextTime += 1000/ TPS
}interpolation = (GetTime () + 1000/ TPS - nextTime )*TPS /1000Presentation(interpolation)
}
I VýhodyI plynulost pohybu podle rychlosti počítačeI konstantní rychlost hry
I NevýhodyI nutnost interpolátoru
12 / 39
![Page 22: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/22.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus pátý – konstantní rychlost a variabilní FPS
I Využití inter/extrapolace pro větší plynulost animacewhile(!end){loops = 0while(GetTime()>nextTime &&loops <MAX_SKIP) {Input()Update ()loops++nextTime += 1000/ TPS
}interpolation = (GetTime () + 1000/ TPS - nextTime )*TPS /1000Presentation(interpolation)
}
I VýhodyI plynulost pohybu podle rychlosti počítačeI konstantní rychlost hry
I NevýhodyI nutnost interpolátoru
12 / 39
![Page 23: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/23.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pokus pátý – konstantní rychlost a variabilní FPS
I Využití inter/extrapolace pro větší plynulost animacewhile(!end){loops = 0while(GetTime()>nextTime &&loops <MAX_SKIP) {Input()Update ()loops++nextTime += 1000/ TPS
}interpolation = (GetTime () + 1000/ TPS - nextTime )*TPS /1000Presentation(interpolation)
}
I VýhodyI plynulost pohybu podle rychlosti počítačeI konstantní rychlost hry
I NevýhodyI nutnost interpolátoru
12 / 39
![Page 24: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/24.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Paralelní smyčka
I Řešení podobné jako v předchozímpřípadě
I zvlášť updateI zvlášť prezentace
II NevýhodyI zajištění synchronizaceI problémy na 1 procesoru
I VýhodyI více času
Prezentace
Update
Vstupy
13 / 39
![Page 25: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/25.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Struktura enginu
Update
Prezentace
A.I.
Detekce kolizí
Fyzikální egine
Síť
Vstupní subsystémVstup
Audio engineHudba
Zvuky
Script engine
Scene manager
Animační engine
RendererSouborový
manager
Správce paměti
Čas
GUI
Stavovýmanager
14 / 39
![Page 26: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/26.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Herní logika
I Je zodpovědná za update světaI Musí se starat o
I statický světI hráčeI pasivní prvkyI aktivní prvky
15 / 39
![Page 27: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/27.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Statický svět
I Objekty, které jsou součástí světa, ale nemají definováno chováníI terén, zdi, . . .
I U rozsáhlých světů nelze rozumně udržovat všeI výběr aktivní části světa (graf scény, dělení prostoru)I dynamické nahrávání světa (správa paměti, souborový systém)
16 / 39
![Page 28: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/28.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Hráč
I Musí uchovávat a updatovat stav hráče
I Vstup od uživateleI klávesnice, myš, joystick, . . .I abstraktní kontroler
I hra se nestará o čtení z konkrétních zařízeníI lze libovolně namapovat
I Update stavuI spuštění animace pro pohybI úprava poziceI . . .
17 / 39
![Page 29: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/29.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Hráč
I Musí uchovávat a updatovat stav hráčeI Vstup od uživatele
I klávesnice, myš, joystick, . . .I abstraktní kontroler
I hra se nestará o čtení z konkrétních zařízeníI lze libovolně namapovat
I Update stavuI spuštění animace pro pohybI úprava poziceI . . .
17 / 39
![Page 30: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/30.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Hráč
I Musí uchovávat a updatovat stav hráčeI Vstup od uživatele
I klávesnice, myš, joystick, . . .I abstraktní kontroler
I hra se nestará o čtení z konkrétních zařízeníI lze libovolně namapovat
I Update stavuI spuštění animace pro pohybI úprava poziceI . . .
17 / 39
![Page 31: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/31.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Hráč
I Musí uchovávat a updatovat stav hráčeI Vstup od uživatele
I klávesnice, myš, joystick, . . .I abstraktní kontroler
I hra se nestará o čtení z konkrétních zařízeníI lze libovolně namapovat
I Otestování omezeníI geometrická omezení (detekce kolizí)I logická omezení (skriptování)
I Update stavuI spuštění animace pro pohybI úprava poziceI . . .
17 / 39
![Page 32: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/32.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pasivní prvky
I Objekty s nadefinovaným chováním, bez vlastní inteligenceI dveře, krabice, poletující ptáci. . .
I Nutné udržovat konzistentní stav
I seřazení podle relevantnosti (graf scény, dělení prostoru)I vyhodnocení modelu chování (dynamika, skriptování)I update stavu
18 / 39
![Page 33: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/33.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pasivní prvky
I Objekty s nadefinovaným chováním, bez vlastní inteligenceI dveře, krabice, poletující ptáci. . .
I Nutné udržovat konzistentní stavI seřazení podle relevantnosti (graf scény, dělení prostoru)
I vyhodnocení modelu chování (dynamika, skriptování)I update stavu
18 / 39
![Page 34: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/34.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pasivní prvky
I Objekty s nadefinovaným chováním, bez vlastní inteligenceI dveře, krabice, poletující ptáci. . .
I Nutné udržovat konzistentní stavI seřazení podle relevantnosti (graf scény, dělení prostoru)I vyhodnocení modelu chování (dynamika, skriptování)
I update stavu
18 / 39
![Page 35: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/35.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Pasivní prvky
I Objekty s nadefinovaným chováním, bez vlastní inteligenceI dveře, krabice, poletující ptáci. . .
I Nutné udržovat konzistentní stavI seřazení podle relevantnosti (graf scény, dělení prostoru)I vyhodnocení modelu chování (dynamika, skriptování)I update stavu
18 / 39
![Page 36: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/36.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aktivní prvky
I Objekty s vlastní inteligencíI nepřátelé (nebo spoluhráči)
I Nutné udržovat konzistentní stav
I seřazení podle relevantnosti (graf scény, dělení prostoru)I otestování stavu a vytyčení cílů (skriptování)I otestování omezení (detekce kolizí)I rozhodnutí (umělá inteligence)I update stavu
19 / 39
![Page 37: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/37.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aktivní prvky
I Objekty s vlastní inteligencíI nepřátelé (nebo spoluhráči)
I Nutné udržovat konzistentní stavI seřazení podle relevantnosti (graf scény, dělení prostoru)
I otestování stavu a vytyčení cílů (skriptování)I otestování omezení (detekce kolizí)I rozhodnutí (umělá inteligence)I update stavu
19 / 39
![Page 38: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/38.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aktivní prvky
I Objekty s vlastní inteligencíI nepřátelé (nebo spoluhráči)
I Nutné udržovat konzistentní stavI seřazení podle relevantnosti (graf scény, dělení prostoru)I otestování stavu a vytyčení cílů (skriptování)
I otestování omezení (detekce kolizí)I rozhodnutí (umělá inteligence)I update stavu
19 / 39
![Page 39: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/39.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aktivní prvky
I Objekty s vlastní inteligencíI nepřátelé (nebo spoluhráči)
I Nutné udržovat konzistentní stavI seřazení podle relevantnosti (graf scény, dělení prostoru)I otestování stavu a vytyčení cílů (skriptování)I otestování omezení (detekce kolizí)
I rozhodnutí (umělá inteligence)I update stavu
19 / 39
![Page 40: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/40.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aktivní prvky
I Objekty s vlastní inteligencíI nepřátelé (nebo spoluhráči)
I Nutné udržovat konzistentní stavI seřazení podle relevantnosti (graf scény, dělení prostoru)I otestování stavu a vytyčení cílů (skriptování)I otestování omezení (detekce kolizí)I rozhodnutí (umělá inteligence)
I update stavu
19 / 39
![Page 41: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/41.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aktivní prvky
I Objekty s vlastní inteligencíI nepřátelé (nebo spoluhráči)
I Nutné udržovat konzistentní stavI seřazení podle relevantnosti (graf scény, dělení prostoru)I otestování stavu a vytyčení cílů (skriptování)I otestování omezení (detekce kolizí)I rozhodnutí (umělá inteligence)I update stavu
19 / 39
![Page 42: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/42.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Struktura herní logiky
// static worldPreselectActiveZone ()
// player updateReadControls ()ComputeRestrictions ()UpdatePlayerState ()
// passive objectsSortAccordingRelevance ()ExecuteConstrolMechanism ()UpdatePassiveObjectsState ()
// active objectsSortAccordingRelevance ()SenseInternalStateAndGoals ()ComputeRestrictions ()MakeDecision ()UpdateActiveObjectsState ()
20 / 39
![Page 43: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/43.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Prezentace scény
I Tvoří podstatnou část hryI stará se o to, aby byl hráč vtažen do hry
I Musí zajistit prezentaciI statického světa a jednoduchých pasivních objektůI složitých pasivních objektů a aktivních objektůI hráče
I Prezentace může probíhat pomocí více kanálůI vizuálníI audioI taktilníI . . .
21 / 39
![Page 44: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/44.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Statický svět
I Stará se o vykreslení statického světa a objektů s jednoduchouanimací
I výběr relevantní části světaI ořezáváníI odstranění odvrácených částíI zakrytí
I výběr vhodného rozlišení (LOD)I příprava geometrieI vykreslení
22 / 39
![Page 45: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/45.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Statický svět
I Stará se o vykreslení statického světa a objektů s jednoduchouanimací
I výběr relevantní části světaI ořezáváníI odstranění odvrácených částíI zakrytí
I výběr vhodného rozlišení (LOD)I příprava geometrieI vykreslení
22 / 39
![Page 46: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/46.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Statický svět
I Stará se o vykreslení statického světa a objektů s jednoduchouanimací
I výběr relevantní části světaI ořezáváníI odstranění odvrácených částíI zakrytí
I výběr vhodného rozlišení (LOD)
I příprava geometrieI vykreslení
22 / 39
![Page 47: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/47.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Statický svět
I Stará se o vykreslení statického světa a objektů s jednoduchouanimací
I výběr relevantní části světaI ořezáváníI odstranění odvrácených částíI zakrytí
I výběr vhodného rozlišení (LOD)I příprava geometrie
I vykreslení
22 / 39
![Page 48: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/48.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Statický svět
I Stará se o vykreslení statického světa a objektů s jednoduchouanimací
I výběr relevantní části světaI ořezáváníI odstranění odvrácených částíI zakrytí
I výběr vhodného rozlišení (LOD)I příprava geometrieI vykreslení
22 / 39
![Page 49: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/49.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aktivní objekty
I Stará se o vykreslení objektů s komplexní animacíI objektyI postavy (NPC)
I Musí zajistit
I výběr relevantních objektůI výběr vhodného rozlišeníI animováníI příprava geometrieI vykreslení
23 / 39
![Page 50: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/50.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aktivní objekty
I Stará se o vykreslení objektů s komplexní animacíI objektyI postavy (NPC)
I Musí zajistitI výběr relevantních objektů
I výběr vhodného rozlišeníI animováníI příprava geometrieI vykreslení
23 / 39
![Page 51: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/51.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aktivní objekty
I Stará se o vykreslení objektů s komplexní animacíI objektyI postavy (NPC)
I Musí zajistitI výběr relevantních objektůI výběr vhodného rozlišeníI animování
I příprava geometrieI vykreslení
23 / 39
![Page 52: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/52.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aktivní objekty
I Stará se o vykreslení objektů s komplexní animacíI objektyI postavy (NPC)
I Musí zajistitI výběr relevantních objektůI výběr vhodného rozlišeníI animováníI příprava geometrie
I vykreslení
23 / 39
![Page 53: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/53.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Aktivní objekty
I Stará se o vykreslení objektů s komplexní animacíI objektyI postavy (NPC)
I Musí zajistitI výběr relevantních objektůI výběr vhodného rozlišeníI animováníI příprava geometrieI vykreslení
23 / 39
![Page 54: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/54.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Hráč
I Speciální případ NPCI většinou není nutné testovat zda je či není viditelný
I Malé zjednodušení
I (výběr vhodného rozlišení)I animováníI příprava geometrieI vykreslení
24 / 39
![Page 55: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/55.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Hráč
I Speciální případ NPCI většinou není nutné testovat zda je či není viditelný
I Malé zjednodušeníI (výběr vhodného rozlišení)I animování
I příprava geometrieI vykreslení
24 / 39
![Page 56: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/56.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Hráč
I Speciální případ NPCI většinou není nutné testovat zda je či není viditelný
I Malé zjednodušeníI (výběr vhodného rozlišení)I animováníI příprava geometrie
I vykreslení
24 / 39
![Page 57: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/57.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Hráč
I Speciální případ NPCI většinou není nutné testovat zda je či není viditelný
I Malé zjednodušeníI (výběr vhodného rozlišení)I animováníI příprava geometrieI vykreslení
24 / 39
![Page 58: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/58.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Struktura prezentace
// static worldSelectVisibleSubset ()SelectResolution ()PackGeometry ()RenderWorld ()
// active objectsSelectVisibleSubset ()Animate ()PackGeometry ()RenderNPC ()
// playerAnimate ()PackGeometry ()RenderPlayer ()
25 / 39
![Page 59: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/59.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Záludnosti síťové hry
I Předchozí model se musí upravitI pro jiného hráče jste NPC
I Při updatu hráče jeI odeslání změn na server
I Při updatu aktivních objektůI zavedení speciální třídy UII síťové zprávy mapuje na objekty
26 / 39
![Page 60: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/60.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Hotové enginy
I Vyrábění vlastního enginu od základu je příliš nákladnéI inspirace jinými enginyI úpravy existujících enginůI hotová řešení
I Výběr enginu záleží na mnoha aspektechI licence a cenaI typ hryI požadované modulyI stabilitaI hw nárokyI požadovaný jazykI podpora
27 / 39
![Page 61: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/61.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Vlastnosti – Grafika
I Modely osvětleníI TexturyI Speciální efektyI TerényI AnimaceI LODI Částicové systémy
28 / 39
![Page 62: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/62.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Vlastnosti – Zvuk
I 3d zvukI Text to speechI VoIPI Streamování
29 / 39
![Page 63: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/63.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Vlastnosti – AI
I AI behaviourI BotiI FormaceI Fuzzy logikaI Line of SightI Zpracování přirozeného jazykaI Hledání cestyI Stavový automatI Skriptování
30 / 39
![Page 64: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/64.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Vlastnosti – Fyzika
I Detekce kolizíI Režimy pohybuI Fyzikální vlastnostiI Simulace dopravních prostředkůI Simulace tekutinI Rag dolls
31 / 39
![Page 65: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/65.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Vlastnosti – Síťařina
I Počet hráčůI Úroveň implementaceI ProtokolI VýkonI ArchitekturaI Seznam serverů
32 / 39
![Page 66: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/66.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Vlastnosti – Platforma a HW požadavky
I PlatformaI CPUI Paměťová náročnostI ZvukI GrafikaI Síťové připojení
33 / 39
![Page 67: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/67.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Vlastnosti – Náročnost
I Počet polygonůI Počet objektůI Velikost texturI Počet spuštěných skriptůI Počet síťových klientů
34 / 39
![Page 68: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/68.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Vlastnosti – Dokumentace a podpora
I Úroveň dokončeníI Úroveň dokumentaceI Online helpI Ukázkové kódyI TutoriályI KnihyI FóraI Podpora
35 / 39
![Page 69: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/69.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Vlastnosti – Ladění
I DebuggerI ProfilerI Ladění za běhuI Simulátor síťového prostředí
36 / 39
![Page 70: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/70.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Vlastnosti – Ostatní
I Nahrávání a přehrávání hryI Instant replayI Nahrávání a ukládání stavu hryI Přehrávání videaI Cut scenesI . . .
37 / 39
![Page 71: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/71.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Přehled enginů
I http://www.devmaster.net/enginesI Volné enginy
I OGREI IrrlichtI Crystal SpaceI Quake 3I . . .
I Nízkonákladové enginyI Torque Game EngineI TV3DI . . .
I Profi enginyI Doom3I HavokI . . .
38 / 39
![Page 72: Pocítacové hry - Herní engine](https://reader034.vdocuments.site/reader034/viewer/2022052013/6285f63e1add855e832d9ad3/html5/thumbnails/72.jpg)
Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec
Konec
39 / 39