We may earn an affiliate commission when you visit our partners.
Course image
Rob Ager

Have you ever wanted to build a 2D Roguelike game using the Unity game engine like 'Enter The Gungeon' or 'The Binding of Isaac'?

Well with this course you can.

The course and underlying project have taken several thousand hours to develop, but all that knowledge will be transferred to you step by step, lecture by lecture. The course is massive with over 50 hours of detailed video tutorials spread over more than 160 lectures. This has to be one of the most complete and sophisticated Unity 2D development courses available.

Read more

Have you ever wanted to build a 2D Roguelike game using the Unity game engine like 'Enter The Gungeon' or 'The Binding of Isaac'?

Well with this course you can.

The course and underlying project have taken several thousand hours to develop, but all that knowledge will be transferred to you step by step, lecture by lecture. The course is massive with over 50 hours of detailed video tutorials spread over more than 160 lectures. This has to be one of the most complete and sophisticated Unity 2D development courses available.

We’ll take you through every line of code and every configuration step, from a blank Unity project to a fully functional and complete game. The game is built in a modular and expandable way, and uses best practice coding techniques like events to decouple the interdependencies in the code. The project has been built under GIT source control, so you can easily load the supplied completed course at a save point for every lecture.

The game is sophisticated, and goes far beyond what most Unity courses will ever attempt to teach you. The course covers :

  • Creating a node editor tool to build dungeon level layouts

  • Procedural random dungeon generation

  • Multiple game levels

  • 2D lighting using the Unity Universal Render Pipeline

  • A UI minimap

  • A dungeon overview map with player teleporting

  • Multiple player characters

  • A range of weapons and ammunition types

  • Multiple enemy characters

  • Particle system special effects

  • Shader graph material effects

  • AStar enemy pathfinding

  • Enemy weapon firing AI

  • Enemy ammo patterns

  • Lootable Chests

  • Flippable tables for cover

  • Sound effects

  • and Game music

This is just a selection of what you’ll learn, and all the assets you’ll need to complete the course and produce a fully functional and polished game are included. The concepts you’ll learn will help you create your own game that you can tailor to match your game development vision.

So fasten your seatbelts and prepare yourself for a Unity game development journey like no other, and at the end of this course I’m confident that your Unity game development skills will be levelled up, and that you’ll be able to create better and more sophisticated games on your own.

So why not join me in this course, and build your own Dungeon Gunner 2D Roguelike in Unity. I really hope you do, and I look forward to seeing you in the course.

Enroll now

What's inside

Learning objectives

  • Unity 2d game development to create a 2d dungeon shooter roguelike game like 'enter the gungeon' or 'the binding of isaac'.
  • Intermediate level course will show you how to build a sophisticated game by creating complex unity components using c# scripting.
  • How to build a fully featured, complete game – not just a tech demo.
  • 160+ in depth lectures with over 50 hours of detailed video supported by a full completed project with save points after every lecture.
  • How to build a dungeon room node editor tool to create node graphs of dungeon room layouts for dungeon levels.
  • Implement game cameras using cinemachine and pixel perfect components.
  • How to use layers and sorting layers in a 2d game, and create dungeon room templates using tilemap layers.
  • Create entire randomized game levels using a dungeon builder algorithm that combines dungeon level node graphs and dungeon room templates.
  • Create multiple player characters using prefabs, animator controllers and animations.
  • Implement player movement and weapon aiming, including dodge roll manoeuvres.
  • Doors which open for the player and lock the player into dungeon rooms while battling enemies.
  • Dungeon lighting that fades in as dungeon rooms are explored.
  • How to create object pools and use them in the game to improve game performance.
  • How to implement multiple weapon and ammo types which are configurable using scriptable objects.
  • How to implement sound effects in the game using audio sources, audio listeners, and audio mixers.
  • How to create a minimap in the game ui to show a zoomed out view of the player and surrounding dungeon rooms.
  • How to create special effects using particle systems and implement them for weapon shooting and ammo hit effects.
  • Create multiple enemy types and bosses that you will encounter across the multiple dungeon levels.
  • Use hidden tilemaps to store grid properties, such as preferred paths for enemies.
  • Understand how astar pathfinding works by using algorithms and create an astar pathfinding system for the game enemies.
  • Learn how to spawn enemies in dungeon rooms in a configurable and random way using materialize effects.
  • Implement weapons and ammo for enemies, including ammo patterns and enemy weapon firing ai.
  • Create health and damage systems for ammo damage and contact damage.
  • Learn how to implement play across multiple dungeon levels with boss battles, and high scores with accuracy multipliers.
  • Create items to decorate the dungeon rooms that can take damage and be destroyed.
  • Learn how to implement tables that can be flipped to provide cover for the player.
  • Implement dungeon chests that the player can loot, that can contain health, ammo and weapons.
  • Implement a dungeon overview map that the player can use to navigate to rooms they’ve already visited.
  • Learn how to implement music in the game which is configurable for each dungeon room to play both ambient music and battle music.
  • Add a pause menu to adjust the music and sound effect volume levels, and save the set levels using player preferences.
  • Create a main menu for the game with a character selector, high scores table, and game play instructions.
  • Show more
  • Show less

