Courses

Courses

Learn Advanced AI for Games with Behaviour Trees

Behaviour Trees are a popular method of defining behaviours in autonomous agents.  In games we know these agents as non-player characters (NPCs). In this course you will learn all about behaviour trees while building your own API library in C# that can be used to define and generate behaviour in your own game projects. As we create the library we will be implementing it in a simulation environment developed in Unity that will have you create a simple art gallery and then develop behaviours for a robber, cop, art patrons and workers.  These characters will navigate through the environment by way of a navigation mesh. By the end of this course you will have a thorough understanding of behaviour trees, how they are constructed and how they are processed.

Video Game Optimisation: Theory and Practice with Unity

Do you have difficulty getting your game to run on the desired target hardware?  Or have you inherited spaghetti code that runs slower than it should?  Or maybe you are interested in getting better performance from your game projects?  Then this is the course for you.  It begins by debunking the general notion that optimisation is all about writing perfect code and takes you on a journey through all areas of game architecture including graphics, audio, physics, animation, user interfaces and more to guide you towards good video game optimisation practice whether it be for individual projects or in a team environment.

Learn to Write Unity Compute Shaders

By learning to create ComputeShaders you will put yourself at the cutting edge of Unity development. Unlike a traditional shader you can use a ComputeShader to handle any data manipulation problem where having dozens or even hundreds of threads running simultaneously will make a bottle neck in your game many many times faster. In this course you will start from small steps, learning the basics of compute shaders.

If you’re working with Unity you need to understand how to use ComputeShaders to ensure your game has the best performance. After all why let the GPU sit idle while the CPU is working overtime. You’ll see massive performance improvements if you switch some tasks to the GPU and handle them with a ComputeShader.

Create a Third Person Player Controller Character with Mixamo for Unity

Want to create your own third person controller (TPC) from scratch?  Then this is the course for you.  Penny will show you how to put together a high quality humanoid character in Unity’s Mecanim system using freely available characters and animations from Mixamo.  You will learn how to structure the animations as well as write the code in C# to control them.  This is a great opportunity to get more insight into how mecanim works with respect to animation states, transitions, blending, layers, triggers and avatar masks.  By the end of the course you will have a fully functional TPC for use in your own games.

Master Procedural Maze & Dungeon Generation with Unity & Blender

In this course Penny teams up with Blender expert teacher Mike Bridges to bring you a holistic approach to creating procedurally generated mazes and dungeons in Unity.  Not only will you build your own high quality modular 3D models but you will also learn how to write the algorithms that will create seamless and endless maze and dungeon game environments.

Create Your Own First Person Shooter Zombie Game

Getting started in game development doesn’t have to be scary.  All you need is the passion to learn and an inquisitive, experimental nature for combining code, animation, graphics, artificial intelligence, art and audio.  Sounds like a lot?  It is, but when you see how you as a solo developer can bring it all together there’s a touch of magic in the air.

In this course you will cover Unity’s interface, terrain building, animating 3d characters, developing a first person controller with animated arms and a weapon, navigation meshes, artificial intelligence, rag dolls, special effects, inventory systems and creating a heads up display.

Learn Unity's Entity Component System with DOTS

Unity’s Entity-Component-System is mighty powerful allowing you to dramatically increase the number of game objects in a scene without sacrificing on performance. How it all works though to the everyday Unity developer can tend to look like magic.  The entire paradigm is completely different to the usual procedural or object orientated approach. 

In this course ECS and DOTS will be demystified and you will learn how to optimise your games and game objects to use this new programming technique with many hands-on and step-by-step tutorials.

Advanced AI for Game Characters with Goal-Oriented Action Planning

Goal-Oriented Action Planning or GOAP is a powerful architecture used for controlling the behaviour of non-player characters.  This AI technique was first developed for use in F.E.A.R.  Its strength lies in the decoupling of character actions from one another such that plans can be created on the fly based on the characters set goals.

In this course you will be taken step by step through the development of a simple hospital simulation with patients, nurses and doctors represented by NavMesh agents.  Together we will build-on, video by video, a GOAP library in C# that you can use to enhance the artificial intelligent behaviour of your own NPCs.

Design Patterns for Game Programmers

Want to create code that is robust, optimized and reusable? Then you need to learn about programming design patterns. Game Programming Design Patterns are templates for building modularised code that are generally a repeatable solution to a commonly occurring mechanic applied in computer games. 

Learn how to program and work with patterns such as: commands, flyweight, observer, prototype, singleton, states, object pools, game loops, updates, components and more…

Build a Multiplayer Kart Racing Game From Scratch in Unity

This course uses Unity 2019 and networking tools to take you step by step through the setup and development of your own go kart experience.  
 
Learn how to program and work with: Car physics and controllers, AI driven cars, Race Track Minimaps with Player positions, Networking with Photon, Character selection, Graphical User Interfaces, Special Effects and more…
 

Create a 3D Endless Runner from Scratch with Unity

Who doesn’t love a good endless runner? Did you know it’s the genre that reigns from the early platform games of Donkey Kong and Mario Brothers? But did you know there’s quite a bit of work that goes into such a game? 

Learn how to program and work with: Character and World Models, Character Animations, Procedural Infinite World Generation, Graphical User Interfaces, Pickups, Particle Systems, Background Music, Sound Effects and more….

The Beginners Guide to Augmented Reality

