Archive for the 'video games' 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

Real-time Action Planing with Preconditions and Effects (GameCoderMag-2012)

I wrote an article for the March issue of the Game Coder Magazine:

Abstract: In this article I will be covering an artificial intelligence (AI) technique for decision making that can be used in various parts of game development to account for “thinking before acting”. The technique is called Classical Planning in academic AI research, and is one of the most basic approaches for deliberating about the effects of actions and the way the properties of a given domain change under these effects. Variants of this technique have been used successfully in game development under the name Goal Oriented Action Planning (GOAP), each time focusing on a different aspect of this technique, adopting it for the particular needs of the game.

You can get the article here.

More information: In the article I go over a simple example inspired from real-time strategy games. I focus on the behavior of a peasant that can be instructed to bring food or handle other resources, and extend the character’s functionality so that they can take more advanced commands which may need a series of actions to be realized. Using this example I go over one of the simplest forms of planning, that is propositional STRIPS planning, and present an implementation using Python.

The following screenshots are code listings included in the article, which show how the planning algorithm can help the peasant find ways to realize the given commands. 

The self-contained Python code can be found here: PyPlan. The file contains all the necessary classes and methods for implementing planning, and includes a simple example based on the peasant scenario that is explained in detail in the article.


author = {Vassos, Stavros},
citeulike-article-id = {11193150},
citeulike-linkout-0 = {},
journal = {GameCoder Magazine},
keywords = {goap, planning, strips, video\_games},
month = mar,
number = {3},
pages = {20–27},
title = {Real-time Action Planing with Preconditions and Effects},
url = {},
year = {2012}

NPCs with Artificial Intelligence: From FSMs to BTs to GOAP (GameExpo-2012)

On Friday March 16, I gave a talk at the IEEE Patras Games Expo 2012, which was organized by the IEEE Computer Society Student Chapter in collaboration with the IEEE Student Branch of University of Patras.

My talk was related to artificial intelligence (AI) techniques for specifying the behavior of non-player characters (NPCs) in video games. As a quick introduction to the main ideas behind the most common techniques that have been used in commercial video games, I went over three approaches: Finite State Machines (FMSs), Behavior Trees (BTs), and Goal-Oriented Action Planning (GOAP). The intention was to introduce students to the ideas and highlight what I consider to be the past, the present, and the future of techniques for NPC behavior.

The slides of my talk (in Greek) can be found  here. Some examples in the slides are taken from the book Artificial Intelligence for Games by  Ian Millington, and John Funge, an excellent resource for all types of AI methods for game development.


Talk about SimpleFPS at SRI International, Menlo Park, CA (2011)

On Friday October 14, I gave a talk about some preliminary work on building a PDDL benchmark for First-Person Shooter games at SRI International’s Artificial Intelligence Center, Menlo Park, CA USA, 2011.

The talk was based on the following workshop paper I presented at AIIDE-2011: The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs.

The details of the talk can be found here. The slides of my presentation can be found here.

The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs (INT4-2011)

The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs, Stavros Vassos, and Michail Papakonstantinou, In Proceedings of the Non-Player Character AI workshop (NPCAI-2011) of the Artificial Intelligence & Interactive Digital Entertainment (AIIDE-2011) Conference, Stanford CA, USA, 2011.
[pdf | citeulike| slides | slideshare]
Continue reading ‘The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs (INT4-2011)’

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 για την επίλυση προβλημάτων σχεδιασμού που σχετίζονται με τις επιλογές του χαρακτήρα στο παιχνίδι. Σύντομος σχολιασμός επιπλέον τεχνικών όπως η παρακολούθηση εκτέλεσης και ο επανασχεδιασμός.