Syllabus

Welcome to the course and find out more about what you will learn
Welcome To The Course
In this section of the course we'll cover Unity and Visual Studio installation.
Read more

In this lecture we'll cover Unity installation, and ensure that the correct version of Unity is installed for the course.  We'll also cover how to install the Microsoft Visual Studio IDE for code editing.  We'll also download the completed Unity project for the course that you can use as your reference for every lecture.

In this lecture we'll cover how you can install a GIT client called Sourcetree. We'll show you how you can use Sourcetree to load the 'GIT' branches that correspond to every lecture.  Every GIT branch corresponds to the Unity project saved at the end of the lecture - so you can review the completed course lecture by lecture.  We'll also suggest how you can use the supplied completed project alongside your project that you create for the course, including using file comparison tools such as DiffMerge.

In this lecture we'll review the architecture and structure for the whole game.  This will give you a good overview of all the components in the game, and an understanding of how they all fit together.

The objective for this lecture is to create an empty Unity project from scratch to use in the course, make sure we have the required Unity packages installed, and also to import the CourseAssets into the project ready for use throughout the course.

The purpose of this lecture is to walk through and review the CourseAssets that you imported in the previous lecture. 

The purpose of this lecture is to explain at a high level how dungeons will be constructed in the game, and how we'll implement a room node editor to support this.

In this lecture we are going to start by creating a simple editor window.  The editor won’t do anything at this stage apart from display 2 ‘dummy’ nodes drawn by the editor.  Once we are comfortable with the basics, we’ll start extending the editor step by step until we get the functionality for a complete room node editor.

In this lecture we are going to create the scriptable object classes that will be used to store Room Node Graphs and Room Nodes. We’ll also create a scriptable object class to store the room node types in, and a class to store a list of these room node types.

In addition we’ll create a helper class that we’ll start adding validation checking methods to, to help us make sure that serialised data, like in scriptable objects, is populated correctly.  As we add more scriptable object assets to hold data, having some validation to alert us of missing data becomes more and more important.  If we don’t do this, and forget to populate required data then our code is likely to error.  This results in time wasted trying to track down why.

In this lecture we are going to continue building our room node editor, step by step.  We’ll also create a central repository for game resources so that different classes that need to access these resources can do so easily.

The purpose of this lecture is to allow the room nodes to be repositioned by dragging them in our new room node editor.

In this lecture we are going to add connecting lines between the room nodes in our room node editor.  We’ll start by adding the ability to drag connections between one node and another, we’ll create parent and child relationships between room nodes, and we’ll draw connection lines between room nodes that have already been connected.

In this lecture we are going to automatically create the entrance room node when the first node is created on the room node graph.  Nodes that have been connected will be ‘locked’ so they can’t be changed. We are also going to create another GuiStyle to use when a room node is selected.

