Modeling and simulation are fundamental tools for design, training and learning in general. Video games are a particular type of simulation, where additional rules and strategies can be introduced to improve performance in the above-mentioned application areas. In addition, video games require great computing performance, normally achieved through the joint use of optimized hardware / processor architectures and high-level software development tools. The teaching therefore addresses the development of simulations through state-of-the-art 2D and 3D game development platforms
The course covers the elements of programming for videogames. Students will learn the basics of both 2D and 3D programming along with the techniques used by the newest CAD tools for videogame design. After an introduction about the various types of simulation, a basic game engine for attaching the components of 2D games programming is presented. The basic of the 3D graphics and 3D videogame through the usage of a CAD graphics tool and an AAA game engine is also provided. One fifth of the credit is obtained through a final project.
The aim of the course is to provide the basis for the design and development of software simulation. The student is introduced to different concepts of computer graphics (rendering, collision detection, illumination models, etc.) and event-based programming (game loop, co-routines, etc.) and he is supported through extensive exercises during lectures. The course aims to train a professional figure capable of designing and implementing complex software simulation using video game technologies.
The student should have some programming knowledge.
The course is composed of a set of frontal lessons and a set of practice sessions. During the frontal lesson, the teacher presents the topics providing also examples of live code that are tested on a real game engine (e.g. Unity 3D). Students can use their own laptops during the lecture in order to reproduce what is proposed by the teacher. During the practice sessions, the students have to face up with real problems that they should solve by applying the techniques learnied during the lectures.
The course is divided into two parts: the first deals mainly with 2D graphics using graphics engines of reduced computational load (for example, they can also be used on microcontrollers). The second part of the course deals with the design of simulations and 3D games mainly using the Unity3D platform, along with advanced I/O devices such as Azure Kinect, Hololens 2, sensors and actuators in general
The various examples developed in class address among others:
• Installation and configuration of tools and development environments (visual studio, monogame and components)
• Classes, constructors, initializations, updates from asynchronous events, arrays of elements
• Lists of objects, sound effects, collision management, examples
• Sprite, graphic screens
• Level / switch case management
• Game logic
• Management of movements and controls
• Tracking algorithms
• The Xamarin platform and Visual studio
• Management of sensor data
• Unity environment, main functions, views, packages
• Creation, use and removal of objects
• Spawn manager
• Sound and effects
• Game play mechanics
• User interface
• Project optimization and improvement
• Export / import project
• Data persistence
• Visual scripting
• Visual scripting application
Lecture notes (from AulaWeb)
Books (as references):
B. Tristem, M. Geig. Unity Game Development in 24 Hours. Sams Teach Yourself
J. Hocking. Unity in Action: Multiplatform Game Development in C# with Unity 5. Manning
J. Gregory. Game Engine Architecture CRC Press, 3rd ed.
Ricevimento: Reception: appointment, agreed by email or telephone
MARCO RAGGIO (President)
RICCARDO BERTA
FRANCESCO BELLOTTI (President Substitute)
https://corsi.unige.it/10728/p/studenti-orario
Exam consists in developing of an application project addressing interactive simulation, to be agreed with the teacher and oral discussion. In the commitment required for the project, specific needs for working students will be taken into account.
During the oral exam the student, on the basis of the developed project, will have to show understanding of the topics covered in the course, discuss the design choices, with the aid of the computer analyze the results obtained.
Students with learning disorders ("disturbi specifici di apprendimento", DSA) will be allowed to use specific modalities and supports that will be determined on a case-by-case basis in agreement with the delegate of the Engineering courses in the Committee for the Inclusion of Students with Disabilities.