We may earn an affiliate commission when you visit our partners.
Course image
GameDev.tv Team and Stephen Hubbard

Create your own classic 2D top-down RPG game using Unity, an industry-standard game development program used by many large gaming studios and indie developers across the world.

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 you’ll create the foundation of a 2D top-down RPG game, giving your players a fun combat moment in a well crafted level, based upon a solid game design, built using a robust code architecture.

Read more

Create your own classic 2D top-down RPG game using Unity, an industry-standard game development program used by many large gaming studios and indie developers across the world.

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 you’ll create the foundation of a 2D top-down RPG game, giving your players a fun combat moment in a well crafted level, based upon a solid game design, built using a robust code architecture.

In this “beginner +” course you’ll learn to manage a bigger project from start to finish, learning beginner to more intermediate techniques and C# fundamentals.

So if you’re…

  • Ready to break out from beginner tutorials and build something you can call your own?

  • Familiar with the basics of Unity and looking to take the next steps?

  • Looking to build a solid foundation of C# fundamentals with Unity?

This is the course for you.

You’ll get full lifetime access for a single one-off fee. The creators are qualified and experienced with modelling and coding, so are able to explain complex concepts clearly, as well as entertain along the way.

And you’ll get access to the Q&A where our Instructors, Teaching Assistants and Community are ready to help answer your questions and cheer on your success.

Building an RPG is an amazing way to level-up your game development skills, so grab your magic staff and start improving your game development right now.

Enroll now

What's inside

Learning objectives

  • Learn to manage a bigger project from start to finish learning beginner to more intermediate techniques
  • Create the foundation of a 2d top-down rpg game
  • Beginner to intermediate c# fundamentals
  • Create a 2d top-down movement, combining c# and animator components
  • Build a combat system with multiple weapons
  • Learn tilemap, rule tiles, animated tiles, and scene workflow.

Syllabus

Introduction & Setup

In this video (objectives)…

  1. Stephen Welcomes you to the course and gives you some insight into what we’ll be creating!

Read more

In this video (objectives)…

  1. Download Unity Hub and Visual Studio Code, including the extensions for C# and Unity Code Snippets.

In this video (objectives)…

  1. If you're experiencing issues with VS Code or IntelliSense not working properly, this guide will walk you through several steps to hopefully get things working.

In this video (objectives)…

  1. Let’s create a brand new project with the 2D(URP) settings using Unity 2022.1 and set up our editor layout.

In this video (objectives)…

  1. Lucy invites you to join us in our various community support forums in order to ask questions, connect with other students and share your progress.

In this video (objectives)…

  1. Any time we change our project during a lecture we will commit that change to a public source control repository for students to access. In this video, we show you how to access that content.

In this video (objectives)…

  1. Get our hero moving and running around our game! We’ll import our sprites and get a basic scene up and running.

In this video (objectives)…

  1. Let’s get our base hero game object moving around the game scene.

In this video (objectives)…

  1. Let’s update our player sprite and set up some sprite preset settings within the project.

In this video (objectives)…

  1. Our hero needs some basic animations! Use the animation and animator windows combined with our PlayerController class to bring him to life!

In this video (objectives)…

  1. Let’s get our main hero up and moving right out of the gate. Explore cutting up sprite sheets with the correct pivot points and adjusting our y-axis renderer top-down 2D view with a simple tilemap.

In this video (objectives)…

  1. In this section, we’ll be setting up an enemy state machine, handling basic pathfinding, health & stamina effects, and much more as we dive into some fun combat mechanics!

In this video (objectives)…

  1. Introduce some basic enemy AI and enemy movement in this intro lecture to our overall combat system.

In this video (objectives)…

  1. Animate the beginning of our sword combat mechanics.

In this video (objectives)…

  1. Use some fun Mathf functions to get our sword animation flipping and swinging in both directions.

In this video (objectives)…

  1. Add a sprite slash animation prefab to give our user some nice visual feedback and polish off our sword-swinging animation.

In this video (objectives)…

  1. Get some colliders set up on our weapon prefab and start making contact with the enemy slimes.

In this video (objectives)…

  1. Create an Enemy Health class to detect our sword collision and deal damage accordingly.

In this video (objectives)…

  1. Using some 2D physics, let’s create a knockback class that we can use on different gameobjects that thrust them around our scene.

In this video (objectives)…

  1. Flash the enemies white as needed when our enemies take damage from our courageous hero.

In this video (objectives)…

  1. Complete our death visual feedback with a simple particle effect that we can use across a multitude of different enemies.

In this video (objectives)…

  1. Who wants to spam mouse clicks?! Set up our hero to constantly swing his sword, as long as we’re holding down our assigned attack button.

