Interactive Objects in Gaming Applications (Sapienza University of Rome-2013)

I am teaching a topics course with Prof. Marco Fratarcangeli about “Interactive Objects in Gaming Applications: Basic principles and practical scenarios using the Unity platform”, in which I am covering the part about how objects can exhibit behavior. In particular I focus on i) Pathfinding ii) Action-based decision making, and iii) AI Architectures.

i) Pathfinding

Overview

The lectures about path planning (or pathfinding) can be found on slideshare: Pathfinding-Part1, Pathfinding-Part2, Pathfinding-Part3. Also, the Unity code examples of Part 2 (based on Aron’s Pathfinding and Unity’s 3D Platformer Tutorial) can be found here: Pathfinding-Unity.zip

Information about the material will be updated as we go, as well as a long list of references.

Abstract of the course:

The course aims at providing a hands-on introduction on the basic principles as well as state-of-the-art methods and techniques for building interactive objects in video games. Each of the aspects examined will be presented both in a theoretical framework that allows studying related research problems as well as in a practical setting providing the tools needed for a real-world implementation. For the latter we will rely mostly on Unity, a popular game engine that is becoming an emerging standard for indie game development. The course is divided in two main themes: one that focuses on the physical aspect of the behavior of interactive objects, and one that focuses on the artificial intelligence aspect of the behavior of smart objects.

In the first part we will introduce the basic concepts for the development of interactive applications, including logic, rendering, physics, audio, user interaction and graphical interface. We will map each of these concepts in their practical implementation by using the Unity toolset.

In the second part we will continue with some of the most widely used methodologies that allow smart objects and non-player characters (NPCs) to exhibit autonomy and flexible behavior through various forms of decision making, including techniques for pathfinding, reactive behavior through automata and processes, and goal-oriented action planning.