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



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

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

ACV-Wars... The racing strategy Game design

Úvod Design dokument Koncept Prototypy Playtesting Kompletnost, vyváženost a zábava Konec. Proces tvorby 1 / 43

3D Vizualizace muzea vojenské výzbroje

Obsah. Úvod 15. Vše potřebné o psaní a plánování 27. Oddíl I Preprodukce

Technická dokumentace

Projekt. Jan Outrata. listopad Jan Outrata (KI UP) Projekt - analýza a návrh listopad / 13

Obsah. Proč právě Flash? 17 Systémové požadavky 17. Jak používat tuto knihu 18 Doprovodný CD-ROM 19

Příkazové skripty Procedurální jazyky Lua a ostatní

MATLAB a Simulink R2015b

XAMARIN 10 PRAKTICKÝCH ZKUŠENOSTÍ. Roman Fischer

Identifikační karta modulu v. 4. Forma výuky. Doporučený typ studia. Personální zabezpečení (vyplňte ve formátu Příjmení Jméno, bez titulů)

DATA ARTICLE. AiP Beroun s.r.o.

Obsah. SEZNÁMENÍ S HRAMI V HTML Nové funkce HTML Nové funkce CSS

Úvod Game designer Struktura hry Formální a dramatické elementy Dynamika her Konec. Úvod do game designu 1 / 37

PŘEDSTAVENÍ GRAFICKÉHO PROCESORU NVIDIA G200

Proces tvorby. Design dokument Koncept Prototypy Playtesting Kompletnost, vyváženost a zábava

Možnosti a využití linuxových přijímačů twin HD PVR se systémem Enigma2

Rozdělení operačních systémů

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75


Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Postřehová hra. Zadání projektu. 1 Moje cíle

OBSAH. Předmluva 13 Poděkování Přehled dnešního vývoje webů Design pro minulost, přítomnost i budoucnost 33

Rozšířený datový model pro handicapované osoby a metodika jeho interpretace při navigaci. Jan Kufner, Eva Mulíčková

Úvod do modelování v programu COMSOL Multiphysics verze 4

Učební osnovy Výtvarná výchova

Maturitní témata. Informační a komunikační technologie. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou.

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

Novinky HMI. Magelis HMISTO501 ipc Magelis BOX PC Vijeo Designer v.6.0

Ceník VMS Axxon NEXT

Základní úlohy: vytvoření dokumentu...13

AI TESTER. Uživatelská příručka. AI Tester 1.1 AI Tester Server 0.9

SEKCE J INFORMAČNÍ A KOMUNIKAČNÍ SLUŽBY

Správa a sledování SOA systémů v Oracle SOA Suite

Pokročilá architektura počítačů

Dim-Box - Stmívač. Středoškolská technika Setkání a prezentace prací středoškolských studentů na ČVUT. Nguyen Son Hai. VOŠ a SPŠE Olomouc

Specifikace projektu Ocerus

1. část charakteristika oboru

TECHNICKÉ PREZENTACE

1. HDR. 2. Test Práce ve Windows. 3. Tilt-shift efekt. 4. Excel tisk a tvorba grafů. Informatika Ditta Kukaňová

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

MYBIZ - Řešení pro zpřístupnění dat ze stávajících aplikací na mobilních zařízeních (Mobilize your business!) Požadavky zákazníka.

XNA Game Studio 3.1. Tomáš Herceg Microsoft Most Valuable Professional Microsoft Student Partner