In this video (objectives)…

  1. Wrap up the basic combat mechanics with a nice dash mechanic in our Player Controller.

In this video (objectives)…

  1. Clean up our combat code to tidy every thing up. Get rid of magic numbers, re-factor a couple minor adjustments, and keep our combat at a nice solid foundation we can continue to build on.

In this video (objectives)…

  1. Set up a camera controller with cinemachine, rule tiles to easily expand on our scene, and introduce some cool environmental effects to add some life to our overall environment!

In this video (objectives)…

  1. Use Cinemachine to set up some simple follow-the-player mechanics. We’ll also set up a polygon 2d collider confiner so that our camera doesn’t go out of bounds and see just how powerful Cinemachine can be!

In this video (objectives)…

  1. Set up the base of our Tilemap and set up a solid foundation that we can use for our rule & animated tiles.

In this video (objectives)…

  1. Use the rule tile feature set to set up several different rule tiles to streamline our scene setup process.

In this video (objectives)…

  1. Take our water tiles one step further and animate them to help add some movement.

In this video (objectives)…

  1. Set up a class we can use across a multitude of different gameobjects that will allow us to fade the transparency of both sprite and tilemap renderers.

In this video (objectives)…

  1. Give our canopy a nice parallax effect by offsetting the position of our canopy in relation to the camera and player movement.

In this video (objectives)…

  1. Set up some collision and animator effects on our bush prefab. This way, our player can truly experience what it’s like to hack and slash our way through our scenes.

In this video (objectives)…

  1. In this section we’ll tackle what is takes to move our player character from scene to scene. We’ll set up exit and entrance portals to move the character as intended, as well as introduce generics using a nice singleton class.

In this video (objectives)…

  1. Give ourselves two scenes to work with so that we can properly set up our scene transitions.

In this video (objectives)…

  1. Introduce generics using a singleton class that other classes can inherit from to help certain gameobjects persist from scene to scene.

In this video (objectives)…

  1. Let’s get our player to move to the proper portal entrance, after changing from one scene to the other.

In this video (objectives)…

  1. Adjust our Cinemachine Camera to properly follow our player while transitioning between scenes.

In this video (objectives)…

  1. Set up a smooth fade-in and out transition to give our portals a nice smooth effect.

In this video (objectives)…

  1. Finish off our portal with a nice clean particle visual effect to give visual feedback to the player.

In this video (objectives)…

  1. In this section, we’ll introduce what it takes to set up some nice 2D post-processing effects. Including different overrides to our global volume, and even using shader graph to give us a nice bloom & glow effect material we can use whenever we’d like.

In this video (objectives)…

  1. Go over a simple explanation of Unity’s 2D URP system and how easy it can be to get set up with some cool post-processing effects.

In this video (objectives)…

  1. Let’s explore a few different 2D lights and their different effects. Set up an animated torch sprite with the appropriate lighting to go with it.

In this video (objectives)…

  1. Whether it’s our torch or any other kind of idle animation, sometimes it can be annoying if they’re all moving in perfect synchronization. Write a simple script to fix that!

In this video (objectives)…

  1. Use the shader graph tool in combination with the post-processing bloom override to create a cool glow effect on certain materials.

In this video (objectives)…

  1. Finish off this section with a nice twinkle particle system challenge to elevate our scene and incorporate what we’ve learned.

In this video (objectives)…

  1. In this section, we’ll cover not only implementing the basics of inventory swapping. We’ll also set up unique attacking logic for the sword, bow, and staff using interfaces and scriptable objects.

In this video (objectives)…

  1. Let’s get our UI overlay set up so we have a nice foundation to work with visually before we implement the mechanics of our basic inventory system.

In this video (objectives)…

  1. With our UI set up, let’s rig up a basic inventory toggle system that will allow us to seamlessly visualize which weapon our player is using.

In this video (objectives)…

  1. Refactor our current weapon sword attack system to implement an IWeapon Interface class that we can use for not only our sword, but other weapons like our bow and staff as well.

In this video (objectives)…

  1. Create our first scriptable objects in a way so that our inventory knows which weapon to properly access.

In this video (objectives)…

  1. In this two part topic, let’s get our three weapons instantiating correctly and attached to our player so we can use our scriptable objects and interface classes in tandem.

In this video (objectives)…

  1. Fix up the existing errors and get our inventory swapping between the three weapons correctly.

In this video (objectives)…

  1. Rig up our bow & staff prefabs to visually get them rotating around the player correctly.

In this video (objectives)…

  1. Prepare our weapons to have their own unique individual cooldowns utilizing our scriptable objects and our IWeapon interface.

