3d video games

A.A. 2020/2021
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Inglese
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.
Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Secondo semestre
ATTENZIONE: queste informazioni sono soggette a cambiamenti (il corso si svolge a partire da Febbraio 2021).
Si fa riferimento agli annunci di ateneo.

In fase emergenziale, la didattica viene svolga attraverso videolezioni in diretta con piattaforma Zoom.
I link alle videolezioni, vengono forniti, lezione per lezione, sulla piattaforma Ariel.

L'esame scritto viene svolto in modalità scritta su piattaforma Moodle SEB, e consiste in una sequenza di piccole domande
(chiuse, aperte, risoluzione di piccoli esercizi) che vertono sull'intero programma.

Per informazioni:
https://www.unimi.it/it/studiare/frequentare-un-corso-di-laurea/seguire…
Programma
* Lez.01: Introduzione

* Lez.02: Matematica per 3D games: punti, vettori, versori
* Eser.A: Matematica per 3D games: esercizi ed esempi
* Lez.03: Matematica per 3D games: trasformazioni geometriche
* Lez.04: Matematica per 3D games: rotazioni 3D
* Lez.05: Matematica per 3D games: rappresentazioni basate su quaternioni

* Lez.06: The scene graph

* Lez.07: 3D Game physics: dinamica, integratori
* Lez.08: 3D Game physics: position based dynamics
* Exer.B: 3D Game physics: sandbox sulla diniamica
* Lez.09: 3D Game physics: gestione delle collisioni e proxy
* Exer.C: 3D Game physics: sandbox su collisioni

* Exer.D: sistemi di particelle

* Lez.10: rappresentazioni geometriche per 3D games

* Lez.11: pipeline di produzione di asset per 3D Games

* Lez.12: Textures per 3D Games: come assets
* Lez.13: Textures per 3D Games: normal-maps

* Lez.14: Animazioni nei 3D Games: cinematica
* Lez.15: Animazioni nei 3D Games: blend-shapes
* Lez.16: Animazioni nei 3D Games: animazioni scheletali
* Exer.E: Animazioni nei 3D Games: sandbox

* Lez.17: Lezione ponte: audio nei 3D games
* Lez.18: Lezione ponte: networking in 3D games
* Lez.19: Lezione ponte: AI in 3D games
* Lez.20: Lezione ponte: Illuminazione e materiali
* Eser.F: Lezione ponte: rassegna di tecniche di rendering per 3D games


Note:

* Ogni lezione e esercitazione dura circa 2 ore (pause incluse).

* Gli esercizi sono strutturati 40 min di introduzione seguiti da 80 min di esercitazioni pratiche (incluso il supporto di motori di gioco).

* Le lezioni "ponte" sono una visione dall'alto di interi argomenti, che hanno lo scopo di collegare i contenuti di questo insegnamento con altri insegnamenti del corso di laurea.

* "Il gioco della settimana": ogni settimana, dopo la normale lezione, verrà offerta una mini lezione non ufficiale datta "Il gioco della settimana", in cui verrà brevemente analizzato un videogioco esistente, che "abusa" oppure contraddice l'uso tradizionale dei meccanismo presentato nelle ultime lezioni. (questo piccolo simario è completamente fuori programma, completamente facoltativo e non mai è un argomento di esame)
Prerequisiti
Non è richiesto alcun prerequisito formale.

Si consiglia FORTEMENTE una formazione in computer grafics, matematica (algebra lineare), fisica (dinamica newtoniana), e programmazione (linguaggi imperativi e OO).
Metodi didattici
Lezioni frontali.

Talvolta, per effettuare esempi e dimostrazioni, ci si avvarrà dell'uso di un Game Engine esistente. E' consigliata la disponibilità di un proprio laptop durante lo svolgimento delle lezioni.
Materiale di riferimento
Vengono forniti lucidi di ogni lezione (vedere piattaforma Ariel)

Libro di testo suggeriti (non è necessario il loro possesso):

* per la parte di matematica: "Mathematics for 3D game programming and computer graphics" - Eric Lengyel - ISBN: 1435458869

* per le parti di fisica ed animazione: "Game Engine Architecture" (quasiasi edizione) - Jason Gregory - ISBN: 1138035459
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame si svolge in modalità scritta attraverso la piattaforma Moodle SEB, e consiste in una sequenza di domande (chiuse, aperte, risoluzione di piccoli esercizi...) che vertono sull'intero programma. L'esame è completato da un breve orale. E' possibile (ma non necessario) presentare un piccolo progetto concordato con il docente. (questo è offerta come opportunità di apprendimento per lo studente, e non prevede un incremento del voto)
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente: Tarini Marco
Docente/i
Ricevimento:
Martedì 14:30-17:30 (o su appuntamento)
Dipartimento (Via Celoria 18) -- Stanza 4006