In this lecture we are going to add validation when we connect together room nodes.  This validation will prevent invalid connections – like connecting the same child node to a parent more than once.  We’ll also add validation that supports our dungeon room layout design constraint of only having one parent for every child.

The purpose of this lecture is to allow all room nodes to be selected on the graph using the right click context menu.

In this lecture we are going to add the functionality to allow the connections between selected room nodes to be deleted, and to allow selected room nodes themselves to be deleted.  This will allow us to better maintain and amend the dungeon room node graphs that we create.

The purpose of this lecture is to add functionality to allow the canvas to be repositioned by dragging it.  This is needed if we have a large dungeon room node graph that won’t easily fit on one screen.  We’ll also add a grid background to the canvas to give some visual context when we drag the graph.

In this lecture we are going to put the room node graph editor to good use.  The game will have 6 levels, so we are going to create multiple room node graphs for each level. In the future the dungeon algorithm will randomly select a room node graph for the level, and then use it to layout the dungeon rooms.

In this lecture we are going to talk about some components and concepts that we’ll come across during setting up the main game scene, namely, the cinemachine component, the pixel perfect component, and orthographic size.

So up until now we have been working on our dungeon room node graph editor, which is an essential part of our dungeon building, and we have also created room node graphs for our 6 game levels.

In this lecture we are going to move onto setting up the empty main game scene and change some of the project settings in preparation for the next steps in developing the game.

The purpose of this lecture in to look at layers and sorting layers and using them in 2D games.

In this lecture we are going to create a base  dungeon room template, using the tilemap layers that we talked about in the previous lecture.  We’ll then use this template to make it easier to create our dungeon rooms.

The purpose of this lecture is look in more detail at tilemaps and the tools Unity provides to work with tilemaps. We’ll look at how to create tilemap palettes and tiles, and how tiles are painted onto tilemaps. We’ll take a look at the co-ordinate brush and the random brush that’s supplied as part of the tilemap extras package we installed. We’ll then explore the tiles and palettes that are supplied with the course assets.

In this lecture we are going to create our first dungeon room using the prefab room template that we created in a previous lecture.

As we create the room I’m going to describe how you should use the different tilemap layers that we have created, and also point out some of the constraints that you should follow when creating dungeon rooms to ensure they will work with the dungeon building algorithm that we are going to create.

In this lecture we are going to create some corridors to connect together dungeon rooms, using the same principles we used to create dungeon rooms.

In this lecture we are going to create a scriptable object class and corresponding scriptable object assets to store information about the dungeon rooms and corridors that we have created.

In this lecture we are going to import some new assets. There are 68 dungeon rooms and corridors supplied in the resources for the lecture that we are going to use in the course to build our game. We’ll import these dungeon room assets in this lecture and review them.

In this lecture we are going to create the RoomTemplateSO scriptable object assets for the rooms that we previously created and review the dungeon room assets that we imported in the previous lecture.

In this lecture we are going to tidy-up a few of the dungeon room tilemaps and assets that we imported in the previous lecture.

In this lecture we are going to demonstrate the working dungeon builder

In this lecture we are going to discuss the main concepts for the dungeon builder and the algorithm that will be used.

In this lecture we are going to create the DungeonLevelSO scriptable object class to enable us to define what room node graphs and what room templates should be available when generating a particular dungeon level.

The purpose of this lecture is to create a Singleton Abstract class that can be used to easily create singleton instances that we can use for our game managers.

In this lecture we are going to create our game manager and we’ll initially set up the game manager to call the dungeon builder that will build the dungeon.

In this lecture we are going to create the Room class, and create an empty InstantiatedRoom class to populate in a later lecture.

In this lecture we are going to explore how you can use Unity shader graph to create shaders. 

In this lecture we are going to create the dungeon builder class. The dungeon builder will select a random room node graph, and process each of the room nodes. For each room node it will select a random room template, and then it will create a room object which it will try and place without overlapping any other rooms to build our complete dungeon level.

