RPG Core Combat Creator: Learn Intermediate Unity C# Coding
4.7 (7,186 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
75,676 students enrolled

RPG Core Combat Creator: Learn Intermediate Unity C# Coding

Build Combat for Role Playing Game (RPG) in Unity. Tutorials Cover Code Architecture & Video Game Design.
Highest Rated
4.7 (7,186 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
75,676 students enrolled
Last updated 5/2020
English
English [Auto], French [Auto], 6 more
  • German [Auto]
  • Indonesian [Auto]
  • Italian [Auto]
  • Polish [Auto]
  • Portuguese [Auto]
  • Spanish [Auto]
Current price: $135.99 Original price: $194.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 27.5 hours on-demand video
  • 4 articles
  • 15 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Create core combat mechanics for melee, ranged and special attacks.
  • More advanced C# techniques such as interfaces, delegates, and co-routines.
  • Create pathfinding systems and patrol paths for enemies and NPCs.
  • Make a detailed level with terrain, enemies, triggers, lighting, particles and props.
  • Balance the player and enemy stats (eg. health, damage, movement, attack speed, and more).
  • Advanced game design, project management and code architecture strategies.
Course content
Expand all 188 lectures 27:43:52
+ Introduction & Setup
8 lectures 33:43

In this video (objectives)…

Rick and Sam outline the changes to the course.

After watching (learning outcomes)…

Ready and raring to get started.

(Unique Video Reference: 1_IN_RPG)

Preview 03:02
Coupon For Original Course Content
00:32

In this video (objectives)…

Be clear on what version of Unity we are using and why.

After watching (learning outcomes)…

Be set up with Unity Hub and Unity 2018.3.

(Unique Video Reference: 2_IN_RPG)

 

Preview 05:08

In this video (objectives)…

  1. Download and Install Visual Studio CODE

  2. Install required extensions

  3. Changes some of the settings

After watching (learning outcomes)…

Ready to go with your code editor

(Unique Video Reference: 3_IN_RPG)

 

Install Visual Studio Code
06:50
Not Making Intellisense?
00:16

In this video (objectives)…

  1. What are we building in our project

  2. Inspiration from Diablo 3, Torchlight 2 and Battleheart Legacy

  3. Lots more game design theory later in the course

After watching (learning outcomes)…

Clear on our fixed camera, point to move game

(Unique Video Reference: 4_IN_RPG)

Quick Game Design Overview
02:22
Architectural Overview
07:24

In this video (objectives)…

  1. How to ask questions and share your progress

  2. GameDev.tv community forum

  3. Udemy Q&A section

  4. Unity Course Facebook group

  5. Discord chat server

  6. Where to find resources against a lecture and how to find project changes for a lecture in our github repo

After watching (learning outcomes)…

You'll know where to go to get help and ask questions

(Unique Video Reference: 6_IN_RPG)

Community & Support
08:08
+ Basic Movement
11 lectures 01:43:36

In this video (objectives)…

  1. Overview of what we'll have accomplished by the end of this section

After watching (learning outcomes)…

  • Ready and raring to go!

(Unique Video Reference: 1_BM_RPG)

Section Overview - Basic Movement
01:04

In this video (objectives)…

  1. Add terrain, textures and assets into the scene

  2. Create a very simple sandbox level that we can use for prototyping our game

After watching (learning outcomes)…

You'll have a simple sandbox level that you can use to test the functionality of your game.

(Unique Video Reference: 2_BM_RPG)

Create A Simple Sandbox
13:16

In this video (objectives)…

  1. Create a Nav Mesh for our sandbox level

  2. Add Nav Mesh Agent to the Player

  3. Create Mover.cs and add some code to move our Player to a target in the scene

After watching (learning outcomes)…

Understand how to add Nav Mesh and Nav Mesh Agents

(Unique Video Reference: 3_BM_RPG)

Move Using Nav Mesh Agent
08:26

In this video (objectives)…

  1. Understand the setting in the Nav Mesh bake tab.

  2. Implement a Nav Mesh Obstacle.

  3. Make our buildings static.

After watching (learning outcomes)…

Deeper understanding of how the Nav Mesh works and what settings to use.

(Unique Video Reference: 4_BM_RPG)

Refining Your Nav Mesh
11:27

In this video (objectives)…

  1. Use Debug.DrawRay to visualise our ray

  2. Use Camera.ScreenPointToRay to create our ray

After watching (learning outcomes)…

Understand the basics of how Raycasting works

(Unique Video Reference: 5_BM_RPG)

Introduction To Raycasting
06:51

In this video (objectives)…

  1. Use Physics.Raycast to identify where our ray has hit the terrain

  2. Using our hit location we will update our nav mesh agent's destination to reflect where we have clicked

After watching (learning outcomes)…

Move our character using raycasting and nav mesh agent

(Unique Video Reference: 6_BM_RPG)

Implement Click-To-Move
10:06
Quiz - Basic Movement #1
5 questions

In this video (objectives)…

  1. Set up our camera.

  2. Create a relationship between the camera and the follow camera.

  3. Create code that points the camera at the player's position.

After watching (learning outcomes)…

How to set up a follow camera that points to the player without spinning around.

(Unique Video Reference: 7_BM_RPG)

Create A Fixed Follow Camera
06:48

In this video (objectives)…

  1. Import animation asset pack and character assets

  2. Discuss difference between Animator, Animator Controller, Animations and Blend Trees

  3. Set up a simple Blend Tree

After watching (learning outcomes)…

How to set up a Blend tree for animation

(Unique Video Reference: 8_BM_RPG)

Animation Blend Trees
12:41

In this video (objectives)…

  1. Set our animator controller and add avatar.

  2. Implement code that updates our animation based upon the speed of the Nav Mesh Agent.

  3. Tweak so that it looks good.

After watching (learning outcomes)…

Drive our animation speed based upon the Nav Mesh Agent velocity.

(Unique Video Reference: (9_BM_RPG)

Match Animation To Movement
16:14

In this video (objectives)…

  1. Convert our movement to continuous click and hold

  2. Address a potential issue with our follow camera and the Update method

After watching (learning outcomes)…

Refined your code so that Basic Movement is robust

(Unique Video Reference: 10_BM_RPG)

Basic Movement Tweaks
06:14

In this video (objectives)…

  1. Folder layout best practices in Unity.

  2. Our folder structure choices.

  3. Tidying our folders.

After watching (learning outcomes)…

How to layout folders in your own projects.

(Unique Video Reference: 11_BM_RPG)

Project Folder Structure
10:29
Quiz - Basic Movement #2
5 questions
+ High Level Game Design
4 lectures 28:46

In this video (objectives)…

  1. Quick overview of what to expect in this section.

After watching (learning outcomes)…

An understanding that this section is about coming up with high level design for your game.

(Unique Video Reference: 1_HL_RPG)

Section Intro - High Level Design
01:09

In this video (objectives)…

  1. Download the design document template

  2. Complete the first part of your high level design

After watching (learning outcomes)…

Have written down the high level game design for your game

(Unique Video Reference: 2_HL_RPG)

1.5 Page Game Design Document
10:26

In this video (objectives)…

  1. The 3 ways to craft your player experience

  2. Examples of games and their player experience

After watching (learning outcomes)…

You'll have identified the core player experience for your game's design

(Unique Video Reference: 3_HL_RPG)

The Player Experience
06:58

In this video (objectives)…

  1. Complete all the key sections of your 1.5 page GDD

After watching (learning outcomes)…

You'll have clearly documented the high level design for your game

(Unique Video Reference: 4_HL_RPG)

First Draft Of Your GDD
10:13
Quiz - High Level Design #1
5 questions
+ Basic Combat
21 lectures 03:06:26

In this video (objectives)…

  1. What features we will teach in this section

(Unique Video Reference: 1_BC_RPG)

Section Overview - Basic Combat
01:12

In this video (objectives)…

  1. Why is a separate control layer good?

  2. Switching AI and Player control.

  3. Pulling control code out of Mover.cs

After watching (learning outcomes)…

Why to use the control layer paradigm.

(Unique Video Reference: 2_BC_RPG)

Separating The Control Layer
12:21

In this video (objectives)…

  1. Why are dependencies evil.

  2. Why are dependency cycles even worse.

  3. Layering to reduce dependencies.

  4. Using namespaces to expose our dependencies.

After watching (learning outcomes)…

Why to use namespaces in a project.

(Unique Video Reference: 3_BC_RPG)

Namespaces To See Dependencies
13:00

In this video (objectives)…

  1. Setting up a target component.

  2. Overview of RaycastAll().

  3. Filtering for components.

After watching (learning outcomes)…

How to process all multiple raycast hits.

(Unique Video Reference: 4_BC_RPG)

Raycasting For Components
14:34

In this video (objectives)…

  1. Combat prevents movement.

  2. Why affordance helps the player understand the game.

  3. Understanding early return statements.

After watching (learning outcomes)…

Understand how early returns can affect execution flow.

(Unique Video Reference: 5_BC_RPG)

Implementing Action Priority
10:00

In this video (objectives)…

  1. Moving towards a moving target.

  2. Stopping a NavMeshAgent.

  3. Calculating whether we are in range.

After watching (learning outcomes)…

Stop a NavMeshAgent from moving.

(Unique Video Reference: 6_BC_RPG)

Move Within Range
09:03

In this video (objectives)…

  1. Exposing a "Cancel" method.

  2. Distinguishing a move action.

  3. Short circuit operators.

After watching (learning outcomes)…

How to cancel combat when moving.

(Unique Video Reference: 7_BC_RPG)

Cancelling Combat With Movement
10:27
Quiz - Basic Combat #1
5 questions

In this video (objectives)…

  1. Decoupling by introducing a shared dependency.

  2. Implementing the ActionScheduler.

After watching (learning outcomes)…

Cutting circular dependencies.

(Unique Video Reference: 8_BC_RPG)

Decoupling Dependency Cycles
11:02

In this video (objectives)…

  1. What is an interface?

  2. Defining an interface.

  3. Implementing an interface.

  4. Using an interface.

After watching (learning outcomes)…

How to create, implement and use an interface.

(Unique Video Reference: 9_BC_RPG)

Dependency Inversion With Interfaces
10:11

In this video (objectives)…

  1. Import attack animations

  2. Create Attack animator state

  3. Create attack trigger

After watching (learning outcomes)…

Trigger attack animation manually within the animator controller

(Unique Video Reference: 10_BC_RPG)

Add Attack Animation
05:55

In this video (objectives)…

  1. Fix an issue with an orphaned animation event

  2. Don't trigger by default

  3. Trigger our attack state from code

After watching (learning outcomes)…

Trigger animation state from code

(Unique Video Reference: 11_BC_RPG)

Trigger Animation In Code
08:35

In this video (objectives)…

  1. Adding a attack throttling parameter.

  2. An event throttling pattern in Unity.

After watching (learning outcomes)…

How to throttle any action in Unity.

(Unique Video Reference: 12_BC_RPG)

Throttling Our Attacks
06:13

In this video (objectives)…

  1. Adding a Health component.

  2. The public interface to Health.

  3. Preventing negative health values.

  4. Doing damage with a delay.

After watching (learning outcomes)…

How to implement health in Unity.

(Unique Video Reference: 13_BC_RPG)

Taking Damage
08:47

In this video (objectives)…

  1. What information do prefabs contain?

  2. How is nesting implemented?

  3. What is a prefab variant?

  4. Creating a prefab variant.

After watching (learning outcomes)…

How prefabs, nested prefabs and variants work.

(Unique Video Reference: 14_BC_RPG)

Nested Prefabs And Variants
12:03

In this video (objectives)…

  1. Setting up the shared prefabs.

  2. Moving components between prefabs.

  3. Eliminating the old Enemy prefab.

After watching (learning outcomes)…

How to move components between prefab variants.

(Unique Video Reference: 15_BC_RPG)

Using Prefab Variants
10:34
Quiz - Basic Combat #2
6 questions

In this video (objectives)…

  1. Add death state and animation

  2. Create a "die" trigger

After watching (learning outcomes)…

Use Any State withing the Animator Controller to transition to the Death state

(Unique Video Reference:16_BC_RPG)

Any State Animations
03:28

In this video (objectives)…

  1. Trigger our death animation from code when character's health reaches zero

  2. Check to see if character is already dead so that we dont continue to trigger the death animation

After watching (learning outcomes)…

Trigger death animation when character's health reaches zero

(Unique Video Reference: 17_BC_RPG)

Trigger Death Animation
04:27

In this video (objectives)…

  1. Stop the attack animation if the player clicks away

  2. Stop attacking the enemy once its dead

After watching (learning outcomes)…

Have finer control on when the player attacks and does not attack

(Unique Video Reference: 18_BC_RPG)

Stop Attacking Already
10:39

In this video (objectives)…

  1. Give the player a wardrobe update

  2. Use LookAt() to turn the player towards its target

After watching (learning outcomes)…

Rotate game objects so that their forward vector faces the target

(Unique Video Reference: 19_BC_RPG)

Look Them In The Eyes
06:41

In this video (objectives)…

  1. Change our target to be of type Health and tidy up where this will impact

  2. Add logic to see if the target clicked on is dead already and ignore that particular ray in our ray array.

After watching (learning outcomes)…

Adjust our Raycast logic so dead enemies are ignored

(Unique Video Reference: 20_BC_RPG)

Ignore Dead Enemies
06:26

In this video (objectives)…

  1. We discuss a process for resolving bugs

  2. Challenge is to figure out the cause of an obscure bug we have found

  3. Fix the bug where the player's stopAttack trigger is not being consumed.

After watching (learning outcomes)…

Further understand the relationship between our animator states and our code states by resolving a combat bug.

(Unique Video Reference: 21_BC_RPG)

Bugs? What Bugs?
10:48
Quiz - Basic Combat #3
5 questions
+ Enemy AI
11 lectures 01:24:57

In this video (objectives)…

  1. What we will be covering this section


(Unique Video Reference: 1_AI_RPG)

Section Overview - Enemy AI
02:20

In this video (objectives)…

  1. Creating the AIController.

  2. Using the "Player" tag.

  3. Calculating the distance to player.

  4. Printing when we should attack.

After watching (learning outcomes)…

How to calculate a chase distance condition.

(Unique Video Reference: 2_AI_RPG)

Calculating AI Chase Distance
09:01

In this video (objectives)…

  1. Sharing the interface to Fighter.

  2. Updating the PlayerController.

  3. Triggering fighting from the AIController.

After watching (learning outcomes)…

How to reduce work by sharing interfaces.

(Unique Video Reference: 3_AI_RPG)

Swappable Control Systems
10:44

In this video (objectives)…

  1. Cancelling the current action.

  2. Disabling Player and AI control.

  3. Disabling the NavMeshAgent.

After watching (learning outcomes)…

How to keep death components decoupled.

(Unique Video Reference: 4_AI_RPG)

Disable Control When Dead
10:27

In this video (objectives)…

  1. The OnDrawGizmos message.

  2. The Gizmos API.

  3. How to set a colour.

  4. Drawing a chase radius in blue.

After watching (learning outcomes)…

How to create gizmos for your own components.

(Unique Video Reference: 5_AI_RPG)

Visualising With Gizmos
06:55

In this video (objectives)…

  1. What behaviour we want.

  2. What does the guard know?

  3. Storing the state.

  4. Returning to original position.

After watching (learning outcomes)…

How to think about AI state.

(Unique Video Reference: 6_AI_RPG)

AI Guarding Behaviour
04:21
Quiz - Enemy AI #1
5 questions

In this video (objectives)…

  1. Remembering the last time since we saw the player.

  2. Handling multiple states.

  3. Why we don't need a Finite State Machine.

After watching (learning outcomes)…

How to handle multiple AI states.

(Unique Video Reference: 7_AI_RPG)

That's Some Suspicious Behaviour
08:29

In this video (objectives)…

  1. How to represent waypoints.

  2. How to visualise them.

  3. Creating a PatrolPath component.

  4. Drawing Gizmos for each child.

After watching (learning outcomes)…

Create waypoint paths in your own game.

(Unique Video Reference: 8_AI_RPG)

Visualising Waypoints
09:13

In this video (objectives)…

  1. Refactoring GetWaypoint().

  2. Introducing GetNextIndex().

  3. Drawing the line.

  4. Implementing GetNextIndex().

After watching (learning outcomes)…

Drawing loops of waypoints

(Unique Video Reference: 9_AI_RPG)

Waypoint Loops
06:37

In this video (objectives)…

  1. Get reference to patrol path.

  2. Outlining the algorithm.

  3. Implementing GetWaypoint, CycleWaypoint and AtWaypoint.

After watching (learning outcomes)…

How to implement patrol behaviour.

(Unique Video Reference: 10_AI_RPG)

Patrolling Behaviour
09:28

In this video (objectives)…

  1. Holding down to attack.

  2. Implementing dwelling.

After watching (learning outcomes)…

How to implement a dwell time at waypoints.

(Unique Video Reference: 11_AI_RPG)

Dwelling At Waypoints
07:22
Quiz - Enemy AI #2
5 questions
+ First Moment
12 lectures 01:55:56

In this video (objectives)…

  1. Overview of this section

  2. We'll be creating a gameplay moment

  3. We'll be getting our hands dirty with Cinemachine and Timeline

After watching (learning outcomes)…

Be clear on the focus for this section

(Unique Video Reference: 1_FM_RPG)

Section Overview - First Moment
01:03

In this video (objectives)…

  1. Discuss what we mean by gameplay moment

  2. Design a gameplay moment based upon our current tools at our disposal

After watching (learning outcomes)…

Be clear on the importance of creating interesting gameplay moments for your player

(Unique Video Reference: 2_FM_RPG)

Design A Moment
08:04

In this video (objectives)…

  1. Plan your moment

  2. Sketch your moment

  3. Share your sketch

After watching (learning outcomes)…

Be clear on how to plan your gameplay moment by sketching the important aspects of it

(Unique Video Reference: 3_FM_RPG)

Sketch Your Moment
08:22

In this video (objectives)…

  1. Adding a skybox so our environment for a quick bit of polish

  2. Use an image on a quad as an in-scene reference

  3. Adding solid colour textures to use as spray paint

  4. Adding trees to give quick flavour

After watching (learning outcomes)…

Getting ready to effectively create an environment for our moment

(Unique Video Reference: 4_FM_RPG)

Tips To Improve Workflow
10:39

In this video (objectives)…

  1. Reshape our terrain to suit our sketch

  2. Place enemies

  3. Add notes in our level

After watching (learning outcomes)…

Quickly craft an environment to match your level moment sketch

(Unique Video Reference: 5_FM_RPG)

Craft The Environment
10:54

In this video (objectives)…

  1. Figure out how many hits to make a kill

  2. Tune the health of player and enemies

  3. Tune the damage of player and enemies

After watching (learning outcomes)…

Have a starting point for tuning your combat encounters

(Unique Video Reference: 6_FM_RPG)

Hits-To-Kill Design Metric
08:05
Quiz - First Moment #1
5 questions

In this video (objectives)…

  1. Update AIController.cs to provide 2 different speeds for enemy AI

  2. Tweak patrol paths and chase radius for all enemies in our scene

After watching (learning outcomes)…

Able to set different speeds for enemy locomotion based upon the state they are in

(Unique Video Reference: 7_FM_RPG)

Tweak Enemy Patrol
13:03

In this video (objectives)…

  1. Install Cinemachine

  2. Add Cinemachine Brain and Virtual Camera

  3. Create a follow camera

After watching (learning outcomes)…

Add your first virtual camera, controlled by the Cinemachine Brain

(Unique Video Reference: 8_FM_RPG)

Cinemachine Follow Camera
08:43

In this video (objectives)…

  1. Create a playable director for our timeline sequence

  2. Add more virtual cameras that we can blend between

  3. Add a dolly track and set up a dolly camera

  4. Make a complete sequence

After watching (learning outcomes)…

Create a flowing cinematic sequence using Cinemachine and Timeline

(Unique Video Reference: 9_FM_RPG)

Make Cinematic Sequence
16:13

In this video (objectives)…

  1. Add trigger volume to trigger our sequence

  2. Ensure that the sequence can only be triggered once and that only the player can trigger it

After watching (learning outcomes)…

Trigger our cut scene when the player runs through a trigger volume

(Unique Video Reference: 10_FM_RPG)

Trigger Cinemachine Cut Scene
09:39

In this video (objectives)…

  1. Overview of the observer pattern.

  2. How to implement the observer pattern with C# events.

  3. Using C# event to get notified of PlayableDirector events.

After watching (learning outcomes)…

How to implement an observer pattern in C#.

(Unique Video Reference: 11_FM_RPG)

The Observer Pattern In C#
14:04

In this video (objectives)…

  1. Cancelling the current action.

  2. Fixing a fighter cancellation bug.

  3. Disabling and re-enabling control.

After watching (learning outcomes)…

How to disable player control.

(Unique Video Reference: 12_FM_RPG)

Player Input In Cutscenes
07:07
Quiz - First Moment #2
5 questions
+ Scene Management
10 lectures 01:23:30

In this video (objectives)…

  1. Overview of this section

  2. We will learn about coroutines...

  3. Asynchronous level loading

  4. Fading in and out.

After watching (learning outcomes)…

Be clear on the focus for this section

(Unique Video Reference: 1_SM_RPG)

Section Overview - Scene Management
01:22

In this video (objectives)…

  1. Prefab our required objects for a new scene

  2. Create new scene and quickly populate it with an entry and exit point

  3. Tidy up

After watching (learning outcomes)…

Create a second sandbox scene

(Unique Video Reference: 2_SM_RPG)

Make A Second Scene
09:52

In this video (objectives)…

  1. Creating a portal prefab.

  2. Creating a portal script.

  3. Loading scenes by index.

After watching (learning outcomes)…

Be able to load scenes from triggers.

(Unique Video Reference: 3_SM_RPG)

Scene Loading Portals
07:47

In this video (objectives)…

  1. Why is an IEnumerator.

  2. How does yield return work?

  3. How are these features used for coroutines?

After watching (learning outcomes)…

Understand how coroutines work.

(Unique Video Reference: 4_SM_RPG)

How Coroutines Work
10:12

In this video (objectives)…

  1. Introduce a return portal in our second level.

  2. Load our level asynchronously.

  3. Run code after the level finishes loading.

After watching (learning outcomes)…

Use coroutines to wait for a scene to load.

(Unique Video Reference: 5_SM_RPG)

Wait For Scene To Load
07:00

In this video (objectives)…

  1. Introduce a spawn point transform.

  2. Locate the portal we want to spawn to.

  3. Updating the player's location.

After watching (learning outcomes)…

Reposition a player at a spawn point.

(Unique Video Reference: 6_SM_RPG)

Player Spawn Point
11:04

In this video (objectives)…

  1. Why enums make good cross scene references.

  2. Configuring our portals.

  3. Finding the corresponding portal on load.

After watching (learning outcomes)…

How to link objects between scenes with enums.

(Unique Video Reference: 7_SM_RPG)

Cross Scene References
08:14

In this video (objectives)…

  1. Create our Fader canvas.

  2. Fading with a CanvasGroup.

After watching (learning outcomes)…

Use CanvasGroups for fading.

(Unique Video Reference: 8_SM_RPG)

Canvas Groups For Fading
02:28
Quiz - Scene Management #1
5 questions

In this video (objectives)…

  1. Create a Fader class.

  2. Implement a FadeOut coroutine.

  3. Generalise the FadeIn coroutine.

  4. Stringing coroutines together.

After watching (learning outcomes)…

Nesting coroutines to wait for long running actions.

(Unique Video Reference: 9_SM_RPG)

Nested Coroutines For Fading
11:26

In this video (objectives)…

  1. Make the fader a singleton.

  2. Share our core setup between scenes.

  3. Fade in and out on scene loads.

After watching (learning outcomes)…

How to use the singleton pattern to keep objects between scenes.

(Unique Video Reference: 10_SM_RPG)

Avoiding The Singleton Pattern
14:05
Quiz - Scene Management #2
2 questions
+ Saving Asset Pack
9 lectures 01:06:52

In this video (objectives)…

  1. Overview the purpose of the section.

  2. See how the saving system works.

After watching (learning outcomes)…

Know what we will make this section.

(Unique Video Reference: 1_SA_RPG)

Section Overview: Saving Asset Pack
02:23

In this video (objectives)…

  1. Importing the Asset Pack.

  2. Overview of the main classes.

  3. Overview of the architecture.

After watching (learning outcomes)…

Know what the main classes do.

(Unique Video Reference: 2_SA_RPG)

The Saving System Overview
05:38

In this video (objectives)…

  1. Why we need a Saving prefab.

  2. Why we need the wrapper class.

  3. Where the save file ends up.

After watching (learning outcomes)…

How to trigger saving and loading.

(Unique Video Reference: 3_SA_RPG)

Triggering Saving And Loading
08:52

In this video (objectives)…

  1. Using the Saveable Entity component.

  2. How Unique Identifier work.

  3. Implementing the ISaveable interface.

  4. Using what we can and can't save.

After watching (learning outcomes)…

How to save the state of a component.

(Unique Video Reference: 4_SA_RPG)

Saveable Components And GameObjects
14:05

In this video (objectives)…

  1. What types are default serializable.

  2. Implementing health saving.

After watching (learning outcomes)…

Be able to implement ISaveable on your own.

(Unique Video Reference: 5_SA_RPG)

Challenge: Saveable Health
06:21

In this video (objectives)…

  1. When to save and load with portals.

  2. Exposing the wrapper save and load methods.

  3. Making the player state persist between scenes.

After watching (learning outcomes)…

How to save and load between scenes.

(Unique Video Reference: 6_SA_RPG)

Checkpoints Between Scenes
12:00

In this video (objectives)…

  1. Loading the last scene saved.

  2. Checkpointing after a portal.

  3. Fading in on start.

After watching (learning outcomes)…

How to load the last saved scene.

(Unique Video Reference: 7_SA_RPG)

Loading The Saved Scene
08:39
Quiz - Saving Asset Pack
5 questions

In this video (objectives)…

  1. Multiple parameters using dictionaries

  2. Multiple parameters using serializable structs

After watching (learning outcomes)…

Add multiple parameters to your own components.

(Unique Video Reference: 8_SA_RPG)

BONUS: Capturing Multiple Parameters
07:43
BONUS: Runtime Objects
01:11
+ Saving System
20 lectures 03:24:58

In this video (objectives)…

  1. What we will be covering.

  2. What we will achieve by the end.

After watching (learning outcomes)…

What's included in this section.

(Unique Video Reference: 1_SS_RPG)

Section Overview: Saving System
02:09

In this video (objectives)…

  1. Creating the SavingSystem.cs

  2. Creating the SavingWrapper.cs

  3. Persisting the main GameObject.

After watching (learning outcomes)…

How to start a complex project (outside in).

(Unique Video Reference: 2_SS_RPG)

Save System Design
06:53

In this video (objectives)…

  1. How we count (hexadecimal vs binary).

  2. What is serialization and why we do it.

  3. How much space different basic types occupy.

After watching (learning outcomes)…

Understand how binary works and why we serialize.

(Unique Video Reference: 2a_SS_RPG)

Preview 12:14

In this video (objectives)…

  1. Where to save files for each platform.

  2. How to combine paths across different platforms.

After watching (learning outcomes)…

How to create multiplatform paths.

(Unique Video Reference: 3_SS_RPG)

File Paths In C#
05:18

In this video (objectives)…

  1. How to open a file.

  2. Writing bytes into a file.

  3. Overview of different encodings.

  4. Converting text to bytes.

After watching (learning outcomes)…

How to write text into files.

(Unique Video Reference: 4_SS_RPG)

Understanding Unicode
11:48

In this video (objectives)…

  1. 'Using' to automatically close files.

  2. Opening files for reading.

  3. Reading into a buffer.

  4. Converting bytes to strings.

After watching (learning outcomes)…

How to read text from a file.

(Unique Video Reference: 5_SS_RPG)

Filestream Read And Write In C#
08:23

In this video (objectives)…

  1. Capturing the players location.

  2. Using BitConverter to convert floats to bits.

  3. And back to floats.

  4. Restoring the players location.

After watching (learning outcomes)…

How serialization of complex types works.

(Unique Video Reference: 6_SS_RPG)

Converting To Binary In C#
10:08
Quiz - Saving System #1
6 questions

In this video (objectives)…

  1. Introducing the BinaryFormatter.

  2. Creating classes for serialization: SerializableVector3.

  3. Storing and restoring the player position.

After watching (learning outcomes)…

How to use C#'s automatic serialization.

(Unique Video Reference: 7_SS_RPG)

BinaryFormatter For Serialization
16:52

In this video (objectives)…

  1. Introducing the decentralised architecture.

  2. Creating the SaveableEntity.

  3. Saving to a dictionary.

  4. Restoring from the dictionary.

After watching (learning outcomes)…

Use dictionaries to flexibly serialise scene state.

(Unique Video Reference: 8_SS_RPG)

Saveable Entities
15:49

In this video (objectives)…

  1. How to generate UUIDs.

  2. The issue with changing default values.

  3. How to execute only in edit mode.

After watching (learning outcomes)…

Generating UUIDs and executing in edit mode.

(Unique Video Reference: 9_SS_RPG)

Generating UUIDs In C#
10:26

In this video (objectives)…

  1. Getting the SerializedObject for a MonoBehaviour.

  2. Getting a SerializedProperty on a SerializedObject.

  3. Editing a property and applying the changes.

  4. Checking if we are in a prefab or a scene.

After watching (learning outcomes)…

How to edit the the SerializedField of a MonoBehaviour.

(Unique Video Reference: 10_SS_RPG)

Editing SerializedFields
15:03

In this video (objectives)…

  1. Filling out the CaptureState method.

  2. Filling out the RestoreState method.

  3. Cancelling the current action on restore.

After watching (learning outcomes)…

How to serialize many entities.

(Unique Video Reference: 11_SS_RPG)

Serializing With SaveableEntities
08:54

In this video (objectives)…

  1. Why we need to merge multiple scenes.

  2. Refactoring LoadFile and SaveFile.

After watching (learning outcomes)…

How to merge new state into a save file.

(Unique Video Reference: 12_SS_RPG)

Saving Multiple Scenes - Part 1
08:56

In this video (objectives)…

  1. Capturing state into an existing dictionary.

  2. Protecting against saving and loading without a save file.

After watching (learning outcomes)…

How to merge new state into a save file.

(Unique Video Reference: 12a_SS_RPG)

Saving Multiple Scenes - Part 2
07:46

In this video (objectives)…

  1. Exposing Save and Load from the SavingWrapper

  2. Calling them from Portal.Transition.

After watching (learning outcomes)…

How to checkpoint a game on leaving a scene.

(Unique Video Reference: 13_SS_RPG)

Checkpoints Between Scenes
08:33

In this video (objectives)…

  1. Why we need to invert dependencies.

  2. Creating the ISaveable interface.

  3. Storing component states in a dictionary.

  4. Implementing the ISaveable interface on Mover.

After watching (learning outcomes)…

Revise out to invert dependencies.

(Unique Video Reference: 14_SS_RPG)

ISaveable Components
14:40
Quiz - Saving System #2
5 questions

In this video (objectives)…

  1. Why we need a dictionary for performance.

  2. Implementing IsUnique().

  3. Handling scene reloading.

After watching (learning outcomes)…

Using a dictionary to track uniqueness.

(Unique Video Reference: 15_SS_RPG)

Deduplicating UUIDs
12:46

In this video (objectives)…

  1. Implementing the ISaveable interface.

  2. Restoring a dead character.

  3. Excluding engine code from built games.

After watching (learning outcomes)…

Implementing the ISaveable interface.

(Unique Video Reference: 16_SS_RPG)

Restoring Health
06:39

In this video (objectives)…

  1. Saving the scene build index.

  2. Loading the last scene with coroutines.

  3. Using the fader to hide the scene load.

After watching (learning outcomes)…

How to restore the last scene.

(Unique Video Reference: 17_SS_RPG)

Reloading The Last Scene
12:56

In this video (objectives)…

  1. Moving the SavingWrapper.

  2. Adding a FadeOutImmediate method.

  3. Fading in on start.

After watching (learning outcomes)…

Fading in to hide scene transitions.

(Unique Video Reference: 18_SS_RPG)

Fading Before Scene Load
08:45
Quiz - Saving System #3
3 questions
+ Simple Weapons
21 lectures 03:07:29

In this video (objectives)…

  1. Overview of the simple weapon section

  2. Swords, arrows, fireballs - what more could an adventurer want?

After watching (learning outcomes)…

  • Ready and raring to go for this section

(Unique Video Reference: 1_SW_RPG)

Section Overview: Simple Weapons
01:03

In this video (objectives)…

  1. Create a weapon prefab and align it properly in the player's hand

  2. Create the notion of "where" the weapon will be wielded

After watching (learning outcomes)…

Instantiate a weapon that sits in characters' hands.

(Unique Video Reference: 2_SW_RPG)

Equip A Weapon
10:44

In this video (objectives)…

  1. Add an Animator Override Controller for our sword

  2. When we spawn our weapon, implement the override controller

After watching (learning outcomes)…

Able to swap animations at runtime using the animator override controller.

(Unique Video Reference: 3_SW_RPG)

Animator Override Controller
06:15

In this video (objectives)…

  1. Create a new class which derives from Scriptable Object

  2. Create a Sword scriptable object asset

  3. Spawn our sword using the scriptable object

After watching (learning outcomes)…

Use a scriptable object asset to instantiate a weapon

(Unique Video Reference: 4_SW_RPG)

Creating Scriptable Objects
07:28

In this video (objectives)…

  1. Move over our remaining weapon-related variables to Weapon.cs

  2. Refactor Fighter.cs so that we can access the values from each weapon

  3. Add an Unarmed Scriptable Object and ensure it all works as intended

After watching (learning outcomes)…

Create a second Scriptable Object to handle unarmed as a weapon

(Unique Video Reference: 5_SW_RPG)

Unarmed As A Weapon
07:39

In this video (objectives)…

  1. Expose weapon equipping

  2. Make a weapon pickup game object

  3. Create pickup logic

After watching (learning outcomes)…

Able to make weapon pickups which change the weapon in the player's hand

(Unique Video Reference: 6_SW_RPG)

Basic Weapon Pickup
11:13
Quiz - Simple Weapons #1
5 questions

In this video (objectives)…

  1. Create functionality for right and left handed options in our fighter class

  2. Import and create a bow

  3. Equip bow in player's left hand

After watching (learning outcomes)…

Create a system that allows for weapons to be in right or left hand

(Unique Video Reference: 7_SW_RPG)

Left Handed Weapons
11:45

In this video (objectives)…

  1. Use LookAt() to point a projectile at the target

  2. Use transform.Translate to move the projectile to the target

After watching (learning outcomes)…

Move a project towards a target

(Unique Video Reference: 8_SW_RPG)

Make A Weapon Projectile
11:25

In this video (objectives)…

  1. Update our weapon script to include projectiles

  2. Launch projectile if the weapon has one

  3. Alter where our projectile is instantiated and what it uses as its target

After watching (learning outcomes)…

Launch a projectile that zeroes in on its target

(Unique Video Reference: 9_SW_RPG)

Shoot Projectiles
12:24

In this video (objectives)…

  1. Pass in damage value from our weapon to our projectile

  2. Decrease target's health

  3. Destroy projectile game object

After watching (learning outcomes)…

Apply damage to target using projectiles

(Unique Video Reference: 10_SW_RPG)

Damage From Projectiles
09:16

In this video (objectives)…

  1. Create a couple of spiffy arrow trails

  2. Create 2 bow scriptable objects, each of which has a different arrow

  3. Make our archer more rad with how he behaves

After watching (learning outcomes)…

Create trails from our arrows and have multiple bow variations

(Unique Video Reference: 1_SW_RPG)

Trails & Prefab Variants
12:03
Quiz - Simple Weapons #2
5 questions

In this video (objectives)…

  1. Create a second pickup - this time for the bow

  2. Create logic to destroy old weapon when the player picks up a new weapon

After watching (learning outcomes)…

Destroy old weapon when the player picks up a new weapon

(Unique Video Reference: 12_SW_RPG)

Destroy Old Weapon
09:37

In this video (objectives)…

  1. Give our projectiles the option of being homing or not homing

  2. Fix bugs that arise because of target being dead when projectile is still active

After watching (learning outcomes)…

Create the option to have projectiles homing or not homing

(Unique Video Reference: 13_SW_RPG)

Improve Projectile Behaviour
11:20

In this video (objectives)…

  1. The first part of our couple of videos making a fireball

  2. Make the weapon scriptable object, projectile asset and pickup

After watching (learning outcomes)…

Create the framework for our fireball to be cast as a spell

(Unique Video Reference: 14_SW_RPG)

Fireball Weapon & Pickup
06:41

In this video (objectives)…

  1. Download Synty's Simple FX particles

  2. Create fireball head using single particle

  3. Create firebal trail

After watching (learning outcomes)…

Make our fireball projectile look awesome

(Unique Video Reference: 15_SW_RPG)

Fireball Particle System
08:58

In this video (objectives)…

  1. Import or create an impact effect

  2. Instantiate effect when projectile collides with target

After watching (learning outcomes)…

Instantiate an impact effect when a projectile collides with target

(Unique Video Reference: 16_SW_RPG)

Projectile Impact Effect
05:49
Quiz - Simple Weapons #3
5 questions

In this video (objectives)…

  1. Destroy our effects after they have worked their magic

  2. Stop projectiles flying on forever

  3. Destroy different parts of projectiles at different times

After watching (learning outcomes)…

Tidy up our projectiles so that all unwanted elements are being destroyed

(Unique Video Reference: 17_SW_RPG)

Destroy The Unwanted
14:16

In this video (objectives)…

  1. See if we have an Override Controller in action.

  2. Resetting to the default Animator Controller.

After watching (learning outcomes)…

How AnimatorOverrideControllers relate to RuntimeAnimatorControllers.

(Unique Video Reference: 18_SW_RPG)

Resetting The Default Animator
06:57

In this video (objectives)…

  1. How resource loading works in Unity.

  2. Resources folders.

  3. Loading resources dynamically.

After watching (learning outcomes)…

Be able to load resources from strings.

(Unique Video Reference: 19_SW_RPG)

Dynamic Resource Loading
09:46

In this video (objectives)…

  1. Implementing the ISaveable interface.

  2. Extracting the ScriptableObject name.

  3. Loading the ScriptableObject by name.

After watching (learning outcomes)…

How to load and save the choice of weapon.

(Unique Video Reference: 20_SW_RPG)

Saving Weapon Choice
05:47

In this video (objectives)…

  1. Why we want to hide the pickup.

  2. Why we can't disable the gameobject.

  3. Disabling components vs deactivating gameobjects.

After watching (learning outcomes)…

How to hide objects without stopping coroutines.

(Unique Video Reference: 21_SW_RPG)

Pickup Respawning
07:03
Quiz - Simple Weapons #4
3 questions
Requirements
  • You should be able to write basic C# (loops, conditionals, components, etc)
  • Some familiarity with Unity's APIs is helpful.
  • You should know your way round Unity 5's editor.
Description

* UPDATE September 2019: We have updated and improved the course using Unity 2018.3 based on feedback from our community. Enjoy! *

This highly acclaimed course was over 200% funded on Kickstarter, and is designed for intermediate users of Unity. We recommend you take at least the first half of our Complete Unity Developer 2D or 3D, or equivalent, as a pre-requisite.

This course is the first part in our RPG series. The second part will focus on the inventory system and will be available as a separate course.

Role Playing Games can be complex to create, with many interacting gameplay systems. We make it easy for you, with this online course that teaches you step-by-step how to make the foundations of any good RPG combat system - from scratch.

In this course we're focusing on the core of any great RPG, giving your players a fun combat moment in a well crafted level, based upon a solid game design, built using a robust code architecture. You will follow our project, but also make the game entirely your own.

This is a highly realistic and comprehensive introduction to real game development. We'll be taking you through our process step-by-step, with all decisions justified and all avenues explored.

Fancy something a little different to get started? Check out GameDev's other courses, just look for the green logo as your guide.

We will be dealing with player movement, NavMesh navigation, AI pathfinding, save and loading systems, basic pick ups, using asset packs, debug code, making particle effects and more. We'll also give you a robust code architecture for managing more complex projects by setting up namespaces.

You'll need a basic grasp of Unity and C# before you get start, from there we'll be teaching you more advanced programming techniques such as C# delegates, interfaces, co-routines and more.

Building an RPG is an amazing way to level-up you game development skills, so why not join us and get started improving your game development right now?

Who this course is for:
  • This course is for intermediate Unity users who want to create their own RPG.
  • Our Complete Unity Developer course provides the perfect pre-requisite.