Disclosure: when you buy through links on our site, we may earn an affiliate commission.

Unity 2019 Learn to write better code making a City Builder

Learn object oriented programming, design patterns and Unit testing while making a City Builder game in Unity using C#.
(207 reviews)
2,875 students
Created by


CourseMarks Score®







Platform: Udemy
Video: 17h 43m
Language: English
Next start: On Demand

Table of contents


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.

You will learn

✓ Unity
✓ c# programming
✓ Game design
✓ SOLID principles


• Using Unity on an intermediate level
• c# intermediate skills

This course is for

• Intermediate unity developer wanting to better there programming skills
• Beginner unity developer willing to work hard
Gameplay programmer
Hi I’m Peter and I am an Indie game dev / programmer.
Around 2015 I have started seriously learning programming in Java / JavaScript. in 2017 I have made my first game in Phaser.js (* you can find it on Sunny Valley Studio itch io)
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
Browse all courses by on Coursemarks.
Platform: Udemy
Video: 17h 43m
Language: English
Next start: On Demand

Students are also interested in