Download - Game Engine
![Page 1: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/1.jpg)
Game Engine Framework
Daniele Bellavista
Università di Bologna, Seconda Facoltà di Ingegneria Informatica Magistrale
10 dicembre 2011
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 1 / 39
![Page 2: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/2.jpg)
Outline1 Introduzione al Game Engine
Componenti principali2 Scene Manager
Scene GraphGeometric StateRender State
3 Physic EngineCorpi RigidiCorpi MolliPhysic Engine Esterni
4 Parallelization SupportParallel Pattern
5 Artificial IntelligencePseudosenseBehaviourPath Finding
6 Lista di GameEngine7 ReferenceDaniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 2 / 39
![Page 3: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/3.jpg)
Game Engine: Introduzione I
Astrazione dalla tecnologiaInteragendo con le API della graphic pipeline, è possibile costruirequalunque applicazione grafica. Tuttavia le funzioni disponibili, le libreriee le classi dipendono dalle API utilizzate.
Il Game Engine è un middlelayer che separa la “game logic” dallatecnologia, l’implementazione e la piattaforma su cui si poggia la “graphiclogic”.
Separazione delle competenzePer progetti molto grandi, il team di lavoro tende a diversificarsi (AIdeveloper, physic developer, grafici, compositori, sceneggiatori, . . . ).
Il Game Engine fornisce API in grando di suddividere la resposabilitàdelle entità del sistema.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 3 / 39
![Page 4: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/4.jpg)
Game Engine: Introduzione II
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 4 / 39
![Page 5: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/5.jpg)
Game Engine: Introduzione III
ObiettiviUn videogioco è un sistema real-time, da eseguire su normali pc.
Occorre trovare il giusto compromesso fra estetica e giocabilità.
Un Game Engine innovativo deve fornire supporti ed effetti di qualitàgarantendo una fluidità accettabile per lo stato attuale dell’hardware.
Ad esempio idTech 5 mette a disposizione una tecnica di Radiosity per lapre-generazione delle light map o per il render delle cinematics, eShadow Map per le (poche) componenti dinamiche.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 5 / 39
![Page 6: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/6.jpg)
IdTech4 (Doom 3): Gameplay con Volume Shadow
Figura:http://upload.wikimedia.org/wikipedia/en/0/07/Doom3shadows.jpgDaniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 6 / 39
![Page 7: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/7.jpg)
IdTech5 (Rage): Gameplay con Shadow Map e Light Map
Figura: http://www.capsulecomputers.com.au/wp-content/uploads/rage-screenshot-021.jpg
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 7 / 39
![Page 8: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/8.jpg)
IdTech5 (Rage): Cinematic con Radiosity
Figura: Rage cinematic screenshot
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 8 / 39
![Page 9: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/9.jpg)
Game Engine: Componenti principali I
Componenti principali di un Game EngineScene Manager: gestione gerarchica dei modelli, memorizzando informazioni
geometriche, di renderer e di animazione.
Physic Engine: gestione di collisioni e reazioni, gravità, dinamica corpi rigidi emolli, moto di fluidi, sistemi particellari.
Parallelization Support: gestione dell’esecuzione concorrente per sfruttareappieno le architetture multi-core.
Artificial Intelligence: supporto per avvicinare alla realtà le reazionicomportamentali delle entità pensanti.
Game Middlelayer: astrazione rispetto allo Scene Manager, fornisce strutturedati con semantica indipendente dalle problematiche di grafica.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 9 / 39
![Page 10: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/10.jpg)
Game Engine: Componenti principali II
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 10 / 39
![Page 11: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/11.jpg)
Scene Manager
Scene ManagerIl cuore del Game Engine. Memorizza tutte le informazioni necessarie perrendere i modelli del gioco. È un componente con un basso livello diastrazione, poiché contiene concetti geometrici e grafici; per questo motivo unbuon Game Engine dovrebbe fornire un ulteriore layer sopra lo SceneManager (tipicamente il Game Middlelayer).
Organizzazione ed OttimizzazioneMotivazioni principali:
Trasformazioni gerarchiche (il personaggio sale a cavallo, il cavallo simuove e il personaggio lo deve seguire).
Ottimizzazione del clipping (il personaggio uccide un mostro e si volta: ilcadavere rimane alle sue spalle, non visibile).
Model sharing (in una stanza stesso candelabro, diversa posizione).
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 11 / 39
![Page 12: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/12.jpg)
Scene Manager - Scene Graph I
Scene NodeElementi del gioco sono dei “nodi” discena.
Ad ogni nodo è associato unGeometric State e un Render State.
Il Geometric State memorizzainformazioni geometriche (tipologiageometrica, trasformazioni, boundingbox, . . . ).
Il Render State memorizzainformazioni necessarie alla fase direndering (alpha, materiali, texture,. . . )
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 12 / 39
![Page 13: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/13.jpg)
Scene Manager - Scene Graph II
Scene GraphRappresentazione della scena comeun albero.
Gli stati del padre sono condivisi con ifigli.
Due o più nodi possono condividerelo stesso modello.
La radice dell’albero è il nodo root,che non è reso su schermo.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 13 / 39
![Page 14: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/14.jpg)
Scene Manager - Geometric State I
Geometric StateOgni nodo dello Scene Graph ha un proprio Geometric State, contenenteinformazioni quali:
Struttura Geometrica (point, polyline, mesh, particelle).
Vertex e Index Buffer.
Trasformazioni.
Bounding Box.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 14 / 39
![Page 15: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/15.jpg)
Scene Manager - Geometric State II
Geometric State - TrasformazioniTrasformazioni gerarchiche: ogni nodo a parte il root subisce 3trasformazioni.
1 Trasformazione del padre2 Trasformazione dell’arco (in che posizione del padre si trova il figlio).3 Trasformazione locale
Ad esempio, nello scene manager precedente si ha che la spada subisce3 trasformazioni: Wknight ·Aknight−sword ·Lsword ; dove Wknight è la matrice ditrasformazione totale del cavaliere (posizionamento al centro del sistemadi riferimento cavaliere), Aknight−sword è il posizionamento della spada inuna certa posizione del cavaliere (ad esempio sulla schiena) e Lsword è latrasformazione locale della spada (ad esempio il rimbalzo causato dalmovimento del cavallo).
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 15 / 39
![Page 16: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/16.jpg)
Scene Manager - Geometric State III
Geometric State - Bounding BoxLo scopo dei bounding box è quello di migliorarele performance globali semplificando il viewfrustum culling e il collision detection.
Si utilizzano dei bounding semplici e convessicome sfere, cilindri e poliedri.
Bounding Box - Collision DetectionDeterminazione rapida delle intersezioni, sia fraoggetti che con il mouse (3D picking).
Intersezione con il mouse calcolata castando unray che parte dalle coordinate in screen space delmouse e attraversa il view frustum.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 16 / 39
![Page 17: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/17.jpg)
Scene Manager - Geometric State IV
Bounding Box - Pre-CullingOttimizzazione del View Frustum Culling,testando se il bounding box di un oggetto èall’interno del view frustum.
Molto più conveniente rispetto al testing di tutti itriangoli.
Si utilizza un algorimo veloce, non perfetto, ingrado di eliminare velocemente gran parte deglioggetti che non sono all’interno del view frustum,risparmiando il calcolo alla GPU.
Se un bounding box è all’esterno di almeno unpiano del frustum, allora non lo si rende.
2D Frustum View
1,2,3 Not Culled
4 Culled
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 17 / 39
![Page 18: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/18.jpg)
Scene Manager - Render State
Render StateContiene tutte le informazioni associate al modello geometriconecessarie per il rendering.
Alcuni esempi di render state:
Alpha: abilitazione o disabilitazione canale alpha nelle textureSencil Buffer: abilitazione ed uso per vari scopi dello Stencil Buffer
Wireframe: modalità Wireframe.Texture: parametri necessari per l’utilizzo di texture.
Materials: parametri del materiale dell’oggetto.Culling: metodologia di culling (es: NONE, BACK_FACE, ALL).
Light: tipologia e parametri di luce.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 18 / 39
![Page 19: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/19.jpg)
Physic Engine I
Physic EngineUn simulatore di fisica realistico deve simulare molti aspetti, dalla gravitàal moto dei fluidi, dal collision detection alla dinamica di corpi molli.
I videogiochi sono sistemi real-time, che richiedono al minimo 30 frame alsecondo (circa 30 ms di computazione per frame).
Il physic engine di un videogioco deve fornire strumenti veloci, ottimizzatie approssimati in modo non da sembrare realistica, ma da dare unapercezione di correttezza.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 19 / 39
![Page 20: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/20.jpg)
Physic Engine II
Features di un Physic Engine per sistemi Real-TimeCollision detection: tramite bounding box sferici o convex-hull.
Sistemi Particellari: illustrati nel talk di Luca Mella.
Dinamica Corpi Rigidi: reimplementazione matriciale delle equazioni del motonewtoniane.
Dinamica Corpi Molli: mass-spring model, nurbs surface e sistemi particellari.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 20 / 39
![Page 21: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/21.jpg)
Physic Engine - Corpi Rigidi I
Dinamica Corpi RigidiLa fisica più semplice da implementare (disponibile in tutte le GPU moderne),basata sulle equazioni del moto newtoniane.
XqPL
=
m−1Pωq/2
Fτ
m: mass
q(t): Quaternione rappresentante lamatrice di rotazione.
ω(t): Quaternione rappresentante lavelocità angolare.
F: forza applicata al corpo.
τ : momento angolare della forza.
L(t): velocità di cambiamento delmomento angolare.
P(t): quantità di moto del corpo.
X(t): variazione dello spostamentodel corpo.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 21 / 39
![Page 22: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/22.jpg)
Physic Engine - Corpi Rigidi II
Figura: http://www.youtube.com/watch?v=zwqedhWO_5Q
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 22 / 39
![Page 23: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/23.jpg)
Physic Engine - Corpi Molli
Dinamica Corpi MolliSi utilizza un modello chiamato Mass-Spring System.
Oggetti rappresentati come array 1/2/3D, dove gli elementi sono masseparticellari, collegate fra loro da molle governate dalla legge di Hooke.
Figura: http://www.youtube.com/watch?v=qOvb3WLAX0E
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 23 / 39
![Page 24: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/24.jpg)
Physic Engine come componente esterno
Physic Engine EsterniUna alternativa allo sviluppo di un proprio Physic Engine, è quello diutilizzare un Physic Engine esterno, da integrare con il proprio GameEngine.
Un esempio è l’Havok Game Dynamics SDK, che ha fatto il suo debuttocon Max Payne 2: The Fall of Max Payne.
Esistono ovviamente Physic Engine open source, come Open DynamicEngine e SOFA (Simulation Open Framework Architecture) che supportaanche le deformazioni di corpi molli.
Havok: una dimostrazioneHavok Cloth: http://www.youtube.com/watch?v=daZoXzBGea0
Havok Destruction:http://www.youtube.com/watch?v=a06hAe747Do
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 24 / 39
![Page 25: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/25.jpg)
Parallelization Support I
Parallelization SupportLa frequenza massima delle CPU si è da tempo fermato ad un limitefisico intorno ai 3.5 GHz.
Si ha dunque un limite al numero di operazioni eseguibilisequenzialmente in un certo lasso di tempo.
Il multi-core è diventato il nuovo standard architetturale per i processoridei PC e tutti i moderni videogiochi richiedono come requisito minimoalmeno un dual-core.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 25 / 39
![Page 26: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/26.jpg)
Parallelization Support II
Case Study: tempo computazionale necessario a IdTech 5Animation blending: ≈ 2ms
Collision detection: ≈ 4ms
Obstacle avoidance: ≈ 4ms
Transparency sorting: ≈ 2ms
Virtual texturing: ≈ 8ms
Misc processing: ≈ 4ms
Rendering: ≈ 10ms
Audio: ≈ 4ms
Totale: 38ms.FPS minimo per la giocabilità: 30, allora bisogna produrre un frame almenoogni 33ms.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 26 / 39
![Page 27: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/27.jpg)
Parallelization Support III
Verso un Parallel Game Engine FrameworkParallelizzazione dei lavori, sfruttando tutti i core disponibili nel sistema.
Chiamate bloccanti da eliminare.
Gestione non banale della sincronizzazione: evitare le attese perl’accesso a risorse condivise (replicazione e aggiornamento dei dati).
Creazione di un thread di sistema per ogni core, ma utilizzo di un propriotask manager (aumento della scalabilità).
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 27 / 39
![Page 28: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/28.jpg)
Parallelization Support IV
Figura: Execution State http://software.intel.com/en-us/articles/designing-the-framework-of-a-parallel-game-engine/
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 28 / 39
![Page 29: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/29.jpg)
Artificial Intelligence
Artificial Intelligence SystemUn sistema di AI è uno strumento praticamente essenziale per ivideogiochi moderni, per garantire un comportamento quasi-reale agliNPC.
Richiesto in tutte le tipologie di videogame, ad esempio:
Board Game: la “classica” intelligenza artificiale.RTS, TBS, RPG: strategia di attacco/difesa anche variabile, risposta alle
mosse dell’avversario, meccanismi di aiuto verso gli alleati.First Person Shooter: strategie di guerriglia, utilizzo dell’ambiente, amici
e nemici “fair”.Alcune fra le più importanti features di un AI system sono:
Pseudo-sense.Realistic Behaviour.Path Finding.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 29 / 39
![Page 30: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/30.jpg)
Artificial Intelligence - Pseudosense
Pseudo-senseI giocatori fanno uso dei propri sensi per reagire alle situazioni.
Gli NPC, per fare lo stesso, richiederebbero una potenza computazionaletroppo elevata.
Si ricorre al “cheating”: l’NPC può chiedere al game engine la posizionedel player che deve uccidere o dei compagni che deve aiutare.
“Design cheating”: tag inseriti in fase di design per semplificare ilriconoscimento di determinati pattern (es: coperture, pareti sfondabili,ecc. . . )
Ovviamente queste tecnicha deve essere compensata da unaattenuazione delle reali potenzialità dell’NPC.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 30 / 39
![Page 31: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/31.jpg)
Artificial Intelligence - Behaviour I
Simulare un behaviour reale: planning systemL’uso massiccio di scripts porta ad un comportamento “robots-like”.
L’implementazione di una macchina a stati è proibitiva per le funzionalitàrichieste.
Sistemi multi-agenti: la percezione del mondo avviene leggendo gli statidi uno State Space comune.
Gli agenti devono risolvere certi goal pianificando le proprie actiondisponibili.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 31 / 39
![Page 32: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/32.jpg)
Artificial Intelligence - Behaviour II
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 32 / 39
![Page 33: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/33.jpg)
Artificial Intelligence - Path Finding I
Path FindingProblema di AI, spesso offerto anche dai Physic Engine.
Richiede molta potenza computazionale, spesso troppa per un real-time.
Semplificazione dell’algoritmo: da 3D a 2D.
Agevolazione effettuata inserendo dei tag in fase di modellazione.
Path Finding - Navigation MeshTecnica di tagging per path finding: in fase di modellazione, si aggiungonoalle mappe delle mesh che delimitano le superfici attraversabili.
Le singole mesh possono essere taggate per identificare il tipo diattraversabilità, ad esempio: oggetto scavalcabile, scalabile, . . .
Algoritmo A* per la determinazione del percorso (quasi)ottimo.
Possibile ottimizzazione per evitare movimenti “robot-like”.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 33 / 39
![Page 34: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/34.jpg)
Artificial Intelligence - Path Finding II
Figura: https://developer.valvesoftware.com/wiki/Navigation_Meshes
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 34 / 39
![Page 35: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/35.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 36: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/36.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 37: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/37.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 38: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/38.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 39: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/39.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 40: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/40.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 41: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/41.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 42: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/42.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 43: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/43.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 44: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/44.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 45: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/45.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 46: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/46.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 47: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/47.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 48: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/48.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 49: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/49.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 50: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/50.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 51: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/51.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 52: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/52.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 53: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/53.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 54: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/54.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 55: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/55.jpg)
Artificial Intelligence - Path Finding, A* Example
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 35 / 39
![Page 56: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/56.jpg)
Lista di Game Enigne
Game Engine CommercialiidTech 5, motore della idSoftware. Utilizzato per il videogioco Rage.
CryENGINE 3, motore della CryTek: produttori di Crysis.
UnrealEngine 3, motore utilizzato in titoli come Mass Effect, BioShock eGears of War.
Game Engine OpenSourceidTech 4, motore della idSoftware.
Ogre 3D, graphic engine. Scritto in c++, per PC.
Irlicht, game engine. Scritto in c++, e disponibile anche per .NET.
jMonkey, java game engine.
UNiGiNE, game engine professionale a pagamento.
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 36 / 39
![Page 57: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/57.jpg)
Reference I
Game Engine Structure, Scene Manager, Physic EngineDavid H. Eberly, 3D Game Engine Design - A pratical approach toreal-time computer graphics Second Edition, Morgan Kaufmann, 2007,
Parallel Game Enginehttp://software.intel.com/en-us/articles/designing-the-framework-of-a-parallel-game-engine/
idTech 5: Virtual Texturing, ParallelizationJ.M.P. van Waveren, Beyond Programmable Shading, Talk at SIGGRAPH2009.http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf
Artificial IntelligenceBourg Seemann; AI for Game Developers, O’REILLY, 2004http://silverspaceship.com/src/svt/
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 37 / 39
![Page 58: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/58.jpg)
Reference II
Navigation Meshhttps://developer.valvesoftware.com/wiki/Navigation_Mesheshttp://udn.epicgames.com/Three/NavigationMeshReference.html
AI in Left 4 DeadBooth Micheal, The AI Systems of Left 4 Dead, Artificial Intelligence andInteractive Digital Entertainment Conference at Stanford, Valve 2009.http://www.valvesoftware.com/publications/2009/ai_systems_of_l4d_mike_booth.pdf
Multi-Agent Systems in Videogames and leearing tecnhiqueThore Graepel, Ralf Herbrich, Adi Botea; Video Games and ArtificialIntelligence; Microsoft Applied Game (APG) group.http://research.microsoft.com/en-us/projects/ijcaiigames/
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 38 / 39
![Page 59: Game Engine](https://reader037.vdocuments.us/reader037/viewer/2022102723/558e6a361a28abf4658b4683/html5/thumbnails/59.jpg)
Reference III
Planning and A.I. in F.E.A.R.Jeff Orkin, Three States and a Plan: The A.I. of F.E.A.R., MonolithProduction, M.I.T. Media Lab, Cognitive Machines Group, GDC 2006.http://web.media.mit.edu/~jorkin/
Planning SystemBen Hardwidge, How AI in Games Works, 2009http://www.bit-tech.net/gaming/2009/03/05/how-ai-in-games-works/3
Daniele Bellavista (Università di Bologna) Game Engine Framework 10 dicembre 2011 39 / 39