In this lecture we’re going to pull together all of the hard work that we’ve done in the previous lectures. We are going to take the dungeon room objects that we laid out in the previous lecture and for each one we are going to instantiate the corresponding dungeon room tilemap prefab. By doing this we will create the complete dungeon level in our scene of connected dungeon rooms.

In this lecture we are going to add some new methods to the InstantiatedRoom class to block off doorways that are not connected.

In this lecture we'll create the initial player classes.

In this lecture we are going to create the base player prefab. The player prefab will be structured to allow the player to use a weapon and to support the various animations that we will implement for the player. As we develop the player capabilities in this course we’ll add more components to the player prefab to provide the required functionality.

In this lecture we are going to create a prefab variant for a new player character, which we are going to call The Thief. We’ll import the sprites that we need for the thief character and we’ll set up the animator controller for the character from scratch, ready to create the character animations.

In this lecture we’re going to create the animations for the thief player character, using the Sprite sheets that we imported in a previous lecture and the empty animation clips that we created and added to the animator controller. By the end of this lecture will have all the animations set up for the thief player character.

In the previous lectures we set-up the animator controller and animations from scratch for The Thief character. We have another two playable characters for this game which we will set-up in the next two lectures. Rather than set-up these characters from scratch we are going to use the animator controllers and animations supplied with the course assets, so the set-up process is going to be very quick. In this lecture we are going to focus on setting up The General character prefab variant.

In the previous lecture we set-up The General character prefab variant. In this lecture we are going to follow exactly the same process and set-up The Scientist character prefab variant using the animator controller and animation clips supplied with the course assets.

In this lecture we are going to make sure that the weapon isn’t active during The Thief roll animations.

In this lecture we are going to create the player details scriptable object assets for the Thief, the General, and the Scientist, and we are also going to create the current player scriptable object asset to reference the active player character.

We’ll also create a script to populate the cinemachine target group with the player position so that the camera follows the player. We’ll instantiate the current player prefab in the dungeon entrance room, and then check the cinemachine camera now follows the player.

In this lecture we explain the Publisher Subscriber Design Pattern and how we are going to use it in the game.

The purpose of this lecture is to enable the player to aim a weapon while idle in the direction of the mouse cursor.

The purpose of this lecture is to implement a custom screen cursor to replace the default mouse cursor.

The purpose of this lecture is to add up, down, left and right movement for the player using the keyboard.

In this lecture we are going to add the player dodge roll move and animation when the right mouse button is held down while one of the movement keys is pressed.

In this lecture we are going to improve the way that Cinemachine tracks our gameplay. At the moment Cinemachine only tracks the player – when we move the player on the screen, the cinemachine camera will follow. But this isn’t ideal for a dungeon shooter game – we want to be able to look around the dungeon surrounding the player to see if any enemies are approaching. So we are going to do this by extending the cinemachine target group that we created in a previous lecture to include the screen cursor as well as the player.

The dungeon doors will be added to the room doorways, and they will start off closed and will open when the player approaches them, allowing them to enter a room.

In future sections of the course, when we add enemies to the game, the doors will lock the player in a room until all the enemies in that room are defeated. Doors to Boss Rooms will stay locked until all the other rooms in the level have been cleared of enemies.

In this lecture we are going to create the door prefabs that can be instantiated in the dungeon rooms. The Door prefabs will have animations for the doors opening and closing. We’ll have 2 door prefabs – one for north / south doorways, and one for east / west doorways.

In this lecture we are going to use the door prefabs that we created in the previous lecture. We are going to automatically instantiate the doors in the dungeon rooms when we generate the dungeon.

In this lecture we’ll create a new door class that will control the opening, locking and unlocking of the dungeon doors.

In this lecture we are going to implement functionality to fade in the dungeon doors and rooms. Apart from the entrance room where the player starts, all other dungeon rooms and their dungeon doors will start off by not being visible to the player. Instead the doors and rooms will fade in to become visible as the player approaches them. By doing this we give the sense that rooms are initially unexplored, and only allow the player to see dungeon rooms once they have been visited.

