Course Information
Course Overview
Learn object oriented programming, design patterns and Unit testing while making a City Builder game in Unity using C#.
Have you ever created a game prototype that was really cool but as you have started building on it every new feature seemed to introduce bugs in the old code? Or maybe this 1 feature that you had in mind and thought as being 2h of work to implement ended up taking 2 weeks?
If this sounds familiar I encourage you to take a look at this course. In this course we will learn best practices for programming games. We will focus on the general game structure, code structure and how to use design patterns in our game to solve different issues that will arise. By using Unit Tests we will create some degree of certainty that our code will run as it should even after adding new features and refactoring the previously written code.
Those are mostly overlooked topics in most courses on how to create games. There is a reason for it. They show you how to create a prototype. Your game prototype must be created fast, can be crude and can have bugs. It's role is to get you feedback if your game idea is promising.
My goal in this course is to give you an idea about broad range of topics mainly connected with programming. On an example of a city builder game we will look at how to use different design patterns, create unit tests and refactor the previously written code to account for the new features that we want to introduce into our game.
After receiving a couple of reviews I can see that sometimes I can go too fast through some aspects and I don't explain some more basic concepts of the code. Please take this into consideration that some intermediate knowledge of C# and a good understanding on how Unity editor works is crucial for you to get the most out of this course.
I hope that I can help you improve your coding skills where it comes to game development. At the same time I am sure that not everyone will be satisfied with my delivery and the quick pace at some points. Please know that you have 30 day to apply for a refund. I don't want anyone to feel dissatisfied with their purchase.
*This course is made using Unity 2019. You should be able to follow along using latest LTS (long term support) version of Unity 2019.
Course Content
- 21 section(s)
- 108 lecture(s)
- Section 1 Introduction
- Section 2 Programming theory
- Section 3 Designing our city builder
- Section 4 Art prototype
- Section 5 Designing objects and responsibilities
- Section 6 City builder - creating basic code structure
- Section 7 Refactoring input manager - Delegates
- Section 8 Switching states - Refactoring Input Manager - Interfaces
- Section 9 Switching states - State Pattern
- Section 10 Refactoring placement state - Decoupling
- Section 11 Creating Data Layer - Scriptable Objects
- Section 12 Connecting Data Layer to our application - Decoupling
- Section 13 Refactoring states - Creating confirmation Button
- Section 14 Road placement system - Factory Pattern
- Section 15 Zone placement mechanic
- Section 16 Simple Economy
- Section 17 Finishing Selection State
- Section 18 Bug fixes
- Section 19 Extra: Audio using Singleton Pattern and AudioMixer
- Section 20 Extra 2: Placing trees on our map using procedural generation
- Section 21 Course summary
What You’ll Learn
- Unity, c# programming, Game design, SOLID principles
Skills covered in this course
Reviews
-
AAlexandru Hinta
This course is basically helping you set up a platform that can be easily expanded to develop your own city builder from. It does take a lot of effort (for me as a beginner getting my head around the testing part was not straightforward), but it is very rewarding once you get there. The course is also beginning to become a bit old, so setting up the project may take a while - but I managed well on Unity 2022. In sum, I would recommend the course to anyone who is looking to develop their own city builder or learn more about good coding practice.
-
JJesse Daniel Paulsen
This is a good, solid dense course. It is very code heavy. If you want a course on the Unity application, there is some here that is valuable, but the real meat here is learning about C# and starting to learn about architecture. If you are still learning general coding principles and understand the basics this is a fantastic investment. You will learn about return types, parameters, SOLID principles, unit testing, delegates, and a few design patterns (State and Factory to be precise), and quote a lot more. There is a lot of exposure of individual methods to learn as well within Unity and C# in general. The teacher moves at a deliberate, followable pace for a newcomer and there is no fast-forward code writing or jump shifts where codehas changed and you have to fill in the gaps. If you are seeking to move past beginner level C# and into designing the flow of your code this is a great course.
-
BBurak Erkal
It was very clear to understand some key aspects of object oriented coding like abstracts, interfaces, using delegates and many more.
-
AAirnamics
The course starts well and easy to follow along but towards the end a lot of work is done outside tutorial and even using resources attached to videos still leaves discrepancies between tutor and pupil project states. Also the play tests in Final Version Project do not work because UI reference to game object is not set. Other than that it was a helpful course.