Make a 2d Platformer in Unity 2020 using Design patterns
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
- Intermediate knowledge of c# language ex how abstract classes / interfaces works
- Basic knowledge of Unity 2020 ex Mecanim Animation System
- Basic knowledge of Unity 2020 ex How Raycasting / Physics 2D works
- Basic knowledge of Unity 2020 - know your way around the inspector
- Visual Studio IDE ex 2019 is recommended
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
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 :)
Who this course is for:
- Intermediate Unity Developers
- Intermediate C# developers
Hi I'm Peter and I am an Indie game dev / programmer.
Unfortunately what I have learned about programming from the Unity courses / tutorials wasn't scalable outside a simple mobile game. Every new piece of code / new feature I have added to the code broke my previously written logic.
After working as a Machine Learning dev for a while I decided in September 2019 to make a bigger game, sell it on steam and become game dev full time as a Sunny Valley Studio. To create a bigger game I really need to write a more maintainable and extendable codebase. Problem was that the only courses about OOP, SOLID, Design patterns etc were pure C# courses / book. The code and the solutions sometimes were hard to apply in Unity environment. Nevertheless I hit the books, started using what I have learned to create YouTube video series on how to implement interesting game mechanics. This practice helped me a lot at learning how to apply OOP in Unity projects.
Now my goal is to make my own games and teach what I know. I want you to understand WHAT we need to write in order to implement any game mechanics, HOW it works and most importantly WHY did we write it this way.
If you have every experienced the feeling of frustration that instead of having fun making your game you constantly have to debug the code maybe take a look at my courses.
I know that making games is much more than just programming but its difficult to focus on other aspects when you can't make the specific game mechanics that you have envisioned for your game.
I hope that when you understand how to write maintainable and reusable code you will have less bugs and most importantly you will be able to focus on making your dream game.
See you in the course!
*I can't post links in this section