3d video games

A.A. 2019/2020
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'obiettivo dell'insegnamento è fornire un'approfondita comprensione delle soluzioni adottate dai videogiochi 3D (ovvero giochi ambientati in mondi 3D virtuali) al fine di affrontare i numerosi compiti che devono essere risolti durante la loro esecuzione, compreso il background matematico, le strutture di dati, gli algoritmi maggiormente impiegati, e la relativa terminologia tecnica. L'obiettivo finale è quello di fornire i concetti che sottendono allo sviluppo di un game-engine 3D moderno, che sono anche necessari all'uso pienamente consapevole di strumenti esistenti di questo tipo.
Risultati apprendimento attesi
Al termine dell'insegnamento, gli studenti avranno appreso le tecniche alla base delle soluzioni ubiquamente adottate dai moderni videogiochi 3D. In particolare, avranno familiarizzato con il background matematico, gli algoritmi e le strutture dati preposte ad affrontare le sfide tecnologiche che devono essere superate da un videogioco 3D, fra cui: la rappresentazione di oggetti e ambienti virtuali 3D, la rappresentazione del loro aspetto, la simulazione della loro evoluzione fisica, la riproduzione di computer animations 3D (scripted o procedurali) e di effetti visuali 3D. Gli studenti vengono inoltre dotati delle nozioni atte a collegare i contenuti impartiti da questo insegnamento a quelli proposti da altri insegnamenti del corso di laurea, che siano pertinenti ai 3D videogames, come quelli inerenti a: real-time audio, real-time rendering avanzato, intelligenza artificiale per virtual agent, e networking. Alcuni dei contenuti trattati nell'insegnamento sono rinforzati attraverso l'esemplificazione in pratica con game-dev tools o game-engines esistenti.
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Secondo semestre

Programma
Le lezioni 0 e 1 introducono il corso e ripercorrono *brevemente* alcuni concetti base di matematica (soprattutto algebra lineare). Le lezioni 2 e 3 specializzano questi concetti fornendo alcune basi matematiche specifiche utili nel contesto dei 3D videogames. Le lezioni dalla 4 alla 12 approfondiscono i meccanismi che sottendono al funzionamento di un 3D videogame, con particolare attenzione agli aspetti algoritmici, agli asset specializzati, e alle strutture dati relative (con accenni alle tecniche di costruzione di questi asset nei production pipelines). Le lezioni dalla 13 alla 17 forniscono connessioni esplicite con gli argomenti svolti agli ad alcuni altri insegnamenti del corso di laurea che sono rilevanti: in particolare, i corsi di Sound in Interaction, Real Time Graphics Programming, Mobile Games, e Artificial intelligence for Video Games.

* Lez 0: Introduzione: 3D videogames. team di sviluppo di Game. Assets per 3D games

* Lez 1: Basi Matematiche: Points, Vectors, Versors algebra [riassunto]

* Lez 2: Basi Matematiche: Trasformazioni spaziali specializzate per 3D games

* Lez 3: Basi Matematiche: Rotazioni: 3D rappresentazioni, operazioni

* Lez 4: Scene graph: strutture dati, usi.

** Lez 5: Game Physics: dimamica (sistemi di integrazione, approcci)

** Lez 6: Game Physics: collisioni [detection, response]

* Lez 7: Particle Systems nei 3D Games

* Lez 8: Models 3D per Games

** Lez 9: Textures nei 3D Games

* Lez 10: Animazioni 3D nei Games: cinematica

* Lez 11: Animazioni 3D nei Games: blend shapes

** Lez 12: Animazioni 3D nei Games: skeletal animations

* Lez 13: Sound in 3D Games

* Lez 14: Networking for 3D Games

* Lez 15: AI/IA per 3D games

* Lez 16: Rendering nei 3D games: lighting & materials

* Lez 17: Rendering nei 3D games: le tecniche più usate

* Lez 18: Conclusioni
Prerequisiti
Sono richieste le conoscenze di base di algebra lineare, algoritmi, e di un linguaggio di programmazione ad oggetti.
E' fortemente consigliato il superamento dell'insegnamento di Computer Graphics.
Metodi didattici
La maggior parte degli argomenti sono esposti attraverso lezioni frontali. Alcuni argomenti (come simulazione fisica, o effetti screen space) vengono esemplificati attraverso codice scritto in aula. Ci si avvarrà di game engine e di asset creation tools per esemplificare alcuni dei contenuti.
Materiale di riferimento
La pagina web del corso fornisce diapositive e materiale aggiuntivo: https://mtarini3dvg.ariel.ctu.unimi.it/

I seguenti libri di testo possono essere d'aiuto per la preparazione

* Game Engine Architecture (qualsiasi edizione) Jason Gregory

* Mathematics for 3D Game Programming and Computer Graphics (qualsiasi edizione) Eric Lengyel

Una descrizione più dettagliata del contenuto dei due testi e una lista di materiali aggiuntivi si trovano nel sito indicato (lezione 0)
Modalità di verifica dell’apprendimento e criteri di valutazione
Esame scritto ed orale. Su richiesta, l'esame può essere completato con un progetto concordato.

La prova scritta, della durata di 2 ore, consiste in una rassegna di brevi domande che coprono "a tappeto" gli argomento svolto nell'insegnamento, con una o due domande per ogni lezione svolta. Con il superamento dell'esame scritto si accede all'orale, che verte sull'intero programma. Il voto finale è la media delle due prove.

Il progetto è opzionale e viene concordato col docente. Può consistere nell'implementazione, possibilmente integrata ad un progetto esistente, che mette in pratica uno degli argomenti trattati, oppure in uno studio più approfondito di un tema di ricerca legato ad uno degli argomenti trattati, da esporre in un seminario.

La valutazione è tesa a verificare la piena comprensione degli argomenti trattati nel corso, la capacità di individuare le soluzioni esistenti idonee ad affrontare le sfide tecniche relative ai video games, l'acquisizione del vocabolario tecnico proprio della disciplina, e il grado di familiarità raggiunto nell'uso degli strumenti matematici preposti allo scopo.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente: Tarini Marco
Turni:
-
Docente: Tarini Marco
Docente/i
Ricevimento:
Martedì 14:30-17:30 (o su appuntamento)
Dipartimento (Via Celoria 18) -- 4to piano.