Téma, učivo Rozvíjené kompetence, očekávané výstupy Mezipředmětové vztahy Poznámky MS Word. Žák rozlišuje základní prvky (nadpisy, obrázky,

Pokročilé metody fotorealistického zobrazování

INFORMATIKA Charakteristika volitelného předmětu

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

zswi/pc-testování.d 10. května

Návrh a implementace algoritmů pro adaptivní řízení průmyslových robotů

Technický vývoj Škoda Auto. Dlouhodobé zkoušky,

Stručný obsah KAPITOLA 1 KAPITOLA 2 KAPITOLA 3 KAPITOLA 4 KAPITOLA 5 KAPITOLA 6 KAPITOLA 7 KAPITOLA 8 KAPITOLA 9 KAPITOLA 10 KAPITOLA 11 KAPITOLA 12

Poznámky k vydání. pro Kerio Control 7.2.1

Testová ní The Elder Scrolls V: Skyrim

Bibliografický popis Elektronické zdroje Obecná pravidla

Mikroprocesorový Pøepínaè/Øídící systém

MIKROSIMULAČNÍ MODEL ÚSEKU DÁLNICE D1 S APLIKACÍ LINIOVÉHO ŘÍZENÍ DOPRAVY. Milan Koukol, FD Ústav dopravních systémů

Učitelství praktického vyučování přednáška P3

TEPELNÁ TECHNIKA 1D. Základy práce s aplikací. Verze 3.0.0

Testujeme notebook pro opravdové hráče: Toshiba X200

Česká komora autorizovaných inženýrů a techniků činných ve výstavbě. ROZDÍLOVÁ ZKOUŠKA k autorizaci podle zákona č. 360/1992 Sb.

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY ROČNÍKOVÝ PROJEKT KLOKAN. Informatika, II. ročník

TECHNICKÉ POŽADAVKY PORTÁLU

IP - nové normy a aktualizace metodických pokynů MVČR

Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web,

Prototyping konfigurace linuxových serverů. horizontální škálování Deltacloud API

Ochrana citlivých dokumentů

IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. RNDr. Jiří Barnat, Ph.D.

Jakub Melka Štěpán Poljak Martin Růžička Martin Urza

LuxRiot uživatelský manuál verze Uživatelský manuál Verze , Stasa s.r.o.,pokorného 14, , PRAHA

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

ELEARNING NA UJEP PŘEDSTAVY A SKUTEČNOST

Vzdělávací centrum. Váš partner v oblasti celoživotního vzdělávání.

Ondřej Tichý. Hudební výchova napříč předměty

Operační systémy Linux, Mac OS X a jejich srovnání

Katalog služeb a podmínky poskytování provozu

Přehled kurzů, seminářů, školení

Návrhy elektromagnetických zení

VIBRODIAGNOSTICKÝ SOFTWARE

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VIRTUÁLNÍ SVĚT VIRTUAL WORLD

Zpráva o plnění cílů projektu VISK3. WebArchiv - vytvoření podmínek pro zpřístupnění českých webových zdrojů

Redakční systém pro skautské weby Poptávka

Program MediaLib. Program MediaLib slouží pro automatické skládání reklamních spotů do delších smyček.

WCAG 2.0 nový pohled na přístupnost

Streaming multimediálního obsahu s

GO80 TargGR-EM. Čtečka tf hit pro panely Targha. Kompletní příručka

Algoritmus Minimax. Tomáš Kühr. Projektový seminář 1

Digitalizace signálu (obraz, zvuk)

Zřízení studijního oboru HPC (High performance computing)

Matematický ústav v Opavě. Studijní text k předmětu. Softwarová podpora matematických metod v ekonomice

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Zakázka Vnitřní integrace úřadu v rámci PROJEKTU Rozvoj služeb egovernmentu ve správním obvodu ORP Rosice

Výpočtová studie 2D modelu stroje - Frotor

MULTIMEDIÁLNÍ A HYPERMEDIÁLNÍ SYSTÉMY

Průvodce vnitřkem počítače II

Elektronická podatelna ICZ. Automatické stahování datových zpráv

Gramatická evoluce a softwarový projekt AGE

Obsah přednášky. Úvod. Úvod

PROHLOUBENÍ NABÍDKY DALŠÍHO VZDĚLÁVÁNÍ NA VŠPJ A SVOŠ V JIHLAVĚ

Transkript:

Počítačové hry Herní engine Obsah přednášky Co je Engine Hotové enginy Jemný úvod do game designu

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 It is a mistake to think you can solve any major problems just with potatoes. -Douglas Adams

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 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

Aplikace v reálném čase Hry jsou časově závislé aplikace modul pro simulaci virtuálního světa prezentační modul vstupní modul pro zjednodušení jen 2 - update světa a prezentace 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? Pokus první jednoduchá smyčka Jednoduchá smyčka update, pak prezentace oba moduly mají stejnou váhu Problém č.1 závislost na výkonu systému Řešení č.1 zavedení systémového času Problém č.2 zbytečné výpočty při častém updatu Řešení č.2 něco jiného... Update Prezentace

Pokus druhý vícejádro Paralelní smyčka zvlášť update zvlášť prezentace Problém č.1 různá doba provádění Řešení č.1 rozdělení updatu na náročné výpočty a jednoduché interpolace Problém č.2 špatná obsluha na 1 vláknu Řešení č.2 něco jiného... Prezentace Update Pokus třetí oddělené moduly Oddělení toku prezentace probíhá vždy update jen pourčité době while (! end ) { if (( GetTime () - lasttime ) >1000/ freq ) { Update () lasttime = GetTime () } Presentation () } Update Prezentace

Pokus čtvrtý poslední detaily time0 = GetTime () while (! end ) { time1 = GetTime () frametime = 0 while (( time1 - time0 ) > 1000/ freq ) { Update () time0 += 1000/ freq frametime += 1000/ freq } Controls ( frametime ) Update Vstupy Prezentace } percentwithinframe = Min (1, ( time1 - time0 ) / (1000/ freq )) Presentation ( percentwithinframe ) Herní logika Je zodpovědná za update světa Musí se starat o statický svět hráče pasivní prvky aktivní prvky

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) 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...

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 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

