3d Video Games

A.Y. 2021/2022
6
Max ECTS
48
Overall hours
SSD
INF/01
Language
English
Learning objectives
The objective of the course is to provide an in-depth understanding of the techniques commonly adopted by 3D video-games (ie games set in virtual 3D worlds) in order to tackle the numerous challanges that must be solved during their execution; this includes the mathematical background, the data-structures, the algorithms, and the related technical terminology. The ultimate goal is to provide the concepts at the basis of the development of a modern 3D game-engine, which are also necessary for the correnct use of existing tools of this type.
Expected learning outcomes
At the end of the course, the students will have learned the techniques underlying the solutions ubiquitously adopted by modern 3D video games. In particular, they will have acuqired familiarity with the mathematical background, the algorithms and the data structures employed to tackle the challenges that are faced by a 3D video-game, including: the representation of 3D objects and virtual environments, the representation of their appearance, the simulation of their physical evolution, the reproduction of 3D computer animations (scripted or procedural) and 3D visual effects. Students are also provided with notions suitable to bridge the contents imparted by this course to the relevant ones offered by other courses, such as those related to: real-time audio, advanced real-time rendering, artificial intelligence for virtual agents, and networking. Some of the contents covered in the teaching are reinforced through practical exemplification with existing game-dev tools or game-engines.
Single course

This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.

Course syllabus and organization

Single session

Responsible
Lesson period
Second semester
Course syllabus
* 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)
Prerequisites for admission
No formal prerequisite is required.

A background in Math (linear algebra), Physics (Newtonian dynamics), programming (imperative, OO), and Computer Graphics is STRONGLY advised.
Teaching methods
Frontal lectures.

In some lecture, in order to make examples and demonstrations, an existing Game Engine will be used. It is recommended to attend the lectures with a working laptop.
Teaching Resources
Slides of each lesson are provided (see on the Ariel platform)

Suggested textbooks (not strictly required):

* for the math part: "Mathematics for programming 3D games and computer graphics" - Eric Lengyel - ISBN: 1435458869

* for the physics and animation parts: "Game Engine Architecture (any edition is fine)" - Jason Gregory - ISBN: 1138035459
Assessment methods and Criteria
The exam consist in a written test and an oral part. The written test is carried out on the Moodle SEB platform, and consists of a sequence of small quizzes screening the knowledge and understanding of the entire course. The exam is completed with a brief oral exam. It is possible (but not necessary) to present a small project agreed with the professor (this is offered as a support for the student and no extra mark is awarded).
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours
Professor: Tarini Marco
Professor(s)
Reception:
Tuesday 14:30-17:30 (or by appointment)
Department (Via Celoria 18) -- 4th floor.