Goal-Oriented Action Planning (GOAP) is an AI architecture that provides game characters with the ability to select goals and make plans to achieve those goals based on the state of the environment and available resources. It can be used across a wide range of game genres from first-person shooters to real-time strategies, to develop intelligent characters capable of making smart decisions without the need for large finite state machines. The codebase is deceptively simple and yet logical, reusable and extremely powerful. The library is written in C# and implemented in Unity V.2019, however will easily port to other applications.
In this course, Penny demystifies the advanced AI technique of GOAP used for creating believable and intelligent game characters in games using her internationally acclaimed teaching style and knowledge from over 25 years working with games, graphics and having written two award-winning books on games AI. Throughout, you will follow along with hands-on workshops designed to take you through every step of putting together your own GOAP API. You will build the entire GOAP library from the ground up while building a hospital simulation scenario in parallel, to test the API as you go.
Learn how to program and work with:
A GOAP Library and API that's reusable across a wide range of game projects.
Goals, Actions, States and Beliefs that define the state of the game environment, what individual characters want to do and how they understand their world.
Navigation Meshes and Agents that provide advanced path planning and navigation capabilities for characters.
Dynamic Building of NavMeshes to allow for the repositioning of resources in the environment.
Inventories for each character for use in completing tasks that satisfy character goals.
The Unity UI system to move draggable resources into a game environment.
Contents and Overview
Throughout the course, you will follow along while a GOAP library and API are constructed from the ground up, to allow you intimate knowledge of the codebase. Alongside this, a simple hospital simulation will be constructed to test out the functionality of the library as it is put together. The simulation will also rely on Unity's NavMesh System for navigation and path planning.
The course begins with an overview of Unity's NavMesh System and covers the basic functionality needed for the hospital simulation. It then goes on to cover the concept of GOAP, where students will discover how goals, actions and plans interact. A planner will be constructed that dynamically builds each character's sequence of actions, based on what they believe their goals are while in the simulation.
Following this, inventories will be introduced and developed to hold resources for individual characters. The resources in the inventories will be required for plan completion and also assist in directing a character's navigation around the environment. This will then build to the design of more complex behaviours in which two characters must collaborate to complete a plan.
As the course continues, more characters with differing roles will be added and dynamically created and resources will be added and removed to develop a complex simulation. By the end of the course, students will have a hospital simulation with patients, nurses, doctors and janitors each with their own roles, goals, actions and required resources.
Although this course is not about building a completed game, a final section will provide some further knowledge on Unity development and examine methods for interacting with the environment such as: dragging and dropping items, dynamic NavMesh baking, user interface creation and camera movement to provide students with some direction on how such a simulation could be turned into a game.
At the completion of this course, students will have a fully-fledged GOAP library and API that they can reuse in their own game projects to provide game characters with complex intelligent behaviours.
What students are saying about Penny's courses:
Turns out, the hardest part of this course for me is finding the words to describe how glad I am to have enrolled in it.
I honestly love Hollistic's teaching approach and I've never learned so much within a few hours about coding effectively with such detailed explanations!
Penny is an excellent instructor and she does a great job of breaking down complex concepts into smaller, easy-to-understand topics.