Archive for the 'teaching' Category

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


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:

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.

Introduction to STRIPS Planning and Applications in Video-games (SapienzaUniversity-2012)

In the last few weeks I have been in Italy, teaching a short course related to Artificial Intelligence and Video-games.

The course  was offered in the Ph.D. program in Computing Science and Engineering of the Sapienza University in Rome, Department of Computer, Control, and Management Engineering.  Part of the material covered was also presented as invited lectures in the Artificial Intelligence in Games and Videogames M.Sc. course taught by Prof. Marco Schaerf.

The course aims to provide an introduction to the techniques currently used for the decision making of non-player characters (NPCs) in commercial video games, and show how a simple deliberation technique from academic artificial intelligence research can be employed to advance the state-of-the art.

The course is fairly introductory mostly aimed for first-year Ph.D. students and M.Sc. students, and is also appropriate for last-year undergraduate students.

All the material presented in lectures is available at

Planning in video games seminar at Hellenic Artificial Intelligence Summer Scholl (HAISS-2011)

Earlier today I gave a seminar about planning and possible applications in video games in the 2nd Hellenic Artificial Intelligence Summer School (HAISS-2011) that was organized by the Hellenic Artificial Intelligence Society (EETN) and the Technoesis network of  the University of Patras, in Patras, Greece.

The slides of my talk (in Greek) can be found  here and the PDDL files mentioned in the talk can be found here. The planner used for the demo is BlackBox which can be found here (for windows use this executable and install the Cygwin DLL or make sure that cygwin1.dll is at the same folder as the BlackBox executable).

The abstract of the talk follows (in Greek).

Πρώτο μέρος: Εισαγωγή στην αναπαράσταση προβλημάτων σχεδιασμού (planning) με βάση τη γλώσσα STRIPS. Προέλαση, οπισθοχώρηση, και ευρετικές συναρτήσεις για την εύρεση λύσης σε προβλήματα σχεδιασμού με βάση την αναζήτηση. Αναπαράσταση προβλημάτων σχεδιασμού στην τυπική γλώσσα PDDL και χρήση του planner BlackBox για την επίλυση προβλημάτων σχεδιασμού στο πεδίο του puzzle game Sokoban.

Δεύτερο μέρος: Εισαγωγή στην ανάπτυξη τεχνητής νοημοσύνης για χαρακτήρες (non-player characters) σε video games και εφαρμογές τεχνικών σχεδιασμού σε εμπορικά video games. Αναπαράσταση των βασικών στοιχείων ενός First-Person Shooter game σε PDDL από την οπτική ενός αντίπαλου χαρακτήρα στον κόσμο του παιχνιδιού, και χρήση του planner BlackBox για την επίλυση προβλημάτων σχεδιασμού που σχετίζονται με τις επιλογές του χαρακτήρα στο παιχνίδι. Σύντομος σχολιασμός επιπλέον τεχνικών όπως η παρακολούθηση εκτέλεσης και ο επανασχεδιασμός.