The Unity RPG Creator in C# Series - Part 1: Core Combat
4.8 (379 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
6,573 students enrolled
Wishlisted Wishlist

Please confirm that you want to add The Unity RPG Creator in C# Series - Part 1: Core Combat to your Wishlist.

Add to Wishlist

The Unity RPG Creator in C# Series - Part 1: Core Combat

Build your own Role Playing Game (RPG) in Unity 5.5. Learn intermediate C#, game & level design & architecture.
4.8 (379 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
6,573 students enrolled
Last updated 4/2017
Price: $95
30-Day Money-Back Guarantee
  • 20.5 hours on-demand video
  • 1 Article
  • 25 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Create core combat mechanics for your own Action RPG.
  • Make a simple level with terrain, placed enemies and props.
  • Balance the player and enemy stats (eg. health, damage, movement, attack speed, and more).
View Curriculum
  • 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.

This highly acclaimed course was over 200% funded on Kickstarter, and is designed for intermediate users of Unity. We recommend our Unity course as a pre-requisite.

Role Playing Games can be complex to create, with many interacting gameplay systems. We want to make it easy for you, by creating a series of online courses that teach you step-by-step how to make an RPG from scratch.

Because this is such a comprehensive and detailed project, we have divided it into multiple parts. We expect to have 3 parts in the series, each course being 20+ hours of detailed lectures, practical exercises and outstanding community support.

In this first 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.

We will choose a fixed camera-rotation isometric or dimetric projection. This will allow art assets to be optimised for viewing from two sides, and simplify level design. 

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 and more.

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

Who is the target audience?
  • This course is for intermediate Unity users who want to create their own RPG.
  • Our Complete Unity Developer course provides the perfect pre-requisite.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 89 Lectures Collapse All 89 Lectures 20:31:53
Character Movement
23 Lectures 04:28:02
  • 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 02:06

  • Re-watch promo
  • About
  • 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

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

  • 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

Test Your Understanding 1.2
7 questions
Core Combat
54 Lectures 13:31:12
  • We’ll cover core combat in this section
  • We will focus on the simplest code solutions
  • You will also learn some play tuning…
  • … and create your first level

(Unique Video Reference: 1_CC_RPG)

Preview 01:37

In this video...

  • Attack requirements
  • Attack and movement distances

(Unique Video Reference: 2_CC_RPG)

Attacking The Enemies Design

In This Video…

  • Introducing the Gizmos class in Unity
  • Import code to visualise movement
  • Adding attackStopMoveRadius
  • Prevent retreat when in radius
(Unique Video Reference: 3_CC_RPG)
Using Gizmos To Visualise Code

In This Video…

  • Review structure of health bar pack
  • Export a custom package
  • Import custom package
  • Create Player class and test

(Unique Video Reference: 4_CC_RPG)

Player Health Bar UI

In This Video…

  • Import Enemy Health Bar v.2.unitypackage
  • Explore how the package works
  • Create Enemy.cs and wire-up

(Unique Video Reference: 5_CC_RPG )

Enemy Floating Health Bar

In This Video…

  • Our current ranged attack problem
  • Diablo versus Torchlight 2 paradigms
  • Our design decision

(Unique Video Reference: 6_CC_RPG)

Ranged Attack Problem

In this video...

  • We discuss remaining sections of 1-Page GDD
  • We discuss Design Pillar
  • We discuss Remarkability
  • We'll look at what Darkest Dungeon does for their design pillar and remarkability

(Unique Video Reference: 7_CC_RPG)

Update Your 1 Page GDD

In this video...

  • Your feedback to us
  • We’re starting to juggle priorities - combat needs level, level needs art direction
  • Structure of Art Concept Document

(Unique Video Reference: 8_CC_RPG)

Set Your Art Direction

In this video...

  • Designing your level - start with your level’s intention and requirements
  • How we are creating our village level

(Unique Video Reference: 9_2_RPG)

Sketch Your Prototype Level

In this video...

  • We’ll import a level asset pack
  • Tidy up and prepare our scene

(Unique Video Reference: 10_2_RPG)

Importing Level Assets

Test Your Understanding 2.1
8 questions

In this video...

  • Terrain versus module assets approaches
  • Adding terrain and modifying it
  • Blocking out one moment in your level

(Unique Video Reference: 11_CC_RPG)

Creating Terrain

In this video...

  • Getting rough placement for all of your level moments.
  • Dealing with elevation and camera issues.

(Unique Video Reference: 12_CC_RPG)

Block Out Your Level

In This Video…

  • Asset review and feedback for Mikey
  • Art review - an interesting mistake
  • Altering our level
  • Setup & Standards text file

(Unique Video Reference: 13_2_RPG)

Review And Adjustments

In This Video…

  • Learnings and tips from blocking out level
  • Adding comments and references in your level

(Unique Video Reference: 14_2_RPG)

Commenting Your Level

In This Video…

  • Aside: why you need .psd.meta files
  • Scene folder structure and naming
  • Creating a best practices discussion
  • Everything should be a prefab!

(Unique Video Reference: 15_2_RPG)

Standardising Scene Setup

In This Video…

  • How importing asset packs affects your project
  • Bringing objects to life with script based rotation
  • How to use unit consistency to help you code
  • Why we keep root object scales at 1,1,1.

(Unique Video Reference: 16_2_RPG)

Help Writing Physics Code

In This Video…
  • How to fix disappearing hard shadows
  • Add a navmesh to your terrain(s)
  • Add a Navmesh Agent to our enemy prefab

(Unique Video Reference: 17_2_RPG)

Make Enemies Pathfind To Player

In This Video…

  • The limitations of our current architecture
  • Import new CameraRaycaster.cs
  • Review what’s changed and why
  • Remove our Layer.cs script
  • Preview the editor script

(Unique Video Reference: 18_2_RPG)

Fully Event Based Raycasting

In This Video…

  • Why you would want to extend Unity’s editor
  • Review CameraRaycasterEditor.cs
  • CHALLENGE - check your understanding.

(Unique Video Reference: 19_2_RPG)

Writing Custom Editors

In this video...

  • Control your FOCUS - let’s move on
  • How to modify our player for pathfinding

(Unique Video Reference: 20_2_RPG)

Player Pathfinding To Enemies

Test Your Understanding 2.2
10 questions

In this video...

  • Recap our goals for prototyping
  • Where are you at with your goals - what is your score out of 10?

(Unique Video Reference: 21_2_RPG)

Prototyping Goals And Progress

In this video:

  • Import latest art assets
  • Review distance, sizes, pacing in your level
  • Clean up Nav Mesh

(Unique Video Reference: 22_2_RPG )

Refine Your Nav Mesh

In This Video…

  • It’s important to experiment when prototyping

(Unique Video Reference: 23_2_RPG)

Tuning And Exploring

In This Video…

  • Humanoid character import settings
  • How to replace a character’s mesh

(Unique Video Reference: 24_CC_RPG)

Importing Humanoid Animations

In This Video…

  • What an interface is in C#, and why they’re useful
  • Where and when to use them, e.g. IDamageable
  • Building a simple example scene.

(Unique Video Reference: 25_CC_RPG)

Using Interfaces In C#

In This Video…

  • How to find game objects by interface
  • How to call a method via an interface
  • Getting damage working on player and enemy

(Unique Video Reference: 26_CC_RPG)

Calling Methods Via Interfaces

In this video...

  • How to find game objects by interface
  • How to call a method via an interface
  • Getting damage working on player and enemy

(Unique Video Reference: 27_CC_RPG)

Enemy Move And Attack Spheres

In this video...

  • A quick recap of unit vectors, speed and velocity
  • Setup projectile prefab & attach to enemy

(Unique Video Reference: 28_CC_RPG)

Spawning Enemy Projectiles

In this video...

  • How InvokeRepeating() is string referenced
  • StartCoroutine() is type safe, but more complex
  • A very quick overview of co-routines
  • Test enemies damaging player

(Unique Video Reference: 29_CC_RPG)

InvokeRepeating() vs StartCoroutine()

In this video...

  • Make enemies hit player in chest
  • Import dirty old hoe
  • Attach weapon to player’s hand
  • Make player target a single enemy

(Unique Video Reference: 30_CC_RPG)

Player Melee Damage

Test Your Understanding 2.3
10 questions

  • Tidy up level, renaming and position weapon
  • Design 3 Archetypes - Archer, Minion, Bruiser

(Unique Video Reference: 31_CC_RPG)

Creating Enemy Archetypes

  • Check our WBS
  • Health and damage continuums

(Unique Video Reference: 32_CC_RPG)

Health And Damage Philosophy

In this video...

  • Start your Stat Spreadsheet with some starting points
  • Update Player and Enemy stats in level

(Unique Video Reference: 33_CC_RPG)

Start Your Stat Spreadsheet

In this video...

  • Using the tools we have
  • Creating a healer

(Unique Video Reference: 34_CC_RPG)

Healing Companion Prototype

In this video...

  • Give story flavour to your level flow
  • Create new enemies types

(Unique Video Reference: 35_CC_RPG)

Level Story Theme And Flow

In this video...

  • No two moments in your level should be the same
  • Place enemies and healing to make good combat flow
  • Test and tweak your level

(Unique Video Reference: 36_CC_RPG)

Playable Level With Combat

  • How complexity may scale in a project
  • The bigger picture of smelly code
  • Review TODOs to feel in control

(Unique Video Reference: 37_CC_RPG)

Rising Complexity, Refactoring

  • Why our projectiles are hard to see
  • Strategies for improving visibility
  • Using Trail Renderers to help see projectiles

(Unique Video Reference: 38_CC_RPG)

Using The Trail Renderer Component

  • Options for stopping projectiles passing through
  • Using Continuous Dynamic collision detection
  • Fix characters crouching on impact issue
  • Projectiles self-organise and destroy themselves

(Unique Video Reference: 39_CC_RPG)

Preventing Projectile Pass-Through

Test Your Understanding 2.4
10 questions

  • Our Current Movement Bugs
  • Tuning To Find A Fix

(Unique Video Reference: 40_CC_RPG)

Fix Wobbly Characters

  • The vision of separate “modules”

  • How to “bubble-up” to share

  • When to create folders

  • Naming and cache invalidation… again!

  • Considerations when working in a team.

(Unique Video Reference: 40b_CC_RPG)

Thoughts On Organisation

  • The problem with importing assets
  • Our various needs with our assets
  • Rearranging our assets folder

(Unique Video Reference: 41_CC_RPG)

Preparing Our Assets Folder

  • What we mean by set dressing
  • Import textures and assets
  • Make the ground look good

(Unique Video Reference: 42_CC_RPG)

Set Dressing Our Level

  • Import water from standard assets
  • Place water

(Unique Video Reference: 43_CC_RPG)

Adding Water

  • The bug we’re seeing that started after we added water
  • My solution to the bug
  • A conversation about making decisions on how much time to invest in fixing bugs

(Unique Video Reference: 44_CC_RPG)

Movement Bug And Water

  • Import trees from standard assets, asset store or our asset pack
  • Setting up our tree painting
  • Trees in our level

(Unique Video Reference: 45_CC_RPG)

Adding Trees

  • Creating and explaining the Asset Showcase Scene

(Unique Video Reference: 46_CC_RPG)

Asset Showcase Scene

  • How NOT to automate new scene setup (yet)

  • Showcase scene detail res. & scene file clash

  • Update / import latest art assets. Blue trees?

  • Discuss movement bug / deferring (80% rule)

  • Rename NotifyObservers and fix console errors

  • How to highlight member variables in VS.

(Unique Video Reference: 47_CC_RPG)

Get Your Dev Hat Back On

  • The difference between data and state
  • Why we use Scriptable Objects for data
  • Using [CreateAssetMenu(menuName=”Name”)]
  • Programmatically placing a weapon in hand.

(Unique Video Reference: 48_CC_RPG)

Introducing Scriptable Objects

Test Your Understanding 2.5
10 questions

  • Create a weapon grip transform prefab

  • Associate the weapon grip with the weapon*

  • Ensure weapon spawns with correct grip

* Later you could have multiple grips per weapon.

(Unique Video Reference: 49_CC_RPG)

Adjustable Weapon Grip

  • Recover Rick’s value from player instance

  • Use a MonoBehaviour to tag weapon hand.

(Unique Video Reference: 50_CC_RPG)

Problems With Prefabs

  • Clear all console warnings

  • Simplify Ethan’s Animator Controller

  • Import free animation pack

  • Setup Attack animation trigger.

(Unique Video Reference: 52_CC_RPG)

Import Mecanim Animation Pack

  • Why enemies currently hurt one-another


  • Split class into SO and MonoBehaviour

  • Add facility for sound.

(Unique Video Reference: 52_CC_RPG)

Projectiles Discriminate

Test Your Understanding 2.6
5 questions

  • What you’ve learnt
  • What’s coming up next

(Unique Video Reference: 53_CC_RPG)

Section 2 Wrap Up
Modifiers & Abilities
12 Lectures 02:32:39
  • What’s coming in this section.

(Unique Video Reference: 1_MA_RPG)

Section 3 Introduction

  • Review and update your WBS
  • Decide on next priorities

(Unique Video Reference: 2_MA_RPG)

Design Planning And Decisions

  • GDD Template And Our GDD

(Unique Video Reference: 3_MA_RPG)

Your Game Design Document

+ My chosen options for upgrading to Unity 5.6

+ Review Unity's release notes

(Unique Video Reference: 4_MA_RPG)

Unity 5.6 And VS Community 2017

+ What a namespace is and why it's useful

+ How to use namespaces in C#

(Unique Video Reference: 5_MA_RPG)

Using Namespaces In C Sharp

+ Fixing a possible projectile bug

+ What is an Animator Override Controller?

+ How to override animations at runtime

(Unique Video Reference: 6_MA_RPG)

The Animator Override Controller

+ The hidden dependency in our asset pack

+ How to prevent animation events breaking code

+ Challenge: Apply animations to weapons.

(Unique Video Reference: 7_MA_RPG)

Protecting Our Interfaces

+ Taking control of our animations
+ Drawing out our dependencies
+ Taking control of Standard Assets

(Unique Video Reference: 8_MA_RPG)

Untangling Standard Assets

+ Refactor our Player class

+ Move properties from Player to Weapon

(Unique Video Reference: 9_MA_RPG)

Trigger Player Hit Animation

1. Review AudioTrigger.cs from Gist

2. Set-up and test sound trigger prefab

3. How to source your audio clips

(Unique Video Reference: 10_MA_RPG)

Triggering Audio On Radius

Test Your Understanding 3.1
10 questions

  • Performance issues from terrain
  • Challenge: Tune terrain settings

(Unique Video Reference: 11_MA_RPG)

Terrain Optimization

More Content Coming Soon...
About the Instructor
Ben Tristem
4.7 Average rating
41,961 Reviews
217,873 Students
10 Courses
Best-selling Instructor, Game Developer, Online Entrepreneur

Hi, I'm Ben. I have a degree in computing from Imperial College London, and a physics diploma from the Open University.

I started working for myself at the age of 15, and never looked back. I explored careers as varied as being a commercial pilot, stunt-man, rock climbing instructor, and more. None of these provided a continued challenge, and stable income in the same way technology does.

After building and selling a home computer support business, I became an angel investor and business mentor here in Cambridge UK. I fell in love with teaching game development through one of my investments, and I now spend all of my time sharing my passion with people like you.

I can't wait to help you experience the fulfilment, and financial freedom, that having a deep understanding of technology brings.

So why not start learning to make games with me and my team now?

See you soon!


Rick Davidson
4.8 Average rating
543 Reviews
8,123 Students
2 Courses
Game Career Coach with 13+ years in the Video Game Industry

Rick Davidson has been making video games for a living for more than 13 years as a Designer, Producer, Creative Director, and Executive Producer, creating games for console, mobile, PC and Facebook. He founded an Indie game studio, Inspirado Games, which was acquired in 2012 by Electronic Arts / PopCap. He has worked on cool IPs such as Mario, Transformers, Captain America and Mortal Kombat and created successful new IPs from scratch (such as "GardenMind" which was nominated for Canadian Game of the Year in the social / mobile category).

As a qualified Career Coach, Rick has helped thousands of people achieve their dream of making games for a living - both as Indie Game Developers and as valuable game industry employees.