In this video (objectives)…

  1. Create all the mechanics our bow & arrow needs to properly fire away at attacking slimes.

In this video (objectives)…

  1. Wrap up everything we need with the arrow projectile, including things like damaging our enemies and instantiating a slick vfx particle system.

In this video (objectives)…

  1. Get our magic staff correctly instantiating lasers into the scene.

In this video (objectives)…

  1. Edit the laser sprite and 2D collider during run time to give the visual effect the laser is quickly growing and then fading out.

In this video (objectives)…

  1. Clean up a couple of small bugs before we move on.

In this video (objectives)…

  1. In this section, we’ll be implementing a complex shooter class to act as sort of a generic bullet hell type of system. In addition, we’ll introduce a unique grape ranged attack enemy and screen shake features to really flex our game dev muscles.

In this video (objectives)…

  1. Use some of our previously created classes to properly rig up our player’s health.

In this video (objectives)…

  1. Set up our secondary scene in a way that we have plenty of room to work with. We’re gonna need some space to act as a sort of playground for all our new and upcoming enemies!

In this video (objectives)…

  1. Refactor a bit of code allowing us to set up our enemy bullet prefab to use our pre-existing projectile class.

In this video (objectives)…

  1. Modify our Enemy AI state machine so that it implements an IWeapon interface and fires our bullet prefab toward our player.

In this video (objectives)…

  1. Update our Shooter class to still first one bullet at a time but in rapid-fire burst succession.

In this video (objectives)…

  1. Build upon our shooter class by implementing a cone of attack that can be modified in the inspector.

In this video (objectives)…

  1. Wrap up our generic and re-usable shooter class in a way by adding by oscillation and staggering properties.

In this video (objectives)…

  1. Our shooter class has a lot to it. Let’s introduce the OnValidate() editor-only method to create some restraints in the inspector as well as introduce editor tooltips.

In this video (objectives)…

  1. Introduce a fun new enemy with some unique, fun, and tricky mechanics.

In this video (objectives)…

  1. Lob up the grape projectile towards the player utilizing the animation curve property.

In this video (objectives)…

  1. Finish off our Grape enemy by creating a nice splatter ground effect that both damages our player and fades away.

In this video (objectives)…

  1. Wrap up our Bullet Hell section with a nice screen shake effect for some user visual feedback and immersion.

In this video (objectives)…

  1. In this last official section of the course, we’ll polish things up by adding pickups, a custom cursor, death logic, UI for our dash stamina and health, and finally wrapping things up to properly launch our game on the web so your friends and family can see all your hard work.

In this video (objectives)…

  1. Take the first steps toward setting up a pickup system. Create a magnetic sort of pull on our pickups when our player gets within range.

In this video (objectives)…

  1. Use an animation curve to get our pickups spawning with a nice and custom pop-up animation when they are instantiated into our scene.

In this video (objectives)…

  1. Utilize Enums so that we can properly assign what kind of pickup is to each individual pickup prefab.

In this video (objectives)…

  1. Get our UI set up so that we can properly interact with our player’s health, stamina, and the current amount of gold coins.

In this video (objectives)…

  1. Use the UI Slider component to seamlessly work with our player’s health.

In this video (objectives)…

  1. Set up our gold TMP text components to update properly in our UI when our player picks up coins.

In this video (objectives)…

  1. Let’s create some stamina functionality that only allows the player to dash if we have the available stamina, and reflect that in the UI.

In this video (objectives)…

  1. Import our customer cursor image and rig that up to appear in our game.

In this video (objectives)…

  1. Import some bonus building & NPC sprites in our project for more potential scenes and variety. Use our transparent detection class to properly set up our buildings.

In this video (objectives)…

  1. Set up our player death animation as well as spawn our player back in our town scene when our player’s health gets to zero.

In this video (objectives)…

  1. Clean up the last of our bugs and other code discrepancies.

In this video (objectives)…

  1. How to upload our game to ShareMyGame.com using a WebGL build version of our game.

In this video (objectives)…

  1. Well done on this course! You did a great job! Can’t wait to see what you come up with next.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses Unity 2022.1, which is relatively recent and ensures compatibility with current industry standards and practices
Covers intermediate C# fundamentals within the Unity environment, which is essential for creating interactive game mechanics and systems
Explores Cinemachine for camera control, which is a powerful tool for creating dynamic and engaging camera movements in games
Requires downloading Unity Hub and Visual Studio Code, which are standard tools, but may require some setup for those unfamiliar with them
Teaches the creation of a bullet hell system, which can be complex and may require a solid understanding of game design principles
Focuses on building a 2D top-down RPG, which may not appeal to learners interested in other game genres or 3D development

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Analysis pending: review data needed