Struktura herní logiky // static world PreselectActiveZone () // player update ReadControls () ComputeRestrictions () UpdatePlayerState () // passive objects SortAccordingRelevance () ExecuteConstrolMechanism () UpdatePassiveObjectsState () // active objects SortAccordingRelevance () SenseInternalStateAndGoals () ComputeRestrictions () MakeDecision () UpdateActiveObjectsState () 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í...

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í 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í výběr vhodného rozlišení příprava geometrie vykreslení

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í výběr vhodného rozlišení příprava geometrie vykreslení Struktura prezentace // static world SelectVisibleSubset () SelectResolution () PackGeometry () RenderWorld () // active objects SelectVisibleSubset () Animate () PackGeometry () RenderNPC () // player Animate () PackGeometry () RenderPlayer ()

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 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

Vlastnosti Grafika Modely osvětlení Textury Speciální efekty Terény Animace LOD Částicové systémy Vlastnosti Zvuk 3d zvuk Text to speech VoIP Streamování

Vlastnosti AI AI behaviour Boti Formace Fuzzy logika Line of Sight Zpracování přirozeného jazyka Hledání cesty Stavový automat Skriptování Vlastnosti Fyzika Detekce kolizí Režimy pohybu Fyzikální vlastnosti Simulace dopravních prostředků Simulace tekutin Rag dolls

Vlastnosti Síťařina Počet hráčů Úroveň implementace Protokol Výkon Architektura Seznam serverů Vlastnosti Platforma a HW požadavky Platforma CPU Paměťová náročnost Zvuk Grafika Síťové připojení

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ů Vlastnosti Dokumentace a podpora Úroveň dokončení Úroveň dokumentace Online help Ukázkové kódy Tutoriály Knihy Fóra Podpora

Vlastnosti Ladění Debugger Profiler Ladění za běhu Simulátor síťového prostředí 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...

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... Fáze vývoje hry Hra je z pohledu vývoje SW jako většina ostatních Fáze vývoje Počáteční návrh Výběr/výroba enginu Alfa prototyp Vývoj hry Kontrola kvality Beta verze Post-produkce Release

Co je to game design Game design je komplétní popis hry definice idei popis obrazovek a vztahy mezi nimi popis toho, proč a jak spolu věci interagují vytvoření smysluplného příběhu stanovení cílů hry napsání textů pro hru vyvážení herních principů... Proč vytvářet design? Nosit design v hlavě není dobrý nápad snadnější vývoj v týmu pevně daný směr vývoje jsme jenom lidi

Minidesign Umožňuje rychlý nástřel hry a případné včasné zamítnutí celkový přehled hry cíle hry interakce hráče a hry přehled menu a možností příběh přehled postav vizuální témata Kompletní design Kompletní a jednoznačný popis celé hry celkový přehled hry cíle hry příběh hry popis hudby popis zvuků rozkreslené obrazovky menu a nastavení průběh hry a dějové linie charaktery a příběhy postav interakce hráče a hry definice pravidel

Šablona design dokumentu Obecný úvod obecný popis hry téma, žánr cíle hry Platforma a požadavky kam je hra primárně určena (PC, console, web... ) zda potřebuje nějakou specialitku Příběh co se odehrálo před začátkem hry co se odhrává v jejím průběhu případně co se stane po jejím dohrání Téma: grafika a zvuk popis vizuálního a audio stylu hry popis lokací nákresy Menu popis a rozkreslení neherních částí a jejich návaznosti menu, nastavení, highscore... Průběh hry stěžejní část dokumentu popis z pohledu hráče popisuje děj od spuštění hry až do vypnutí a možné scénáře možné nelinearity v ději (level diagram) Popis postav popis postav, jejich jména, vlastnosti, interakce Mechanika hry způsob pohybu součásti hry a jejich vlastnosti zbraně, vylepšení, pasti... fyzika umělá inteligence síťová komunikace Technická dokumentace Závěr proč popisuje je ta jednotlivé hra tak skvělá, aspekty že z stojí technického za to ji implementovat hlediska Ekonomická dokumentace Další součásti design dokumentu analýza trhu technická analýza právní analýza analýza nákladů

Konec