The course covers the technical knowledge at the core of the solutions ubiquitously adopted by modern 3D Video Games (i.e. games featuring 3D graphics, set in virtual 3D worlds). Specifically, it illustrates the Algorithms and Data Structures designed to face the challenges encountered by the development of a 3D Video Game, including: representation of 3D objects and virtual environments, simulation of physically based interactions between these objects, modelling their animations, materials and behaviors.
List of covered topics · Preliminary: mathematics for 3D Games + Points, Vectors, Transformations (with focus on rigid transformations and quaternions) · The Scene Graph + Data structures, abstractions, problems; authoring (notes) · 3D digital models - rendering oriented + Data structures; vertex attributes; trends; limitations; LOD pyramids; assets, their management, and their authoring (notes). · 3D digital models - for other uses (such as physics, interactive agents, 3D audio) + 3D proxies, spatial indexing structures, nav-meshes: data structures and uses. · Textures and Materials for 3D objects. + Texture types (with focus on Tangent Space Normal Maps); materials as data structures (with focus on Physically Based Materials); assets; their authoring (notes). · 3D Game Physics + Approaches for simulation of dynamics. · Scripted Animations in 3D games + Kinematic animations; Skeletal animations (focus); Blend-Shapes; Inverse Kinematics; ragdolls. Data structures and assets. Authoring (notes). · Collisions in 3D games + Detection: algorithms and techniques. Response. · Particle Systems in 3D Games + Concept and examples. Authoring (notes). · Networked 3D games + Challenges and approaches of solution. Distributed physics. · Audio in 3D games + Audio assets in the graph; 3D audio; challenges and specific solutions for voiceovers, ambient sounds, music. Authoring (notes). · Rendering Techniques in 3D games + High-level overview on the most used techniques.
In each topic, the course specifically covers the subset of issues and solutions that find a direct application in the current generation of 3D Video Games, and which are adopted, for example, in most common Game Engines and titles. The topics are covered at low level of abstraction (with the exception of the last one).
The objective of the course is to provide the technical understanding of the solutions (including algorithms, existing tools, and technical terminology) employed in the industry to address the numerous technical sub-task that must be faced during the development of a 3D Video Game. The ultimate objective is to endow the student with the conceptual tools to allow a better usage of any given video game development environment or game engine.
To this end, some of contents covered by course are exemplified in practice through the adoption of a small set of specific game-dev or game engines. The course will include links to the content provided by other similarly themed courses of this Laurea Degree: Artificial intelligence for Video Games, Online Graphics Programming, Mobile Games, Sound in Interaction, and Graphics and Digital Images. The course assumes a basic understanding of mathematics and programming skills. A background in 3D Computer Graphics is helpful. There is, however, no formal prerequisite.