This summary is a placeholder. To provide an accurate analysis of the "Unity 2D RPG: Complete Combat System" course based on student feedback, the actual review data is required. Once the 'reviews' array and 'distribution' object are provided, this summary will describe what learners say about the course, covering its strengths, weaknesses, and key takeaways, incorporating frequent comments and using span tags for emphasis. The summary will be between 480 and 720 characters long.
Placeholder - Content requires data.
"This note serves as an example structure; actual content depends entirely on provided reviews."
"Real excerpts would be direct quotes or first-person paraphrases from student feedback."
"With the data, this section will highlight specific points like teaching clarity, code examples, or project scope."
Cannot analyze without review data.
"The prompt lacked the 'reviews' and 'distribution' data necessary for analysis."
"I require the actual student reviews and their ratings to generate a meaningful analysis."
"Please provide the complete data payload as described to proceed with the review analysis."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Unity 2D RPG: Complete Combat System with these activities:
Review C# Fundamentals
Solidify your understanding of C# fundamentals before diving into the course. This will make the scripting aspects of the game development process easier to grasp.
Browse courses on C# Scripting
Show steps
  • Review basic syntax and data types.
  • Practice writing simple C# programs.
  • Familiarize yourself with Unity's C# API.
Practice Unity Editor Basics
Become comfortable with the Unity editor interface and workflow. This will allow you to navigate the project and implement features more efficiently.
Browse courses on Unity Editor
Show steps
  • Explore the Unity editor layout.
  • Practice creating and manipulating game objects.
  • Learn how to use the Inspector window.
Implement Basic Player Movement
Practice implementing basic player movement using C# scripting and Unity's animation system. This will reinforce the concepts covered in the Player Movement section of the course.
Show steps
  • Create a new Unity project.
  • Import a player sprite.
  • Write a C# script to control player movement.
  • Animate the player character.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Follow Cinemachine Tutorials
Deepen your understanding of Cinemachine by following online tutorials. This will help you create more dynamic and engaging camera movements in your game.
Show steps
  • Find tutorials on Cinemachine basics.
  • Implement a simple follow camera.
  • Experiment with different Cinemachine features.
Review: Game Programming Patterns
Study common game programming patterns to improve code quality. This will help you write cleaner, more maintainable, and more efficient code for your RPG project.
Show steps
  • Read a chapter on a relevant design pattern.
  • Implement the pattern in your project.
  • Refactor existing code to use the pattern.
Document Your Combat System
Create a document that explains the design and implementation of your combat system. This will help you solidify your understanding of the system and make it easier to maintain and extend in the future.
Show steps
  • Outline the key components of the system.
  • Describe the interactions between components.
  • Explain the code structure and logic.
  • Include diagrams and illustrations.
Contribute to a Unity Asset
Contribute to an open-source Unity asset related to 2D RPGs. This will give you valuable experience working on a real-world project and collaborating with other developers.
Show steps
  • Find an open-source Unity asset on GitHub.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete Unity 2D RPG: Complete Combat System will develop knowledge and skills that may be useful to these careers:
Game Developer
A game developer brings video game ideas to life. The creation of a 2D top-down RPG game, the focus of this course, offers a practical, hands-on experience that is directly applicable to the work a game developer undertakes. This course helps build a foundation in C# fundamentals and beginner to intermediate techniques and guides you through the process of managing a game development project from start to finish. Game developers benefit from skills in movement, combat, and environment creation, all of which you can improve by taking this course.
Game Programmer
A game programmer writes code for video games, implementing game mechanics, artificial intelligence, and user interfaces. This course is directly relevant to a game programmer, because the course teaches you, step-by-step how to make the foundations of any good RPG, from scratch. Game programmers can make use of skills in C# fundamentals as well as tilemap, rule tiles, animated tiles, and scene workflow. A game programmer can improve their skills in building a combat system with multiple weapons.
Gameplay Programmer
A gameplay programmer specializes in creating and implementing the mechanics and systems that define how a game is played. This course is especially relevant to a gameplay programmer because it focuses on creating the foundation of a 2D top-down RPG game and building a combat system with multiple weapons. The course also helps build a foundation of C# fundamentals with Unity, which are essential tools for any gameplay programmer. A gameplay programmer who takes this course gains skills in 2D top-down movement, combining C# and animator components.
Unity Developer
A Unity developer specializes in using the Unity game engine to create interactive experiences. The core of being a Unity developer involves understanding how to use Unity to implement game mechanics, design environments, and optimize performance. This course helps build skills in making the foundations of any good RPG, from scratch. Unity developers are better equipped for their work after they learn tilemap, rule tiles, animated tiles, and scene workflow. This course helps you level-up your game development skills.
Indie Game Developer
An indie game developer works independently or in a small team to create and publish their own games. The skills learned in this course are directly applicable to this field. You will learn how to create the foundation of a 2D top-down RPG game, manage a game development project from start to finish, and build a combat system with multiple weapons. The course also helps build a solid foundation of C# fundamentals with Unity, an industry-standard game development program, which is used by many indie developers across the world. This course may be useful for those indie game developers who want to create their own classic 2D top-down RPG games.
Level Designer
Level designers create the environments and layouts within a video game. This course can be especially helpful as it teaches tilemap, rule tiles, animated tiles, and scene workflow. These are all essential skills for level designers. Level designers can improve their skills in creating a well-crafted level, based upon a solid game design, built using a robust code architecture. In addition, this course helps level designers learn to manage a bigger project from start to finish learning beginner to more intermediate techniques.
Mobile Game Developer
A mobile game developer creates games specifically for mobile platforms such as iOS and Android. The skills in this course are transferrable to mobile game development, especially if developing 2D games. Mobile game developers can leverage the skills in C# fundamentals with Unity taught by the course. A mobile game developer might focus on the lessons about creating a 2D top-down movement, combining C# and animator components, and building a combat system with multiple weapons.
Software Engineer
A software engineer designs, develops, and tests software applications. This course may be useful for understanding game development principles, which can be an asset in certain software engineering roles, especially those related to gaming or interactive media. Software engineers learn to manage a bigger project from start to finish learning beginner to more intermediate techniques. This course can help software engineers with C# fundamentals.
Game Designer
Game designers conceptualize and design the various elements of a video game. This course may be useful as it provides hands-on experience in building the foundations of an RPG game, including combat systems and level design. Game designers benefit from experience managing a bigger project from start to finish learning beginner to more intermediate techniques as well as an understanding of C# fundamentals. Game designers may find particular value in the course's lessons on tilemap, rule tiles, animated tiles, and scene workflow.
Technical Artist
A technical artist bridges the gap between artists and programmers, ensuring that the art assets in a game work seamlessly within the game engine. This course may be useful for building a better understanding of how art assets are implemented and interact within Unity. Technical artists would benefit from this course as a way to improve skills in tilemap, rule tiles, animated tiles, and scene workflow. The course also helps build a foundation of C# fundamentals with Unity.
Virtual Reality Developer
A virtual reality developer creates immersive experiences using VR technology. Although this course focuses on 2D game development, the core principles of game design and C# programming are transferable to VR development. Virtual reality developers often have an educational background that includes an advanced degree. Virtual reality developers may find the lessons about C# fundamentals and Unity particularly useful. Virtual reality developers can translate these skills to create interactive VR experiences.
Simulation Developer
A simulation developer creates software that simulates real-world scenarios for training, research, or entertainment purposes. This course may be useful for building interactive and engaging simulations. Simulation developers can translate the skills taught to simulate 2D top-down movement, combining C# and animator components. The C# fundamentals covered in this course help any developer with Unity.
Augmented Reality Developer
An augmented reality developer creates interactive experiences that blend the real world with digital content using AR technology. While this course focuses on 2D game development, the foundational principles of game design and C# programming are transferable, to developing AR applications. Augmented reality developers often have an educational background that includes an advanced degree. Augmented reality developers may find the lessons about C# fundamentals and Unity particularly useful. Augmented reality developers can translate these skills to create interactive AR experiences.
AI Programmer
An AI programmer develops the artificial intelligence systems that control non-player characters and other dynamic elements within a game. This course may be useful in providing a foundation for understanding game mechanics and how AI can interact with them. AI programmers might find the C# fundamentals covered in this course useful. An AI programmer often has an advanced degree.
Tools Programmer
A tools programmer develops software and scripts that help game developers create content more efficiently. This course may be useful as it provides a context for understanding the challenges and workflows of game development. Tools programmers can build a solid foundation of C# fundamentals with Unity. For tools programmers, the experience of building an RPG is an amazing way to level-up their game development skills.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read one article that features Unity 2D RPG: Complete Combat System:

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Unity 2D RPG: Complete Combat System.
Explores common design patterns used in game development. It provides practical solutions to recurring problems, such as managing game state, handling input, and optimizing performance. Understanding these patterns can help you write cleaner, more maintainable, and more efficient code for your RPG project. This book is particularly useful for understanding the architecture of the combat system and other complex gameplay mechanics.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser