Úvod Co je Engine Herní smyčka Struktura enginu Hotové enginy Konec. Herní engine 1 / 39



Podobné dokumenty
Počítačové hry Herní engine 1 / 1

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

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: jan.skrbek@tul.cz tel.: Konzultace: úterý

Tekla Structures Multi-user Mode

SEKCE J INFORMAČNÍ A KOMUNIKAČNÍ ČINNOSTI

ICT plán ZŠ praktické Bochov na rok 2009

SAFETICA 7 DATA LOSS PREVENTION

Příloha č. 54. Specifikace hromadné aktualizace SMS-KLAS

Obsah. Úvod 11. Kapitola 1 P ehled sledování výkonu 15

Virtualizace koncových stanic Položka Požadováno Nabídka, konkrétní hodnota

Algoritmus (nebo dřívějším pravopisem algorithmus)

Obsah. Úvodem 11 Komu je kniha určena 12 Co v knize najdete 12

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Vzdělávací program pro obchodní partnery společnosti ROCKWOOL průvodce školením

4. Počítačová síť. Co je to počítačová síť

Informační systém pro rezervaci pokojů hotelu SPORT

TISKOVÁ ZPRÁVA PUBLIC NOVÝ EVROPSKÝ PROJEKT: METODOLOGIE NÁVRHU DYNAMICKY REKONFIGUROVATELNÝCH

Využití mobilního klienta při správě inženýrských sítí. Petr Skála Pontech s.r.o.

Zadávací dokumentace. Příloha

MAGIS ve strojírenské firmě Strojírna Vehovský s.r.o.

NUR - Interaktivní panel, D1

Modely rozvrhování produkce s využitím Matlabu

Dlouhodobý archiv zdravotnické dokumentace informační systém dále jen (IS) musí splňovat níže uvedené technické parametry:

Popis realizace poskytování sociální služby

TENTO PROJEKT JE S POLUFINANC OVÁN E VROPS KÝM S OCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ REPUBLIKY.

Vizualizace 3d designu ve strojírenství

Kapitola 1: Co je Delphi 19. Překlad projektu 23

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

Výzva k podání nabídek Oznámení/Výzva o zahájení výběrového řízení na veřejnou zakázku malého rozsahu. : Výměna stávajících koberců

MATURITNÍ PRÁCE dokumentace

Zkušební řád Profesní zkoušky Profesního sdružení Sanitace nápojových cest

Sportovní soukromá základní škola Litvínov s.r.o. Podkrušnohorská 1677, Litvínov,

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ

DODATEK Č. 2 KE SMLOUVĚ O DÍLO MKDS STŘÍBRO Č. 20/HIO/2011

POZMĚŇOVACÍ NÁVRHY K SNĚMOVNÍMU TISKU Č. 262

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM

Zapojení do běžného života ve společnosti a nácvik překonávání překážek a nástrah vnějšího světa

Management projektů. Programová podpora auditu sytému managementu kvality HOT 4IT. Návrh

TECHNICKÁ ZPRÁVA SO 037 EZS. Objednatel: METROSTAV,a.s. Stupeň:

Microsoft Office Project 2003 Úkoly projektu 1. Začátek práce na projektu 1.1 Nastavení data projektu Plánovat od Datum zahájení Datum dokončení

VYUŽITÍ NEURONOVÝCH SÍTÍ PROSTŘEDÍ MATLAB K PREDIKCI HODNOT NÁKLADŮ PRO ELEKTRICKÉ OBLOUKOVÉ PECE

Nemocnice a centra zobrazovacích metod d v ují systém m Rimage pro publikování disk s informacemi o pacientech, které mohou zachránit život

ÚVOD DO INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

témata: [ Informační technologie ] [ Elektronika a diagnostika ] [ Zpracování obrazu ] Informační technologie

Maturitní témata z předmětu Programování a databázové systémy. pro šk. rok 2012/2013

PRACOVIŠTĚ PRO DLOUHODOBÉ UCHOVÁVÁNÍ A ZPŘÍSTUPŇOVÁNÍ DOKUMENTŮ V DIGITÁLNÍ PODOBĚ NÁRODNÍ DIGITÁLNÍ ARCHIV

PROVOZNÍ ŘÁD ZÁKLADNÍ ŠKOLY

Odbor dozoru a kontroly veřejné správy. Obecně závazné vyhlášky o veřejném pořádku

Inovované řešení VDT/VT

I. Všeobecná ustanovení

