Learn Unity Engine and C# by creating a real top down RPG
4.3 (545 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.
2,325 students enrolled

Learn Unity Engine and C# by creating a real top down RPG

Learn Unity engine and C# while developing a fast and efficient workflow for creating a top down RPG and future projects
4.3 (545 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.
2,325 students enrolled
Created by Michael Doyon
Last updated 11/2017
English [Auto], Portuguese [Auto]
Current price: $27.99 Original price: $39.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 8 hours on-demand video
  • 1 downloadable resource
  • 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 a 2D Top down game
  • Create and implement RPG elements in a video game
  • Use the latest tools from Unity Technology
  • Learn Workflow tips to speed up the development of your games
Course content
Expand all 51 lectures 07:47:44
+ Setting up
5 lectures 18:21

We download the required software to start developing the game.

Preview 03:24

We setup our engine's layout, to facilitate work.

Creating our layout

We download our Art for the game.

Obtaining Art Atlas

Source code and project files are available here, in the lesson's resources.

Source Code and Project Files

Please make sure to ask for help if you're blocked! Nothing is worst than spending 4 or more hours on a litte mistake. We're here to help :)

Preview 02:33
+ Moving and Manual Collision Detection
6 lectures 47:02

We open up the Sprite editor, and learn how to crop sprites so we can use them in the game.

Preview 04:43

We setup our scene, so it is ready to receive our sprites.

Setting up the metrics of our scene

We create our first C# Script

Creating our first script

We manipulate the Transform component of our sprite and therefor, move the player around the screen.

Moving the player's sprite

We use physics to determine whether an object is in the way of our sprite.

Collision detection, and blocking movement

We add a camera on top of our sprite, making sure we follow his movement across the scene.

Creating a follow-camera
+ Tilemap and Designing Dungeon
4 lectures 37:21

We open the sprite editor, and start cropping out the desired floor and wall tiles

Cropping out floor and wall tiles

We explore the Tile Palette Window

Introducing the Tile Palette

We start using the TileMap system to lay down our Main Scene

Creating the Main Scene

We keep exploring TileMap as we create the Dungeon Scene.

Preview 10:09
+ Interactive Objects and Inheritence
4 lectures 35:04

We create our base Collidable Object

Collidable Objects

We use the power of inheritance to derive a Chest object from Collidable

Preview 08:36

We insert a new layer in between the chest, and the collidable object.

Collectable Objects

We yet again derive from collidable to create another object that triggers an action on collision.

Portal Object
+ Saving Game's State
3 lectures 25:53

We start keeping track of the player's progress by keeping the required variable and their value in the Game Manager object.

Creating a Game Manager

We slip our piece of code at a very specific time in the application flow, using a event fired by Unity

Using C# Action

We create our own Save Format under a string object, and push it to the Player Preferences.

Custom Serialization
+ Floating Text System
3 lectures 29:39

We define the content of a floating text object.

Creating our Floating Text Object

We lay down the base of our Floating Text System, including the Show Function

Creating the Manager

We call our manager from different scripts, and test out our new System.

Connecting the dots
+ Top Down Combat System
6 lectures 01:02:17

We crop out our weapon from the sprite texture, and start defining weapon.cs

Weapon Definition

We crop out an enemy, and turn him into a target dummy.

Creating a Target Dummy

We sneak in a new class in beneath the Player and Enemy, this one shall grant the object fighter properties.

Introducing the Fighter Class

We yet again sneak in a class in between Fighter and Player, this one will allow the derived object to move around the map.

Introducing the Mover Class

We give our enemy a brain that will make him rush at our player when he sees it.

Simple Enemy AI

We implement a push direction on all mover object, to make sure they're projected backward when they get hit.

Pushing around
+ Animator and Weapon Swing Animation
2 lectures 21:55

We bring up the Animator window, and create a Swing animation for our weapon

Animator, and key framed animations

We connect the code to the weapon, and allow the player to trigger the swing in-game.

Preview 10:39
+ Character Menu and the new UI System
7 lectures 01:24:30

We create the canvas, and separate it by sections.

Creating the Menu Skeleton

We open up the Animator yet again to create a show, and a hide animation for our Menu.

Show and Hide Menu Animation

We add the three menu sections and their respective art.

Adding Content

For our menu to display proper data, we need to implement the code behind it.

Coding for the Menu's Backend

We use the menu previously made, to create a function that will upgrade the weapon.

Upgrading the weapon

We use another piece of menu to facilitate character selection.

Implementing the Character Selection

We create the proper function, to interpret the player's experience and cast it into Levels.

Experience System
+ Polishing and Adding Content
11 lectures 01:45:42

We fix the Scene Flow, allowing the player to travel from one scene to another without having bugs.

Restoring the Scene Flow

We change the texture import settings to correct visual anomalies.

Glitches in between the tiles

We fix the transfer of objects in between scenes.

Persisting Objects

We fix some issues, and create a healing fountain for our player to restore his hitpoints.

Creating an Healing Fountain

We create a new collidable object in a record time.

Preview 10:01

We use the torch sprites we've cropped in the previous episodes to create a sprite animation.

Creating a Sprite Animation

We add a hitpoint bar on our static Heads Up Display

Creating a Hitpoint bar

We add a royalty free font to use in our project.

Adding a new Font

We create a boss with special orbiting enemies

Creating a Boss

We create an action when our player dies, redirecting him to the main scene.

Death Flow

We correct some bugs as we wrap up the project.

Bugfixes and Wrap up
  • Basic coding knowledge
  • Basic understanding of mathematics (order of operations, addition, subtraction, multiplication)

If you are interested in quickly developing an amazing top down RPG while learning tricks of the trade to speed up your workflow in Unity, or just looking to learn how to use the engine to its full potential then you've come to the right place.

In this Unity course, you will:

  • Detect collisions, receive user input, and create player movements

  • Use the Animator and animations to save precious coding time

  • Use the new Tilemap system

  • Collect and destroy game objects

  • Navigate the Unity Engine

  • Use C# Inheritence

  • And more!

Who this course is for:
  • Anyone who wants to learn Unity
  • Anyone who wants to learn how to create a 2D Game using very minimal and optimal art
  • Anyone who wants to learn more about Collision Detection
  • Anyone who wants to learn about Inheritence
  • Anyone who wants to learn how to create a Combat System
  • Anyone who wants to learn how to use Unity Messages
  • Anyone who wants to learn the new TileMap tool
  • Anyone who wants to learn Multi-Sprite Editing
  • Anyone who wants to learn to code