Module Description

This module covers a range of Artificial Intelligence techniques employed in games, and teaches how games are and can be used for research in Artificial Intelligence. The module explores algorithms for creating agents that play classical board games (such as chess or checkers) and real-time games (Mario or PacMan), including single agents able to play multiple games. The course also covers Procedural Content Generation, and explores the techniques used to simulate intelligence in the latest videogames.

Learning Outcomes
On successful completion of the course, the students should be able to:

1. Understand the techniques behind algorithms that play real-time video games and adversarial board games.
2. Design and program an agent that is able to play any given real-time or adversarial board game.
3. Implement algorithms that generate content for games procedurally, according to some predefined goals.
4. Implement non-player character behaviours for video games that create the illusion of intelligence.

Outline Syllabus
  • Basics of Reinforcement Learning: Value Iteration, Policy iteration, Monte Carlo, Temporal Difference Learning, Q-Learning.
  • The Multi-Armed Bandit Problem, Upper Confidence Bound for Trees, Monte Carlo Tree Search.
  • Rolling Horizon Evolutionary Algorithms and Open/Closed Loop Planning.
  • Adversarial Games: Minimax, Alpha-Beta Search, Monte Carlo Tree Search.
  • A Case Study: General Video Game Playing.
  • Steering Behaviours for Autonomous Characters.
  • Path-finding: A*, Waypoint-based path-finding, Navigational Meshes.
  • Agent Behaviour: Finite State Machines, Hierarchical FSMs, Behaviour Trees.
  • Simulating Intelligence: Sensory Systems, Animations, Goal-Oriented Action Planning.
  • Procedural Content Generation for Games.