Book Image

Unity Artificial Intelligence Programming - Fifth Edition

By : Dr. Davide Aversa
Book Image

Unity Artificial Intelligence Programming - Fifth Edition

By: Dr. Davide Aversa

Overview of this book

Developing artificial intelligence (AI) for game characters in Unity has never been easier. Unity provides game and app developers with a variety of tools to implement AI, from basic techniques to cutting-edge machine learning-powered agents. Leveraging these tools via Unity's API or built-in features allows limitless possibilities when it comes to creating game worlds and characters. The updated fifth edition of Unity Artificial Intelligence Programming starts by breaking down AI into simple concepts. Using a variety of examples, the book then takes those concepts and walks you through actual implementations designed to highlight key concepts and features related to game AI in Unity. As you progress, you’ll learn how to implement a finite state machine (FSM) to determine how your AI behaves, apply probability and randomness to make games less predictable, and implement a basic sensory system. Later, you’ll understand how to set up a game map with a navigation mesh, incorporate movement through techniques such as A* pathfinding, and provide characters with decision-making abilities using behavior trees. By the end of this Unity book, you’ll have the skills you need to bring together all the concepts and practical lessons you’ve learned to build an impressive vehicle battle game.
Table of Contents (17 chapters)
1
Part 1:Basic AI
6
Part 2:Movement and Navigation
11
Part 3:Advanced AI

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.