Throughout this course will be using the Unity Game Engine with Wikitude  to delve into the topic of augmented reality. 
 
The topics covered include: Projecting Virtual Objects over live camera feed, 2D Image Recognition, 3D Object and Scene Recognition, 3D Scene Recognition, QR and Barcode Detection, Image Tracking, and Placing virtual interactable objects and animations into a real scene.
 

The Beginner's Guide to Mathematics for Game Developers

A fundamental understanding of mathematics is critical in every occupation and nowhere is it more important than in games development. In this course you will build your own C# classes to work with the geometrical constructs of 2D and 3D space that will develop your understanding of positioning and moving game objects. In short you will be build your own maths library to replicate Unity’s Vector2, Vector3 and Matrix4x4 and some Mathf methods.

Learn how to program and work with: 2D and 3D Space, Points, Vectors, Matrices, Mapping from one coordinate system to another, Positioning Objects, Navigation ,Angles and Interpolation.
 

Shader Development with Cg in Unity

This course presents a comprehensive guide to programming with Cg and High Level Shader Language in Unity’s Shaderlab to create your own visual surface effects for colouring and lighting game objects. It covers the mathematics of light and surfaces and steps you through the recreation of some of the most popular shaders. 

Learn how to program and work with: variables and packed arrays, meshes, vertices and UVs, the mathematics for working with objects in 3D and 2D spaces, lighting models, highly reflective shiny surfaces, bump maps, special effects such as holographic, scrolling textures and surface deformations, graphics buffers, forward and deferred lighting, and surface, vertex and fragment shaders.

The Beginner's Guide to Artificial Intelligence

Do your non-player characters 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 to create 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.

Learn how to program and work with: vectors; waypoints; navmeshes; the A* algorithm; crowds; flocks; animated characters, and vehicles.

Procedural Terrain Generation with Unity

The creation of beautiful virtual terrains isn’t just the domain of the artist but also of the programmer. What if you could use your programming skills in C# to manipulate a mesh to create realistic landscapes using algorithms developed by researchers studying landscape formation and erosion?

Learn how to program and work with: Voronoi Tessellation, Midpoint Displacement, Perlin Noise, Splat Maps, Trees and Vegetation, Clouds, Weather, Erosion, and water.
 

How to Program Voxel Worlds Like Minecraft With Unity

Did you know there is not one single cube used in Minecraft? Have you ever looked at Minecraft and wondered, “how did they build it?”.  And a great thing to ponder it is.  If you haven’t and think that programming a whole bunch of cubes is child’s play, then think again.

Learn how to program and work with:voxels; custom built polygons and meshes; vertices and normals; UV mapping; texture atlases; Perlin noise; infinite terrain generation; and, loading and saving data.

 

A Beginner's Guide to Machine Learning

The course starts with a thorough examination of genetic algorithms that will ease you into one of the simplest machine learning techniques that is capable of extraordinary learning. You’ll develop an agent that learns to camouflage, a Flappy Bird inspired application in which the birds learn to make it through a maze and environment-sensing bots that learn to stay on a platform.

Following this, you’ll dive right into creating your very own neural network in C# from scratch.  With this basic neural network, you will find out how to train behaviour, capture and use human player data to train an agent and teach a bot to drive.  In the same section you’ll have the Q-learning algorithm explained, before integrating it into your own applications.

By the end of the course, you’ll have a well-equipped toolset of basic and solid machine learning algorithms and applications, that will see you able to decipher the latest research publications and integrate the latest developments into your work, while keeping abreast of Unity’s ML-Agents as they evolve from experimental to production release.

 

The Beginner's Guide to Animation in Unity

You don’t need to be able to model or animate in external packages to take this course. All aspects of animation in Unity are covered from physics, key framing, curves, forward and inverse kinematics, animation state machines and working with third party assets.

Learn how to animate and work with: the mecanim timeline, curve and keyframe editors, animation events that trigger code, root motion, imported animations created in third party packages, and animation state machines.

Unity Networking from Scratch

In this course, Penny will take you from the very basics of creating a simple client/server game environment using Unity’s UNET system right through to creating and managing a lobby system. The topics covered are the ones that most frequently appear on the forums and that many people struggle in understanding.

Topics covered include: network configurations, IP addresses, hosting, remote procedure calls, syncing rigidbody movement, syncing animation states, playing with different player-characters, changing player-characters while connected, setting up the Unity Lobby asset, syncing variable values across scenes and setting up Unity Match Making services.

Naked C#: A Beginner's Guide to Coding

This course will not teach you to become a programmer.  Programming is like martial arts, it takes years and years of practice.  No course can make you a grand master no matter what it promises.  What this course WILL do is give you a solid foundation in programming as a skill for life using C# as the vehicle.

Topics covered include: Bits, Bytes and Binary; Management and Manipulating Memory; Performing Mathematical Operations; Designing Dynamic Program Execution with Logic; Developing Repetition for Fast Data Processing; Handling User Input; and, Reading and Writing to Files.

Ask Me Anything

What do YOU want to know about Unity but have been afraid to ask? Do you think your questions too trivial to become an entire course? Every day Dr Penny de Byl receives messages from her students asking for assistance on a wide variety of topics that would benefit from a short tutorial.

Topics covered so far include: The Unity Entity Component and Job System, Targeting Missiles, In-game Quest Systems, Reading and Writing to a Database and Animating Facial Expressions.