In this lecture we are going to start setting up the 2D collision matrix in the project settings, and we are also going to update the player animator to vary the player animation speed based on the player movement speed.

In this lecture we are going to look at the concepts behind Object Pooling, and explain why it's a useful technique to help improve performance for some games.

In this lecture we are going to take the concepts of Object pooling and talk about how we are going to implement an object pool manager in the game using queues for the object pools, and a dictionary to hold all the object pool queues that we define so that they can be accessed easily.

In this lecture we are going to implement the Pool Manager functionality in our game, so that we can use it to manage any prefabs that we want to create an object pool for in the rest of the course.

In this lecture we are going to demo the Pool Manager by creating some test code that places enemy prefabs that are created in the object pool in the dungeon.

In this lecture we are going to talk about Weapon and Ammo Classes we'll be using to support the player shooting functionality, and how they fit together.

In this lecture we are going to review the emission shader that has been provided in the course assets and look at how it is being used to create materials used for the ammo that enable the HDR intensity to be increased to cause the ammo to glow.

In this lecture we are going to create weapon details for the Pistol which is the starter weapon for the General.

In this lecture we are going to create ammo details for the Pistol which is the starter weapon for the General.

In this lecture we are going to update some incorrect values in the Dungeon Room scriptable object assets.

In this lecture we are going to set the pistol as the starting weapon for the General and the Thief characters.

In this lecture we are going to implement the core functionality to allow the player to actually fire the Pistol starter weapon. 

In this lecture we are going to implement the functionality to allow the player to reload weapons.

In this lecture we are going to create a new revolver weapon and ammo for the player.

So for some weapons – like the plasma blaster and laser blaster we are going to have the weapons ‘precharge’ before firing – this means there will be a small delay between the fire button being held down and the weapon firing. 

So in this lecture we are going to implement this precharge functionality.

The purpose of this lecture is to create the Plasma Blaster Weapon And Ammo for the Scientist to use as their starter weapon.  We will also implement an ammo trail to give the plasma ammo a laser like effect.

The purpose of this lecture is to create a weapon status UI that displays the current weapon sprite and name, the total remaining ammo, the ammo remaining in the ammo clip, and the weapon reload status including a weapon reload progress bar.

The purpose of this lecture is to add the functionality to allow the player to switch between the weapons that are in their weapons list.  They can do this by either using the mouse scroll wheel, or by pressing a number key on the keyboard.  The player will also be able to move the selected weapon to the front of the weapons list.

The purpose of this lecture is to create the Sniper Rifle and Sniper Rifle ammo. 

The purpose of this lecture is to create the MP7 sub machine gun weapon and amoo.

The purpose of this lecture is to create the Laser Blaster weapon and ammo.

The purpose of this lecture is to create the SMG weapon and ammo.

The purpose of this lecture is to review the Shader Graph Flame Shader provided in the course assets to understand how it works and is created. This will be used in the next lecture to create a flame trail for the rocket propelled grenade ammo.

The purpose of this lecture is to create the rocket launcher and the rocket launcher ammo.  For the rocket ammo we'll use the flame shader material to give the rocket a flame trail.

The purpose of this lecture is to add the functionality to be able to spawn multiple ammo simultaneously - to use with weapons such as a shotgun.

The purpose of this lecture is to create the shotgun and the shotgun ammo which will use the multiple shot functionality created in the previous lecture.

The purpose of this lecture is to discuss how Unity handles sounds and audio.  We'll also look at how we'll implement these concepts in our game to play sound effects.

The purpose of this lecture is to create the core classes that we need to be able to create and play sound effects in our game.

