🎮 Game AI
The ultimate course on Classical AI in modern videogames, covering everything you need to know, from Behaviour Trees to Neural Networks.
📚
12
chapters
🎞️
20 +
hours
📦
8
C# libraries
📝
2
assignments
Course Description
“Game AI” is an online course designed for game developers and programmers who are keen to learn how Artificial Intelligence is applied in videogames. The course focuses on classical AI, covering popular techniques such as Behaviour Trees, Pathfinding, Goal-Oriented Action Planning, and Evolutionary Computation. The aim of this course is not just to teach how to use those techniques, but to understand how and why they work in the first place. Many online tutorials, in fact, can get you started quickly, but without a solid theoretical foundation, they fail to teach transferrable skills and to develop a solid understanding of Game AI at a professional level.
While Neural Networks are also covered in details, this course does not include Generative AI (such as Midjourney and ChatGPT). Classical AI techniques are, in fact, the dominant way to automate decision-making in modern videogames, as they offer full control to the developers.
Course Content
The course counts overs 20 hours of content, divided between 12 chapters, focusing on as many topics and techniques. “Game AI” is designed like a buffet: each chapter is self-contained, so that you can skip the ones that are not relevant to you, and focus on what you really need.
👨🏻🏫 Lecture
🔢 Maths
🖥️ Coding
📦 Unity package
📄 Documentation
🤖 01 ● Introduction
- 👨🏻🏫 Introduction
- 👨🏻🏫 Defining Artificial Intelligence
- 👨🏻🏫 PONG: Reactive & Predictive AI
- 👨🏻🏫 Pac-Man: Intelligence vs Personality
📜 02 ● History of AI
- 👨🏻🏫 Introduction
- 👨🏻🏫 History of Game AI
- 👨🏻🏫 AI Before Computers
🔄 03 ● Finite State Machines
- 👨🏻🏫 Introduction
- 👨🏻🏫 Pac-Man’s Ghost AI
- 👨🏻🏫 Extensions
- 🖥️ Implementation
- 📦 Finite State Machine Library
🌳 04 ● Behaviour Trees
- 👨🏻🏫 Introduction
- 👨🏻🏫 Structure
- 👨🏻🏫 Extensions
- 👨🏻🏫 Games
- 🖥️ Implementation
- 📦 Behaviour Tree Library
- 📄 Behaviour Tree Library Documentation
🗺️ 05 ● Pathfinding
- 👨🏻🏫 Introduction
- 👨🏻🏫 Path to Pathfinding
- 👨🏻🏫 Breath-First Search
- 👨🏻🏫 Depth-First Search
- 👨🏻🏫 Dijkstra’s Algorithm
- 👨🏻🏫 A*
- 👨🏻🏫 From Pathfinding to AI
- 🖥️ Implementation
- 📦 Pathfinding Library
- 📄 Pathfinding Library Documentation
🚗 06 ● Steering Behaviours
- 👨🏻🏫 Introduction
- 🔢 Linear Algebra
- 🔢 Kinematics
- 👨🏻🏫 Seek & Flee
- 👨🏻🏫 Arrival & Leave
- 👨🏻🏫 Other Steering Behaviours
- 📦 Steering Behaviours Library
🐦 07 ● Emergent Behaviours
- 👨🏻🏫 Introduction
- 👨🏻🏫 Flocking Behaviours
- 👨🏻🏫 Collision Avoidance
- 🖥️ Particle Life
- 🖥️ Cellular Automata
📊 08 ● Utility Theory
- 👨🏻🏫 Utility Systems
- 🔢 Expected Utility
- 👨🏻🏫 Action Selection
- 👨🏻🏫 Utility Curves
- 🖥️ Chess AI
- 🖥️ Tetris AI
📝 09 ● Planning
- 👨🏻🏫 Introduction
- 👨🏻🏫 From Pathfinding to Planning
- 👨🏻🏫 Goal-Oriented Action Planning
- 👨🏻🏫 STRIPS: Stanford Research Institute Problem Solver
- 🖥️ Implementation
- 📦 GOAP Library
- 📄 GOAP Library Documentation
🔎 10 ● Tree Search
- 👨🏻🏫 Introduction
- 👨🏻🏫 Minimax
- 👨🏻🏫 Alpha-Beta Pruning
- 👨🏻🏫 Multi-Armed Banding Problem
- 👨🏻🏫 Monte Carlo Tree Search
- 👨🏻🏫 Go AI
- 🖥️ Implementation
- 📦 Monte Carlo Tree Search Library
🧬 11 ● Evolution
- 👨🏻🏫 Content Warning
- 👨🏻🏫 Introduction
- 👨🏻🏫 Evolution by Natural Selection
- 🖥️ Evolutionary Algorithms
- 👨🏻🏫 Genetic Algorithms
- 📦 Evolution Library
- 📄 Evolution Library Documentation
🧠 12 ● Neural Networks
- 👨🏻🏫 Introduction
- 🔢 Regression Analysis
- 🔢 Linear Regression
- 🔢 Non-Linear Regression
- 👨🏻🏫 Universal Approximation Theorem
- 🔢 Backpropagation
- 📦 Neural Network Library
- 📄 Neural Network Library Documentation
All students also have access to a large number of C# libraries, designed to perform most of the AI techniques covered in the course. They are fully compatible with Unity, and can be used for free in your games and projects.
Course Prerequisites
This course is designed for game developers and programmers, but there are no formal prerequisites. A basic knowledge of coding is recommended, but all the programming bits are self-contained and can be skipped. Likewise, the most mathematical parts are optional, but available to the students who feel ready for an extra challenge.
All resources for the course are developed in C# and Unity, but you do not need to be proficient in either. Moreover, most the theoretical content is language-agnostic, so that you can apply your knowledge to any other game engine or programming language.
Assignments
The course includes two practical assignments, which challenge students to create AIs for popular games, such as Snake and Tetris.
🐍 CW1 ● Snake Assignment
- 👨🏻🏫 Snake Assignment
- 📝 Assignment Brief
- 📦 Assignment package
🧱 CW2 ● Tetris Assignment
- 📝 Assignment Brief
- 📦 Assignment package
Although all assignments are done in Unity and C#, you do not need to be proficient in either, thanks to the use of very expressive APIs.