Pocítacové hry - Herní engine

72
Úvod Co je „Engine Herní smyčka Struktura enginu Hotové enginy Konec Počítačové hry Herní engine 1 / 39

Transcript of Pocítacové hry - Herní engine

Page 1: Pocítacové hry - Herní engine

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Ú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

Úvod Co je „Engineÿ Herní smyčka Struktura enginu Hotové enginy Konec

Konec

39 / 39