
This lecture introduces the course by outlining all the content that will be covered with a section by section breakdown.
In this unit students will gain an understanding of the field of artificial intelligence and how it pertains to game development.
H3D has a bustling online student community. Here's how to get involved.
Important Reading on Common Issues students have and how to ask for help.
In this lecture we will get an overview of vectors and why they are an important concept to have an understanding of before you launch into programming the movement of an NPC.
In this video students will learn how to setup the AI Navigation package for the versions of Unity that it is not automatically included with. This package will be used later in this course.
While this course was developed in a previous version of Unity, we've tested the projects and they work with Unity 6. This video is a guide to help you adjust your learning in this course to use Unity 6.
In this lecture students will learn about the Cartesian coordinate system and how points are defined in the space as well as 2D and 3D nature of a game environment.
In this video students will begin an exploration of vectors and discover their importance in measuring game environment space as well as defining direction of movement of game characters.
In this lecture students will learn how to normalise the movement of a game character by calculating a velocity to gradually move it from one location to another.
In this lecture students will learn how to determine the size of a vector to determine when a character has reached its goal as well as have AI characters follow a player character.
In this lecture students will learn about the derivation of the dot product formulae and how it is used to calculate the angle between vectors for the purposes of rotating a game character.
In this lecture students will be challenged to calculate the angle between vectors to turn a game character to face another.
In this lecture students will examine the differing game loops that Unity runs and investigate how it affects the timing of character movements.
In this lecture students will learn how to smooth update values to give consistent rates of movement in game characters.
In this lecture students will learn how to work with velocity to control the speed of a rigid body.
In this lecture students will learn how to use velocity vectors to predict where a moving game object will be in the future.
In this lecture students will complete the code that works with a quadratic equation to predict the hit location between a projectile and enemy.
In this unit students will be introduced to acceleration as a means of calculating the shell's velocity and also introduced gravity into the equation.
In this lecture students will add the shell to fire from the red tank and also program it to move under speed and acceleration.
In this lecture students will complete their exploration of projectiles by examining drag and gravity.
In this unit students will learn about the parabola formed by projectile motion and use physics calculations to start programming an automatic attacking tank.
In this lecture students will learn how to calculate the trajectory of an arc made by a moving physics object to determine a hit location.
In this lecture students will learn how to use the trajectory calculations to have a Unity Physics system operated bullet hit its mark as well as create a simple AI character that will shoot at and follow an enemy.
In this lecture students will learn about the concepts behind the A* algorithm and take an in-depth look at its inner workings.
In this lecture students will write some preliminary code to get their project ready for the dedicated AStar method.
In this unit students will begin writing the A* algorithm by creating a start and goal location as well as marking them inside a maze.
In this lecture students will complete most of the code focused on running the A* algorithms logic.
In this lecture students will complete all but the last part of the code focused on running the A* algorithms logic.
In this lecture students will finalise their A* Pathfinding code to search from a starting location to an ending location and then determine the path points between them.
This lecture debugs and tweaks the A* implementation in Unity 6, addressing neighbor checks, valid maze positions, initial H0 distance, proper path hashing, and robust get path logic.
In this unit students will learn about waypoints, how to place them on a map to form a circuit and how to program a vehicle to automatically navigate between them.
In this lecture students will learn how rotational speed and waypoint accuracy affect an AIs ability to traverse waypoints.
In this lecture students will create copies of many tanks with different driving attributes and explore the issues that using waypoints may incur.
In this lecture students will create a tracker object that will make its way around a circuit while the tanks follow.
In this lecture students will learn how to setup waypoints on a map that can later be used with the A* algorithm for finding a path around an environment.
In this lecture we will start writing a new set of classes to store a graph, with it's nodes and edges.
In this lecture students will learn how to introduce the A* algorithm into the graph class.
In this lecture students will complete writing the Graph class with the A* Algorithm code and be ready to continue working on the waypoint system.
In this lecture students will learn how to add the waypoints and edges to the graph and begin programming the AI code for their NPC.
In this lecture students will implement a waypoint path following code for the tank NPC.
In this lecture students will complete programming the waypoint navigation system by adding command buttons to the environment.
In this lecture students will learn about the principles and theory behind navigation meshes and how to construct one in Unity.
In this lecture students will learn how to convert a waypoint system to use the Navigation Mesh API that comes with Unity to achieve the same thing.
In this lecture students will practice setting up a navigation mesh from scratch and program a simple AI agent.
In this lecture students will learn some code optimisation techniques as well as program in the animations to synchronise with agent movement.
In this lecture students will learn how to restrict agents from going into certain areas on a navmesh.
In this lecture students will learn how to program AI navmesh characters to follow a player character in addition to using off mesh links to traverse gaps in the navmesh.
In this unit students will learn how to create different types of agent that have different abilities and can go to different areas of the NavMesh.
In this unit, students will learn how to program the nav mesh agents to follow the player into different areas of the NavMesh.
In this unit, students will gain an understanding of the basics of finite statement machines and setup a new project to use these to program an NPC.
In this unit, students will learn how to create the base state class and ensure it is hooked up to the NavMesh system to help control the NPC.
In this unit, students will learn how to set up the finite state machine to add a patrolling behaviour for an NPC.
In this unit, students will learn how to create a state controlling class to switch NPC behaviours.
In this unit, students will learn how to program the AI to detect and begin chasing the player character.
In this unit, students will finalise the code for building a player chasing NPC.
In this lecture students will be challenged to add a new state into the NPCs behaviour to make it run away when it is threatened.
In this unit, students will begin looking at steering behaviours. These allow natural movement of NPCs away or toward goal locations of moving objects. In this first one we will examine Seek and Flee.
in this unit, students will study the steering behaviour of pursuit. This is the mathematics behind chasing after an object while attempting to cut it off in the direction of travel.
In this unit, students will examine the opposite of "pursuit" in which an NPC attempts to get away from a player while taking into consideration the direction the player is travelling.
in this unit, students will learn how to program an NPC to mindlessly wander around a map.
In this video students will take a look at the basics behind the hide behaviour. In it we will create a simple hide method that will have the agent hide behind the closest obstacle in the environment.
In this unit students will complete and test their code that allows the NPC to calculate a hiding spot.
In this unit, students will learn how to adjust an NPCs behaviour so it can't detect the player if the player is out of sight.
In this unit, students will work to combine the techniques used in this section to create complex behaviours such as running and hiding for a certain time and then beginning to wander the map.
In this unit, students will be challenged to use all their skills obtained in this section to solve a complex behaviour problem.
In this lecture students will learn about the dynamics of crowd behaviour and watch some simple simulations.
In this unit, students will learn how to setup a scene with many animated humanoid characters to simulate a crowd.
In this unit, students will learn how to create a sidewalk crowd of people moving in a street scene.
In this unit, students will learn how to create a crowd situation in which people flee from a given location. In part 1, students will program in the ability to drop an object into a scene from which the crowd will flee.
In this unit, students will add new code to the AI controller to program the agents to move at speed away from a dropped object.
In this unit, students will setup a scene with animated fish and spawning functionality before moving onto the next unit which will implement flocking.
In this unit, students will get the basic flocking algorithm working to create a simple school of fish.
In this unit, students will learn how to add variety to the fish schooling by adding moving goal locations and variable speeds.
In this lecture students will learn how to keep the flocking fish within the confines of a bounding box so they can't swim off into infinity.
In this unit, students will learn about the theory behind the goal oriented action planning technique.
In this unit, students will grab a starter file and setup a project replicating a basic hospital scene.
In this unit students will examine how a series of actions can be put together to come up with a plan for differing agents.
In this unit, students will learn how to setup classes to store the world states to be queried and set by the agents as they act in it.
In this unit students will learn how to set up the classes to management the actions that can be assigned to the agents when planning.
In this unit students will program the code for the agent. This will complete the necessary steps to getting the agents moving around in the environment.
In this unit students will explore how a planning algorithm such as A* can be applied to search through a graph of actions to come up with a plan.
In this unit, students will complete programming the GOAP Planner and setting it up ready to take actions to plan against.
In this unit, students will complete the code to allow agents to execute a simple plan by stringing together actions that satisfy a goal.
In this unit, students will expand on the idea of a single step plan and develop code to cater for a plan containing many steps.
In this unit, students will be challenged to create a script that spawns a number of patients that they can use to test the GOAP scenario.
In this unit students will learn how to craft the code to create plans that involve more than one student.
In this unit, students will learn how actions can be shared between differing agent types.
In this unit students will learn how to include resources as a requirement for action and goal completion by setting them up to be used in an inventory.
In this unit students will learn how to manage an inventory of resources that can be used by agents in the completion of actions.
In this unit students will learn how to move other agents around in the environment and provide them with differing actions and goals.
In this lecture students will add an extra goal to the patient to make them go home after they are treated and fix a pesky little bug in the navigation mesh system.
Do your non-player characters (NPCs) lack drive and ambition? Are they slow, stupid and constantly banging their heads against the wall? Then this course is for you. Join Penny as she explains, demonstrates and assists you in creating your very own NPCs in Unity with C#. All you need is a sound knowledge of Unity, C# and the ability to add two numbers together.
This course uses Unity Version 6.2+ LTS.
In this course, Penny reveals the most popular AI techniques used for creating believable character behaviour in games using her internationally acclaimed teaching style and knowledge from over 30 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 teach you about the fundamental AI techniques used in today's games. You'll join in as NPCs are programmed to chase, patrol, shoot, race, crowd and much more.
Learn how to program and work with:
vectors
waypoints
navmeshes
the A* algorithm
crowds
flocks
animated characters
vehicles
and industry standard techniques such as GOAP (goal-oriented action learning).
Contents and Overview
The course begins with a detailed examination of vector mathematics that sits at the very heart of programming the movement of NPCs. Following this, systems of waypoints will be used to move characters around in an environment before examining the Unity waypoint system for car racing with AI controlled cars. This leads into an investigation of graph theory and the A* algorithm before we apply these principles to developing navmeshes and developing NPCs who can find their way around a game environment. Before an aquarium is programmed complete with autonomous schooling fish, crowds of people will be examined from the recreation of sidewalk traffic, to groups of people fleeing from danger. Having examined the differing ways to move NPCs around in a game environment, their thinking abilities will be discussed with full explanations and more hands-on workshops using finite state machines and behaviour trees.
The follow-along workshops included in the course come with starter Unity asset files and projects complete with solutions. Throughout, there are also quizzes and challenge exercises to reinforce your learning and guide you to express your newfound knowledge.
At the completion of this course you will have gained a broad understanding of what AI is in games, how it works and how you can use it in your own projects. It will equip you with a toolset to examine any of the techniques presented in more depth to take your game environments to the next level.
What students are saying about this course:
This has been my favourite Udemy-Unity course so far. It took me from literally 0% knowledge of how game AI is achieved, and took me to a whole new level. Waypoints, pathfinding, state machines, etc etc etc are all covered in-depth and will reveal the magic (spoiler alert: it isn't magic) behind making your computer characters seem like they really have a mind of their own.
Oh My God. I love her way of teaching things. I haven’t finished this course yet. But all i can say is that it is another brilliant course from her. Artificial intelligence by itself is a tricky thing to do. And before starting this course i never thought that i will understand anything in it. But i was wrong. With her style of teaching, you will learn how to move your characters in an ”intelligent“ way. This course is perfectly sliced and the pace is wonderful.