RPG Core Combat Creator: Learn Intermediate Unity C# Coding
4.6 (4,332 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.
44,965 students enrolled

RPG Core Combat Creator: Learn Intermediate Unity C# Coding

Build a Role Playing Game (RPG) in Unity. Improve your C sharp, code architecture, game & level design. Full game scale.
4.6 (4,332 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.
44,965 students enrolled
Last updated 4/2019
English [Auto-generated]
Current price: $11.99 Original price: $194.99 Discount: 94% off
2 days left at this price!
30-Day Money-Back Guarantee
This course includes
  • 55.5 hours on-demand video
  • 3 articles
  • 47 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to Udemy's top 3,000+ 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 284 lectures 55:16:53
+ Introduction & Setup
6 lectures 32:54

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

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)


Install Unity 2018.3

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

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
Architectural Overview

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
+ Basic Movement
11 lectures 01:42:10

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

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

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

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

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

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
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

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

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

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

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
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

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

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

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
Quiz - High Level Design #1
5 questions
+ Basic Combat
21 lectures 03:03:49

In this video (objectives)…

  1. What features we will teach in this section

(Unique Video Reference: 1_BC_RPG)

Section Overview - Basic Combat

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

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

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

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

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

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
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

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

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

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

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

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

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

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
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

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

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

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

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

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?
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

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

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

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

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

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
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

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

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

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

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
Quiz - Enemy AI #2
5 questions
+ First Moment
12 lectures 01:56:25

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

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

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

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

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

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
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

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

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

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

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#

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
Quiz - First Moment #2
5 questions
+ Scene Management
10 lectures 01:21:42

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

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

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

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

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

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

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

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
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

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
Quiz - Scene Management #2
2 questions
+ Saving System
15 lectures 02:40:00

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

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

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)

Overview Of Binary Serialization

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#

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

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#

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#
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

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

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#

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

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

In this video (objectives)…

  1. Refactoring LoadFile and SaveFile.

  2. Capturing state into an existing dictionary.

  3. 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: 12_SS_RPG)

Saving Multiple Scenes

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

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
Quiz - Saving System #2
5 questions
+ Updates & Important Messages
1 lecture 00:59

A quick update to let you know that you have reached the end of the new content. There will be more content coming soon!

New Content Coming Soon
+ Character Movement (Older Content)
25 lectures 04:41:05
  • What this course is all about
  • Why you would take this course
  • What you need to get started
  • What games you will build
  • What you will learn.

(Unique Video Reference: 1_CM_RPG)

Preview 01:52
  • Re-watch promo
  • About GameDev.tv
  • About resource links
  • Challenge: Find the donkey!

(Unique Video Reference: 2_CM_RPG)

Preview 04:06
  • An overview of the section’s project

(Unique Video Reference: 2b_CM_RPG )

About Character Movement
  • You start designing your game
  • Start creating your 1-Page GDD
  • We discuss your top-down direction
  • We discuss your bottom-up moment
  • Challenge: Create first section of 1-page GDD.

(Unique Video Reference: 3_CM_RPG)

Start Designing Your RPG
  • Quickly setup Unity project
  • World scale considerations
  • Import Ethan
  • Layout a simple arena

(Unique Video Reference: 4_CM_RPG)

Set Up A Combat Sandbox
  • Set up a camera arm
  • Position a fixed camera
  • Tag camera and player
  • Write a small script

(Unique Video Reference: 5_CM_RPG)

Preview 09:31
  • Investigate Unity’s standard cameras pack
  • Positioning the Free Look camera
  • Why we’re choosing a fixed camera

(Unique Video Reference: 6_CM_RPG)

Pan And Tilt Camera Options
  • Prototyping requires pretending
  • Add placeholder blocks and enemies
  • Tighten movement and camera
  • Write down ideas and questions

(Unique Video Reference: 7_CM_RPG)

Prototyping With Placeholders
  • A quick intro to raycasting in Unity
  • What a layer mask is
  • The bit shift operator << in C#
  • How to form a layer mask
  • How a layer mask helps Unity to filter hits.

(Unique Video Reference: 7b_CM_RPG )

Preview 03:31
  • Raycasting explained
  • Assign layers for raycasting
  • Import and review CameraRaycaster.cs

(Unique Video Reference: 8_CM_RPG)

Using Raycasts To Query Click
  • How the ThirdPersonCharacter moves
  • Import & review PlayerMovement.cs
  • Resolve any major movement bugs.

(Unique Video Reference: 9_CM_RPG)

Click Mouse To Move
  • As Indie developers we wear many hats
  • What are we building?
  • What is a Work Breakdown Structure

(Unique Video Reference: 10_CM_RPG)

Work Breakdown Structure

This quiz will continue to be updated as we add new content to the course.

Test Your Understanding 1.1
10 questions

+ What we have covered so far
+ Answers to common questions
+ What's coming up in the next 10 lectures.

(Unique Video Reference: 10b_CM_RPG)

Instructor Hangout 1.1
  • Using GameObject > Clear Parent
  • Create separate Player and Enemy prefabs
  • Organise folders by game object type

(Unique Video Reference: 11_CM_RPG)

Organizing Project For Teamwork
  • How to rename a C# script in Unity 5
  • Why we need affordances
  • Import cursor artwork
  • Start writing CursorAffordance.cs

(Unique Video Reference: 12_CM_RPG

Using Cursor Affordances
  • Where are we at with our moment?
  • What is next priority?
  • What are the design requirements?

(Unique Video Reference: 13_CM_RPG)

Most Important Combat Feature
  • Simplify & debug current movement code
  • Optional: implement direct movement

(Unique Video Reference: 14_CM_RPG)

Gamepad Movement Mode
  • What is Onion Design
  • Tighten our core

(Unique Video Reference: 15_CM_RPG)

Onion Design
  • What do we mean by "The Player Experience"
  • How do you create your player experience
  • Challenge - define the player experience for your RPG

(Unique Video Reference: 16_CM_RPG )

Preview 16:59
  • Review all the current TODO comments
  • Fix bug when changing back to indirect mode
  • Fix the slippery enemy bug!
  • Fix bug with cursor?

(Unique Video Reference: 17_CM_RPG )

TODOs And Bug Fixes
  • What the Observer pattern is
  • How data and execution flows
  • The benefits of the pattern

(Unique Video Reference: 18_CM_RPG )

Preview 05:18
  • Declare a new delegate subject type
  • Instantiate a new delegate observer set
  • Write a compatible handling function
  • Add the handling function to the set of observers
  • Call the delegate

(Unique Video Reference: 19_CM_RPG )

Using Delegates In C#
  • Why we need to protect our delegate set
  • Using the event keyword in C#
  • Adding a parameter to our delegate functions

(Unique Video Reference: 20_CM_RPG )

The Event Keyword In C#
Test Your Understanding 1.2
7 questions

+ Answers to common questions

(Unique Video Reference: 20b_CM_RPG )

Instructor Hangout 1.2
  • What we covered from a design perspective
  • What we covered from a dev perspective
  • Share your thoughts and work :-)

(Unique Video Reference: XX_CM_RPG)

Section 1 Wrap Up
  • 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.

* UPDATE March 2019: We have started the process of updating and improving the course using Unity 2018.3 based upon feedback from our community. New updated videos are being added daily.

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 or equivalent as a pre-requisite.

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 - 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 AI pathfinding, creating a flexible special abilities system, and learning how to coordinate on a complex project. You'll learn to how to implement click-to-move gameplay, use asset packs, debug, make particle effects and more.

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.