The purpose of this lecture is to create the SoundEffect prefab and add it to our object pool.  These objects will be enabled through the SoundEffectManager to play our sound effects.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Explores procedural random dungeon generation, which is a core mechanic in roguelike games and can be adapted for various game genres
Covers the creation of a node editor tool, which allows for the design of complex dungeon level layouts in a visual and intuitive manner
Includes over 50 detailed video tutorials, providing learners with extensive guidance and support throughout the game development process
Uses Cinemachine and Pixel Perfect components, which are valuable tools for achieving a polished and visually appealing 2D game aesthetic
Requires prior knowledge of Unity and C# scripting, which may pose a barrier for absolute beginners in game development
Features the use of an AStar pathfinding system, which is a common algorithm for implementing enemy movement and AI in games

Save this course

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

Reviews summary

Comprehensive unity 2d roguelike development

According to learners, this course offers massive and comprehensive content, diving deep into building a complex 2D roguelike game from scratch in Unity. Students appreciate the project-based approach and the detailed coverage of advanced topics like Shader Graph, A* pathfinding, object pooling, and using scriptable objects and events for good game architecture. The instructor is generally praised for clarity. However, some students note that the course is definitely not for absolute beginners and assumes a degree of prior C# and Unity knowledge, with pacing sometimes feeling fast and debugging being tricky if steps are missed. The provided project files and assets are considered very helpful for learning and reference.
Best suited for learners with prior experience.
"This course is not for beginners. The instructor moves too fast..."
"It assumes a certain level of prior C# and Unity knowledge. As a beginner, I struggled..."
"Definitely for intermediate to advanced users."
"More explanation for beginners would be helpful."
"Sometimes the pacing felt a bit fast, especially in the later sections..."
Resources provided are valuable aids.
"The provided assets are high quality."
"Having the completed project for reference is a lifesaver."
"The provided assets and project files are very helpful."
Instructor explains concepts clearly.
"The instructor is knowledgeable and explains concepts clearly."
"Instructor is clear and easy to follow."
"The instructor provides a massive amount of content and breaks it down well."
Deep dives into specific advanced techniques.
"Covers advanced topics like Shader Graph and A* pathfinding in great detail."
"I learned so much about game architecture, object pooling, and advanced C# scripting..."
"The use of scriptable objects, events, and object pooling are great practices to learn."
"The node editor and pathfinding sections were amazing."
Practical learning by building a complete game.
"Building the rogue-like from scratch was challenging but extremely rewarding."
"The project-based approach of building a full game is excellent."
"Covers everything you need to build a complex 2D game."
Extensive material covering many game aspects.
"This course is incredibly comprehensive and covers advanced topics... in great detail."
"Fantastic course! The instructor provides a massive amount of content..."
"Mind-blowing depth! Covered so many advanced topics."
"Solid course, very comprehensive. The sheer amount of content is impressive."
"A very good course overall. It dives deep into Unity 2D development."
Troubleshooting issues may require effort.
"Debugging issues could be tricky if you missed a step."
"Debugging without strong prior experience is challenging."

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 Dungeon Gunner Roguelike Development Course with these activities:
Review C# Scripting Fundamentals
Solidify your understanding of C# scripting, which is essential for creating complex Unity components and game logic.
Browse courses on C# Scripting
Show steps
  • Review basic syntax and data types.
  • Practice writing simple scripts.
  • Experiment with Unity's API.
Review 'Game Programming Patterns'
Learn about game programming patterns to improve code structure and maintainability in your Unity project.
Show steps
  • Read the book's introduction.
  • Study relevant design patterns.
  • Apply patterns to your project.
Prototype a Simple 2D Shooter Mechanic
Practice implementing core shooter mechanics like player movement, aiming, and shooting to reinforce your understanding of Unity's input system and physics engine.
Show steps
  • Set up a basic Unity project.
  • Implement player movement and aiming.
  • Create a simple shooting mechanic.
  • Add basic enemy AI.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Follow Unity Tutorials on Tilemaps
Deepen your understanding of Unity's tilemap system, which is crucial for creating the dungeon environments in this course.
Show steps
  • Find relevant Unity tilemap tutorials.
  • Follow the tutorials step-by-step.
  • Experiment with different tilemap features.
