|SCIENTIFIC DISCIPLINARY SECTOR||ING-INF/01|
|LANGUAGE||Italian (English on demand)|
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 provides algorithms and tools to develop simulations using a game engine.
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 good 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,
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.
Office hours: The student reception takes place in the days and hours established from time to time with the students via email.
Office hours: Reception: appointment, agreed by email or telephone
All class schedules are posted on the EasyAcademy portal.
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. 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.
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.