What this book covers
Chapter 1, Introduction to AI, talks about what AI is and how it is used in games. We also discuss the various techniques used to implement AI in games.
Chapter 2, Finite State Machines, discusses a way of simplifying how we manage the decisions that AI needs to make. We use FSMs to determine how AI behaves in a particular state and how it transitions to other states.
Chapter 3, Randomness and Probability, discusses the basics behind probability, and how to change the probability of a particular outcome. Then we look at how to add randomness to our game to make the AI less predictable.
Chapter 4, Implementing Sensors, looks at making our characters aware of the world around them. With the ability for our characters to see and hear, they will know when an enemy is nearby and when to attack.
Chapter 5, Flocking, discusses the situation where many objects travel together as a group. We will look at two different ways to implement flocking, and how it can be used to make objects move together.
Chapter 6, Path-Following and Steering Behaviors, looks at how AI characters can follow a path provided to reach a destination. Then we look at how AI characters can find a target without having a predefined path, simply by moving toward a goal while avoiding obstacles as they appear.
Chapter 7, A* Pathfinding, discusses a popular algorithm used to find the best route from a given location to a target location. With A*, we scan the terrain and find the best path that leads us to the goal.
Chapter 8, Navigation Mesh, discusses using the power of Unity to make pathfinding easier to implement. By creating a Navigation Mesh (this requires Unity Pro), we will be able to represent the scene around us in a better way than we could by using tiles and the A* algorithm.
Chapter 9, Behavior Trees, teaches you about behavior trees, a popular decision-making technique for game AI. We will explore the general architecture of behavior trees and how to use them to control a simple agent. Then we will use the free plugin Behavior Bricks to apply our new knowledge to a simple mini-game project.
Chapter 10, Procedural Content Generation, explores the basics of generative AI and procedural content generation. We will see how to use Perlin noise to generate realistic terrain, and how to use Cellular Automata to generate a cave-like dungeon map.
Chapter 11, Machine Learning in Unity, explores how to apply machine learning (in particular, reinforcement learning) to game characters for games or simulations. We will use the official Unity ML-Agents Toolkit. In the first part, we will learn how to configure Unity and the external requirements for the toolkit. Then we will showcase two simple practical examples.
Chapter 12, Putting It All Together, takes various elements of what you have learned throughout the book and brings it all together into one last project. Here, you will apply the remaining AI elements you have learned and create an impressive vehicle battle game.