Course Information
Course Overview
Learn how to architect your codebase for a 2d platformer using design patterns.
Making games is fun but there is nothing more frustrating than adding new code to create a new game mechanic just to have the old code break. At this point it stops being fun and bug search begin - which honestly is the least fun thing to do when you could instead design a new level for your game. That is why it is so important to learn how to create maintainable and extensible code base for your game. If you search for a solution you will find Design patterns and SOLID principles. If you have every tried to learn design patterns you surely know that it is not intuitive when to use it. Each presents a solution but requires time and additional code to work. Implementing them just for the sake of it is just a waste of time - so when should we use them? The answer is - when adding new features or extending the old ones seems like a lot of work and effort.
In this course you will learn how to use state pattern as a base to create your character controller and how to refactor your code to other design patterns when you can see that adding new feature starts to be "painful" and unintuitive. At the end you will know the way of thinking behind the refactoring process and behind the decision when to use design patterns.
You will learn how to write decoupled classes - meaning that class A doesn't rely on Class B but if they both exist they can communicate witch each other to create our desired game mechanics.
This is an Intermediate course about creating a maintainable and extensible codebase and in effect a full 2d platformer game. You should know your way around Unity and feel comfortable coding in C# using Visual Studio IDE.
You will learn how to:
Create a character that can move and jump and extend it's character controller with new features like: climbing behaviour, attack logic etc.
How to reuse players character controller for enemies
How to create 3 types of enemies as well as a end level boss
How to use factor method pattern to make your code more maintainable
How to use Strategy pattern to implement simple AI system
Specific platformer features that we will implement:
picking up resources
respawn system
adding platforms with one-way collider
creating parallax effect for our level
melee and throwable weapons
and much more!
If for any reason you don't enjoy the course you have 30 days from the purchased date to get your money back - no questions asked.
I hope to see you in the course :)
-Peter
Course Content
- 27 section(s)
- 254 lecture(s)
- Section 1 Introduction
- Section 2 Working with Tilemaps
- Section 3 Basic Character movement
- Section 4 Making character movement system extendable
- Section 5 Adding jumping mechanic
- Section 6 Cinemachine camera setup
- Section 7 Creating Level 1
- Section 8 Climbing Mechanic
- Section 9 Adding player UI
- Section 10 Respawn system
- Section 11 Adding Music and Audio Feedback
- Section 12 Weapons system
- Section 13 Attack State
- Section 14 Hit & Die State
- Section 15 Adding a patrolling enemy
- Section 16 Adding Feedback To Fighting system
- Section 17 Adding range weapons
- Section 18 Adding pickable points
- Section 19 Adding a shooting enemy
- Section 20 Adding main menu
- Section 21 Level management system
- Section 22 Save system
- Section 23 In-game menu
- Section 24 Adding Level 2
- Section 25 Adding flying enemy
- Section 26 Boss fight
- Section 27 Extra - New Input System
What You’ll Learn
- How to create a 2D platformer in Unity 2020, How to use State Pattern, Strategy pattern and Factory method pattern in a full game project, How to write maintainable C# code, How to save game state, How to create multiple level
Skills covered in this course
Reviews
-
ffuzzy_pants mr
It's the best lecture The instructor explains in detail how to use different design patterns that feel difficult. Both the resolution and sound of the lecture video were great. I hope there will be more courses in the future!
-
JJavier Lozano
The best course I have found on Udemy. It's a must to learn how to program a game.
-
JJose
What a fantastic , comprehensive course. The code is clean , readable and makes perfect sense. The explanations are in depth and easy to follow. The value of this course as an introduction to the use of design patterns and moving beyond the basic game tutorials is incalculable 100/100
-
DDave Klein
Awesome course - really helped me learn the State Pattern - thank you!