Document Your Dungeon Generation Process
Create a blog post or video explaining the dungeon generation algorithm used in the course to solidify your understanding and share your knowledge with others.
Show steps
  • Review the dungeon generation code.
  • Outline the key steps of the algorithm.
  • Create visuals to illustrate the process.
  • Write a clear and concise explanation.
Contribute to a Unity Open Source Project
Contribute to an open-source Unity project to gain experience working with a larger codebase and collaborating with other developers.
Show steps
  • Find a suitable open-source project.
  • Understand the project's contribution guidelines.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
Review 'Unity 2021 Cookbook'
Use this cookbook as a reference for solving specific Unity development problems encountered during the course.
Show steps
  • Browse the table of contents.
  • Identify relevant recipes.
  • Implement the solutions in your project.

Career center

Learners who complete Unity 2D Dungeon Gunner Roguelike Development Course will develop knowledge and skills that may be useful to these careers:
Unity Developer
A Unity Developer specializes in using the Unity game engine to create interactive experiences, and this course helps build a foundation for aspiring Unity developers. The course covers a wide range of Unity features, including Universal Render Pipeline for 2D lighting, Cinemachine for camera implementation, and tilemaps for level design. A Unity Developer might also find the course's focus on C# scripting, object pooling, and UI design to be very valuable. The course’s comprehensive project, which builds a complex 2D Roguelike game, offers many opportunities for users to familiarize themselves with many capabilities of the game engine, providing a strong practical foundation for any Unity developer.
Indie Game Developer
An Indie Game Developer often works on all aspects of game creation independently or in a small team. This course provides a comprehensive introduction into many aspects of video game development with an emphasis on 2D games, making it extremely well-suited for aspiring indie game developers. The course's focus on a complete project, from initial setup to final polished game, provides experience with level design, player mechanics, enemy AI, UI implementation, and sound design, all essential for an Indie Game Developer. The course's focus on practical skills, including procedural dungeon generation and enemy AI implementation, is particularly useful for those developing complex 2D games that will stand out in the marketplace.
Game Developer
A Game Developer is responsible for designing, developing, and implementing video games, and this course may be useful to those interested in focusing on 2D game development. The course's emphasis on creating a fully functional 2D Roguelike game using Unity, complete with procedural dungeon generation, multiple player characters, weapons, enemies, and special effects, directly aligns with the skills a Game Developer needs. The course provides hands-on experience with C# scripting, creating complex Unity components and using best practice coding techniques. The approach this course takes, by providing step-by-step instructions along with a fully completed project, ensures that aspiring game developers can gain critical experience for game creation.
Gameplay Programmer
A Gameplay Programmer focuses on implementing the mechanics and systems that bring a game to life, and this course provides an excellent introduction to the programming required to build a game. The course's exploration of C# scripting within the Unity engine, along with the extensive work with events, object pooling, AI enemy pathfinding, weapon firing, health and damage systems provides a strong starting point. A Gameplay Programmer would find this course useful because of its practical, project-based approach. The course’s emphasis on modular, expandable code is aligned with software engineering best practices.
Game Designer
A Game Designer is responsible for creating the overall vision, rules, and gameplay mechanics for a video game. This course allows a game designer to understand how systems work within a game. The course's module on procedural dungeon level generation is particularly relevant to a game designer seeking to create dynamic and engaging gameplay. The hands-on experience with building a complete game from start to finish allows a game designer to understand the considerations that go into level design, the player experience, and the pacing of a game. These insights are very helpful for those who want to excel as game designers.
Mobile Game Developer
A Mobile Game Developer specializes in creating games for mobile platforms. This course may be helpful to those interested in working in this field. The course emphasizes 2D game development in Unity. Although it is not specifically targeted at mobile, the skills in 2D game programming, using Unity, and creating game mechanics are highly transferable to mobile game development. Many mobile games are 2D based. This course’s approach of building a complete game from start to finish is aligned with the skills a mobile game developer needs.
Level Designer
Level designers are responsible for creating the environments, layouts, and overall structure of a game's levels, and this course introduces many of these core concepts. The course's material on designing and building a dungeon level using a node editor and procedural generation techniques provides hands-on training. Additionally, the course covers tilemaps and room templates, essential tools for a Level Designer working with 2D games. This course, with its focus on creating a complete game level with interconnected rooms and corridors, may be useful to an aspiring level designer.
Junior Programmer
A Junior Programmer is typically an entry-level role in software development, and may be interested in video game development. This course, with its emphasis on building a functional game from a blank Unity project as well as using C# scripting, may be useful. The course's approach of going through each line of code and configuration step by step helps build a strong foundation in coding and game logic. The use of GIT source control and the ability to load the completed project at various save points helps reinforce software development best practices that will be useful for a junior programmer.
Software Developer
Software Developers may apply their expertise to many different types of projects, and those interested in game development may consider this course. The course, while focused on game development, covers C# programming, a language widely used by Software Developers. Additionally, the course’s emphasis on modular and expandable code using best practices such as events and object pooling, are aligned with standard software development practices. A Software Developer may be able to apply the knowledge and skills gained here to a variety of software development projects.
Software Engineer
Software Engineers design, develop, and maintain software systems and applications. This course, while focused on game development, may useful for those interested in software engineering. The course uses C# to build a complex application, using good programming practices such source control using GIT. The course uses an event-driven architecture, a concept widely used in software development. These approaches are aligned with current software engineering practices, and may be useful to software engineers looking for ways to expand their knowledge in other domains.
Technical Artist
A Technical Artist bridges the gap between art and programming, focusing on the technical aspects of game art. This course touches upon concepts that a Technical Artist might find useful. While the course focuses on game development, the sections on 2D lighting and shader graph material effects provide a glimpse into the technical side of game art. The use of particle systems, and the creation of material effects may be useful for a future technical artist. While specific art creation is not covered, this course will illuminate the technical processes that a technical artist will need to be intimately familiar with.
Simulation Developer
A Simulation Developer creates software to simulate real world or fictional systems. While this course is focused on game development, the concepts of simulating enemy AI and player mechanics may be relevant to a simulation developer. The course utilizes sophisticated pathfinding and AI to generate a challenging game environment, and this type of simulation can be useful for those interested in this field. The course’s focus on using the Universal Render Pipeline could also be useful in the creation of visual simulations.
Tools Programmer
A Tools Programmer develops software tools that are used by other game developers. This course may be helpful to a beginning tools programmer. The course includes the creation of a node editor tool for building dungeon level layouts. This specific piece of software may be an excellent model for tools programmers, and the course’s step-by-step approach to its creation can be instructive to these developers. The course also demonstrates source control using GIT, a key component of tools programming.
UI Programmer
A UI Programmer focuses on the user interface aspects of a game, and this course may be helpful to a UI programmer who is new to game development. The course covers implementation of a UI minimap, as well as menus for the game. It also includes ways to interact with a user interface, such as setting volume controls. Although this is a small part of the course, the lessons here may be helpful to those who seek to work on UI in particular.
Project Manager
A Project Manager is responsible for planning, organizing, and managing resources to bring a project to completion. While this course provides no direct training in project management, completing this course may be helpful to understanding video game development. A project manager working with game developers would benefit from a deeper understanding of the work involved in creating such a product. Understanding how the various components of a game fit together and the time required to build them will help a project manager plan a project timeline.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read one article that features Unity 2D Dungeon Gunner Roguelike Development Course:

Reading list

We've selected two 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 Dungeon Gunner Roguelike Development Course.
This cookbook provides practical solutions to common Unity development challenges. It covers a wide range of topics, including scripting, animation, UI, and physics. useful reference tool for quickly finding solutions to specific problems you encounter while working on your game. It can also help you discover new techniques and approaches to game development.
Provides a catalog of useful design patterns specifically tailored for game development. It covers patterns applicable to areas like game loops, object management, and AI. While not Unity-specific, the concepts are broadly applicable and can help you write cleaner, more maintainable code. This book is valuable as additional reading to improve your overall software engineering skills.

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