VIRTUÁLNÍ SVAŘOVACÍ TRENAŽÉR. Corporate presentation 1/6/2014-1

Marketingový plán. Studentská komora Rady vysokých škol

Záznam individuální přímé práce pracovníka s uživateli Azylový dům

Stolní lampa JETT Návod k použití

PŘÍPADOVÁ STUDIE: UŽIVATELSKÉ TESTOVÁNÍ POUŽITELNOSTI WEBU PARTNERSKÉ-VZTAHY.EU

Pořadové číslo: Název vzdělávacího programu: Počítač ve výuce českého jazyka

Lymphastim. Nový lymfodrenážní přístroj pro estetickou praxi

Vedoucí metodik IKT: Ing. Jana Horáková, metodik IKT: Mgr. Lenka Ševčíková.

Systém MCS II. Systém MCS II < 29 >

1. PROSTŘEDÍ PROGRAMU. Pás karet se záložkami (na obrázku aktivovaná karta Domů ) Hlavní okno, ve kterém se edituje aktuální snímek prezentace

1. Mohu nainstalovat aplikaci Autodesk Revit, Autodesk Revit Architecture, Autodesk Revit MEP, Autodesk Revit Structure nebo Autodesk Revit LT

ROZKLIKÁVACÍ ROZPOČET - ONLINE ZVEŘEJŇOVÁNÍ EKONOMICKÝCH DAT ÚŘADU

Dynamický model predikovaného vývoje krajiny. Vilém Pechanec

SimOS. Jakub Doležal Radek Hlaváček Michael Očenášek Marek Reimer

Zabezpečení cloudové infrastruktury

DIGITÁLNÍ TECHNOLOGIE VE VZDĚLÁVÁNÍ. Daniela Růžičková, NÚV ICT ve školství,

Téma Učivo Ročníkové výstupy žák podle svých možností: Poznámka

Všeobecné podmínky provozu sběrných míst kolektivního systému Eltma

INTELIGENTNÍ DŮM. Zdeněk Kolář, Viktor Daněk. Střední průmyslová škola sdělovací techniky Panská 856/3, Praha 1

o diplomových a bakalářských pracích

Zpracování on-line interaktivního vzdělávacího systému

DOMOVNÍ ŘÁD BYTOVÉHO DRUŽSTVA ZÁZVORKOVA 2007, 2008, 2009

Postup šetření pro rok Ministerstvo pro místní rozvoj Odbor veřejného investování

13. Sítě WAN. Rozlehlé sítě WAN. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme rozlehlé sítě typu WAN. Doba nutná k nastudování

Matematický model malířského robota

VÝZVA K PODÁNÍ NABÍDKY VE VEŘEJNÉ ZAKÁZCE MALÉHO ROZSAHU

Inovace výuky prostřednictvím šablon pro SŠ

VÝZVA A ZADÁVACÍ DOKUMENTACE

Regenerace zahrady MŠ Neděliště

účetních informací státu při přenosu účetního záznamu,

Aktivity s GPS 3. Měření některých fyzikálních veličin

Příloha č. 1. Specifikace jednotlivých e-learningových výukových kurzů:

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

Zabezpečení Uživatelská příručka

Lineární střih. Cuts-only (pouze střih) příspěvkový, ě záznamový VCR, řídící jednotka. Edit Control

Obsah Celex č. Ustanovení 32013L0055

Systém elektronického zpracování údajů o výzkumných projektech a jejich hodnocení v GA AV

3. TELEMATIKA A PODNIKOVÉ ŘÍDÍCÍ SYSTÉMY

VERZE: 01 DATUM: 05/2014

verze Uživatel akceptuje návrh Smlouvy zaslané mu Poskytovatelem, anebo

Fakulta přírodovědně-humanitní a pedagogická. Okruhy otázek pro státní závěrečné zkoušky. Bakalářské studium

Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem.

RÁMCOVÁ SMLOUVA č. 2014_03 na provádění zámečnických a nástrojařských prací, Brno - Líšeň

Obchodní akademie, Náchod, Denisovo nábřeží 673

Koncepce rozvoje organizace Domov pod hradem Žampach - období (struční popis plánovaných etap transformační plánu)

STUDNY a jejich právní náležitosti.

Dřevoobráběcí stroje. Quality Guide. Vyhodnocení nástrojů

GIS Informačního Systému Krizového řízení - problematika datového skladu

Statut Grantové služby LČR

Transkript:

Počítačové hry Herní engine 1 / 39

Obsah přednášky Co je Engine Herní smyčka Struktura enginu Hotové enginy 2 / 39

Literatura a odkazy http://gpwiki.org/index.php/game Engines http://en.wikipedia.org/wiki/game engine http://www.devmaster.net/engines/ Dalmau. Core Techniques and Algorithms in Game Programming. 2003 Zerbst, Duvel. 3D Game Engine Programming. 2004 Harbour. Game Programming All in One (2nd Edition). 2004 Eberly. 3D Game Engine Architecture: Engineering Real-Time Applications with Wild Magic. 2004 3 / 39

It is a mistake to think you can solve any major problems just with potatoes. -Douglas Adams 4 / 39

Co je engine? Je jádro interaktivní aplikace Má za úkol odstínit programátora-uživatele od systémových záležitostí poskytuje základní metody inicializace nahrání dat... ukončení Ulehčuje vývoj hry možnost znovuvyužití velkých kusů kódu v ideálním případě pouze změna dat přechod na jinou platformu 5 / 39

Co všechno engine nabízí? Záleží na kvalitě enginu grafika 2D, 3D fyzika a kolize zvuk vstupy/výstupy skriptování animace umělá inteligence síťové záležitosti správa paměti reprezentace světa (scene graph) správa souborů GUI 6 / 39

Aplikace v reálném čase Hry jsou časově závislé aplikace modul pro simulaci virtuálního světa AI fyzika... prezentační modul vstupní modul pro zjednodušení jen 3 - update světa a prezentace, vstup Každý z modulů je časově omezen co si s tím počít? 7 / 39

Aplikace v reálném čase Hry jsou časově závislé aplikace modul pro simulaci virtuálního světa AI fyzika... prezentační modul vstupní modul pro zjednodušení jen 3 - update světa a prezentace, vstup Každý z modulů je časově omezen co si s tím počít? Všechny moduly běží současně jak to ale zařídit? 7 / 39

Pokus první jednoduchá smyčka Jednoduchá smyčka update, pak prezentace oba moduly mají stejnou váhu while (! end ) { Vstupy Input () Update () Presentation () } Update Prezentace 8 / 39

Pokus první jednoduchá smyčka Jednoduchá smyčka update, pak prezentace oba moduly mají stejnou váhu while (! end ) { Input () Update () Presentation () } Výhody jednoduchost Vstupy Update Prezentace 8 / 39

Pokus první jednoduchá smyčka Jednoduchá smyčka update, pak prezentace oba moduly mají stejnou váhu while (! end ) { Input () Update () Presentation () } Výhody jednoduchost Problémy závislost na výkonu systému na rychlém stroji nehratelné na pomalém taky Vstupy Update Prezentace 8 / 39

Pokus druhý konstantní rychlost hry a závislé FPS Konstantní rychlost hry update, pak prezentace pokud zbývá čas, čeká se while (! end ) { Input () Update () Presentation () nexttime += 1000/ FPS sleeptime = nexttime - currtime ; Sleep ( sleeptime ); } Vstupy Update Prezentace Sync 9 / 39

Pokus druhý konstantní rychlost hry a závislé FPS Konstantní rychlost hry update, pak prezentace pokud zbývá čas, čeká se while (! end ) { Input () Update () Presentation () nexttime += 1000/ FPS sleeptime = nexttime - currtime ; Sleep ( sleeptime ); } Výhody jednoduchost Vstupy Update Prezentace Sync 9 / 39

Pokus druhý konstantní rychlost hry a závislé FPS Konstantní rychlost hry update, pak prezentace pokud zbývá čas, čeká se while (! end ) { Input () Update () Presentation () nexttime += 1000/ FPS sleeptime = nexttime - currtime ; Sleep ( sleeptime ); } Výhody jednoduchost Problémy na rychlém stroji čeká na pomalém stroji nestíhá Vstupy Update Prezentace Sync 9 / 39

Pokus třetí proměnné FPS a závislá rychlost hry Maximální rychlost diktovaná kreslením počítá se čas od posledního snímku while (! end ) { prevtime = currtime currtime = GetTime () Input () Update ( currtime - prevtime ) Presentation () } Vstupy Update Prezentace 10 / 39

Pokus třetí proměnné FPS a závislá rychlost hry Maximální rychlost diktovaná kreslením počítá se čas od posledního snímku while (! end ) { prevtime = currtime currtime = GetTime () Input () Update ( currtime - prevtime ) Presentation () } Výhody plynulejší v závislosti na rychlosti Vstupy Update Prezentace 10 / 39

Pokus třetí proměnné FPS a závislá rychlost hry Maximální rychlost diktovaná kreslením počítá se čas od posledního snímku while (! end ) { prevtime = currtime currtime = GetTime () Input () Update ( currtime - prevtime ) Presentation () } Výhody plynulejší v závislosti na rychlosti Problémy spousta Vstupy Update Prezentace 10 / 39

Pokus čtvrtý - konstantní rychlost a maximální FPS Oddělení updatů a prezentace update držet konstantní, prezentace kdykoliv je to možné while (! end ) { loops = 0 while ( GetTime () > nexttime && loops < MAX_SKIP ) { Input () Update () loops ++ nexttime += 1000/ TPS } Presentation () } Vstupy Update Prezentace 11 / 39

Pokus čtvrtý - konstantní rychlost a maximální FPS Oddělení updatů a prezentace update držet konstantní, prezentace kdykoliv je to možné while (! end ) { loops = 0 while ( GetTime () > nexttime && loops < MAX_SKIP ) { Input () Update () loops ++ nexttime += 1000/ TPS } Presentation () } Vstupy Update Výhody stabilní rychlost Prezentace 11 / 39

Pokus čtvrtý - konstantní rychlost a maximální FPS Oddělení updatů a prezentace update držet konstantní, prezentace kdykoliv je to možné while (! end ) { loops = 0 while ( GetTime () > nexttime && loops < MAX_SKIP ) { Input () Update () loops ++ nexttime += 1000/ TPS } Presentation () } Vstupy Update Výhody stabilní rychlost Problémy na rychlém stroji se zbytečně kreslí stejné snímky Prezentace 11 / 39

Pokus pátý konstantní rychlost a variabilní FPS Využití inter/extrapolace pro větší plynulost animace while (! end ) { loops = 0 while ( GetTime () > nexttime && loops < MAX_SKIP ) { Input () Update () loops ++ nexttime += 1000/ TPS } interpolation = ( GetTime () + 1000/ TPS - nexttime )* TPS /1000 Presentation ( interpolation ) } 12 / 39

Pokus pátý konstantní rychlost a variabilní FPS Využití inter/extrapolace pro větší plynulost animace while (! end ) { loops = 0 while ( GetTime () > nexttime && loops < MAX_SKIP ) { Input () Update () loops ++ nexttime += 1000/ TPS } interpolation = ( GetTime () + 1000/ TPS - nexttime )* TPS /1000 Presentation ( interpolation ) } Výhody plynulost pohybu podle rychlosti počítače konstantní rychlost hry 12 / 39

Pokus pátý konstantní rychlost a variabilní FPS Využití inter/extrapolace pro větší plynulost animace while (! end ) { loops = 0 while ( GetTime () > nexttime && loops < MAX_SKIP ) { Input () Update () loops ++ nexttime += 1000/ TPS } interpolation = ( GetTime () + 1000/ TPS - nexttime )* TPS /1000 Presentation ( interpolation ) } Výhody plynulost pohybu podle rychlosti počítače konstantní rychlost hry Nevýhody nutnost interpolátoru 12 / 39

Paralelní smyčka Řešení podobné jako v předchozím případě zvlášť update zvlášť prezentace Nevýhody zajištění synchronizace problémy na 1 procesoru Výhody více času Vstupy Update Prezentace 13 / 39

Struktura enginu Hudba Audio engine Čas Síť Zvuky Fyzikální egine Detekce kolizí Script engine A.I. Souborový manager Správce paměti Update Stavový manager Prezentace GUI Renderer Animační engine Vstup Vstupní subsystém Scene manager 14 / 39

Herní logika Je zodpovědná za update světa Musí se starat o statický svět hráče pasivní prvky aktivní prvky 15 / 39

Statický svět Objekty, které jsou součástí světa, ale nemají definováno chování terén, zdi,... U rozsáhlých světů nelze rozumně udržovat vše výběr aktivní části světa (graf scény, dělení prostoru) dynamické nahrávání světa (správa paměti, souborový systém) 16 / 39

Hráč Musí uchovávat a updatovat stav hráče 17 / 39

Hráč Musí uchovávat a updatovat stav hráče Vstup od uživatele klávesnice, myš, joystick,... abstraktní kontroler hra se nestará o čtení z konkrétních zařízení lze libovolně namapovat 17 / 39

Hráč Musí uchovávat a updatovat stav hráče Vstup od uživatele klávesnice, myš, joystick,... abstraktní kontroler hra se nestará o čtení z konkrétních zařízení lze libovolně namapovat Update stavu spuštění animace pro pohyb úprava pozice... 17 / 39

Hráč Musí uchovávat a updatovat stav hráče Vstup od uživatele klávesnice, myš, joystick,... abstraktní kontroler hra se nestará o čtení z konkrétních zařízení lze libovolně namapovat Otestování omezení geometrická omezení (detekce kolizí) logická omezení (skriptování) Update stavu spuštění animace pro pohyb úprava pozice... 17 / 39

Pasivní prvky Objekty s nadefinovaným chováním, bez vlastní inteligence dveře, krabice, poletující ptáci... Nutné udržovat konzistentní stav 18 / 39

Pasivní prvky Objekty s nadefinovaným chováním, bez vlastní inteligence dveře, krabice, poletující ptáci... Nutné udržovat konzistentní stav seřazení podle relevantnosti (graf scény, dělení prostoru) 18 / 39

Pasivní prvky Objekty s nadefinovaným chováním, bez vlastní inteligence dveře, krabice, poletující ptáci... Nutné udržovat konzistentní stav seřazení podle relevantnosti (graf scény, dělení prostoru) vyhodnocení modelu chování (dynamika, skriptování) 18 / 39

Pasivní prvky Objekty s nadefinovaným chováním, bez vlastní inteligence dveře, krabice, poletující ptáci... Nutné udržovat konzistentní stav seřazení podle relevantnosti (graf scény, dělení prostoru) vyhodnocení modelu chování (dynamika, skriptování) update stavu 18 / 39

Aktivní prvky Objekty s vlastní inteligencí nepřátelé (nebo spoluhráči) Nutné udržovat konzistentní stav 19 / 39

Aktivní prvky Objekty s vlastní inteligencí nepřátelé (nebo spoluhráči) Nutné udržovat konzistentní stav seřazení podle relevantnosti (graf scény, dělení prostoru) 19 / 39

Aktivní prvky Objekty s vlastní inteligencí nepřátelé (nebo spoluhráči) Nutné udržovat konzistentní stav seřazení podle relevantnosti (graf scény, dělení prostoru) otestování stavu a vytyčení cílů (skriptování) 19 / 39

Aktivní prvky Objekty s vlastní inteligencí nepřátelé (nebo spoluhráči) Nutné udržovat konzistentní stav seřazení podle relevantnosti (graf scény, dělení prostoru) otestování stavu a vytyčení cílů (skriptování) otestování omezení (detekce kolizí) 19 / 39

Aktivní prvky Objekty s vlastní inteligencí nepřátelé (nebo spoluhráči) Nutné udržovat konzistentní stav seřazení podle relevantnosti (graf scény, dělení prostoru) otestování stavu a vytyčení cílů (skriptování) otestování omezení (detekce kolizí) rozhodnutí (umělá inteligence) 19 / 39

Aktivní prvky Objekty s vlastní inteligencí nepřátelé (nebo spoluhráči) Nutné udržovat konzistentní stav seřazení podle relevantnosti (graf scény, dělení prostoru) otestování stavu a vytyčení cílů (skriptování) otestování omezení (detekce kolizí) rozhodnutí (umělá inteligence) update stavu 19 / 39

Struktura herní logiky // static world PreselectActiveZone () // player update ReadControls () ComputeRestrictions () UpdatePlayerState () // passive objects SortAccordingRelevance () ExecuteConstrolMechanism () UpdatePassiveObjectsState () // active objects SortAccordingRelevance () SenseInternalStateAndGoals () ComputeRestrictions () MakeDecision () UpdateActiveObjectsState () 20 / 39

Prezentace scény Tvoří podstatnou část hry stará se o to, aby byl hráč vtažen do hry Musí zajistit prezentaci statického světa a jednoduchých pasivních objektů složitých pasivních objektů a aktivních objektů hráče Prezentace může probíhat pomocí více kanálů vizuální audio taktilní... 21 / 39

Statický svět Stará se o vykreslení statického světa a objektů s jednoduchou animací 22 / 39

Statický svět Stará se o vykreslení statického světa a objektů s jednoduchou animací výběr relevantní části světa ořezávání odstranění odvrácených částí zakrytí 22 / 39

Statický svět Stará se o vykreslení statického světa a objektů s jednoduchou animací výběr relevantní části světa ořezávání odstranění odvrácených částí zakrytí výběr vhodného rozlišení (LOD) 22 / 39

Statický svět Stará se o vykreslení statického světa a objektů s jednoduchou animací výběr relevantní části světa ořezávání odstranění odvrácených částí zakrytí výběr vhodného rozlišení (LOD) příprava geometrie 22 / 39

Statický svět Stará se o vykreslení statického světa a objektů s jednoduchou animací výběr relevantní části světa ořezávání odstranění odvrácených částí zakrytí výběr vhodného rozlišení (LOD) příprava geometrie vykreslení 22 / 39

Aktivní objekty Stará se o vykreslení objektů s komplexní animací objekty postavy (NPC) Musí zajistit 23 / 39

Aktivní objekty Stará se o vykreslení objektů s komplexní animací objekty postavy (NPC) Musí zajistit výběr relevantních objektů 23 / 39

Aktivní objekty Stará se o vykreslení objektů s komplexní animací objekty postavy (NPC) Musí zajistit výběr relevantních objektů výběr vhodného rozlišení animování 23 / 39

Aktivní objekty Stará se o vykreslení objektů s komplexní animací objekty postavy (NPC) Musí zajistit výběr relevantních objektů výběr vhodného rozlišení animování příprava geometrie 23 / 39

Aktivní objekty Stará se o vykreslení objektů s komplexní animací objekty postavy (NPC) Musí zajistit výběr relevantních objektů výběr vhodného rozlišení animování příprava geometrie vykreslení 23 / 39

Hráč Speciální případ NPC většinou není nutné testovat zda je či není viditelný Malé zjednodušení 24 / 39

Hráč Speciální případ NPC většinou není nutné testovat zda je či není viditelný Malé zjednodušení (výběr vhodného rozlišení) animování 24 / 39

Hráč Speciální případ NPC většinou není nutné testovat zda je či není viditelný Malé zjednodušení (výběr vhodného rozlišení) animování příprava geometrie 24 / 39

Hráč Speciální případ NPC většinou není nutné testovat zda je či není viditelný Malé zjednodušení (výběr vhodného rozlišení) animování příprava geometrie vykreslení 24 / 39

Struktura prezentace // static world SelectVisibleSubset () SelectResolution () PackGeometry () RenderWorld () // active objects SelectVisibleSubset () Animate () PackGeometry () RenderNPC () // player Animate () PackGeometry () RenderPlayer () 25 / 39

Záludnosti síťové hry Předchozí model se musí upravit pro jiného hráče jste NPC Při updatu hráče je odeslání změn na server Při updatu aktivních objektů zavedení speciální třídy UI síťové zprávy mapuje na objekty 26 / 39

Hotové enginy Vyrábění vlastního enginu od základu je příliš nákladné inspirace jinými enginy úpravy existujících enginů hotová řešení Výběr enginu záleží na mnoha aspektech licence a cena typ hry požadované moduly stabilita hw nároky požadovaný jazyk podpora 27 / 39

Vlastnosti Grafika Modely osvětlení Textury Speciální efekty Terény Animace LOD Částicové systémy 28 / 39

Vlastnosti Zvuk 3d zvuk Text to speech VoIP Streamování 29 / 39

Vlastnosti AI AI behaviour Boti Formace Fuzzy logika Line of Sight Zpracování přirozeného jazyka Hledání cesty Stavový automat Skriptování 30 / 39

Vlastnosti Fyzika Detekce kolizí Režimy pohybu Fyzikální vlastnosti Simulace dopravních prostředků Simulace tekutin Rag dolls 31 / 39

Vlastnosti Síťařina Počet hráčů Úroveň implementace Protokol Výkon Architektura Seznam serverů 32 / 39

Vlastnosti Platforma a HW požadavky Platforma CPU Paměťová náročnost Zvuk Grafika Síťové připojení 33 / 39

Vlastnosti Náročnost Počet polygonů Počet objektů Velikost textur Počet spuštěných skriptů Počet síťových klientů 34 / 39

Vlastnosti Dokumentace a podpora Úroveň dokončení Úroveň dokumentace Online help Ukázkové kódy Tutoriály Knihy Fóra Podpora 35 / 39

Vlastnosti Ladění Debugger Profiler Ladění za běhu Simulátor síťového prostředí 36 / 39

Vlastnosti Ostatní Nahrávání a přehrávání hry Instant replay Nahrávání a ukládání stavu hry Přehrávání videa Cut scenes... 37 / 39

Přehled enginů http://www.devmaster.net/engines Volné enginy OGRE Irrlicht Crystal Space Quake 3... Nízkonákladové enginy Torque Game Engine TV3D... Profi enginy Doom3 Havok... 38 / 39

Konec 39 / 39