Design Patterns in Unity

You might already notice that I wrote a lot about design patterns and examples of use for them in Unity. I am genuinely interested in writing clean code and designing project architecture. This brings me huge enjoyment and satisfaction, especially when the team is following project guidelines and everything looks so perfect. ?

Being a programmer means that you need to improve your skills constantly. So today let’s summarize things that I wrote on this blog so far in term of Design Patterns! ?

What is Design Pattern?

The first thing that you need to understand is what “design pattern” means. So design pattern stands for a programming concept which solves conceptual problems. It can be related to creating new objects, making the code more independent or modular, or even split your project into different layers of responsibility.

Continue reading “Design Patterns in Unity”

Events or Interfaces Listeners?

If you’re reading my posts and you’re checking my public repositories, you might notice that I’m implementing UI with Events that are passing input to the controllers. This is really convenient as you have a clear separation between logic and display layers.

Background

To recap what this UI implementation looks like, let me first explain where it comes from.

From the beginning, I always tried to make my code modular, but I couldn’t grasp how to do it in a really clean way. It was literally taking me years, multiple projects and few programming languages to get to digging into design patterns finally. With them, I started to understand more of what I was doing and how easy it was to start taking care of your code and separate different layers from each other! ?

Continue reading “Events or Interfaces Listeners?”

Simple MVC for Unity

There are a lot of different implementations of MVC design pattern available for Unity, but I’ve noticed one problem with most of them.
They require a lot of knowledge about programming in general, and some of them use some fancy techniques which unnecessarily complicates your code.

And who wants to have hard to read and maintain code? ?

MVC

MVC stands for ModelViewController and is one of most used design pattern in IT, but not necessarily in Game Dev. This design pattern is used to separate your code based on use.

Here we have three parts of this pattern:
Model – these are classes responsible for storing and handling data.
View – these are responsible for handling displaying data and receiving input from the user.
Controller – and these are responsible for the logic behind the app in general. They also handle respond to the input from view, and they are passing data into views.

Continue reading “Simple MVC for Unity”

Singleton in Unity – Love or hate?

Those who know me, know that I have a rough relationship with the Singleton Design Pattern. Mostly I don’t like using it very often or even at all. This approach has a lot of benefits, starting with cleaner code architecture, less coupling, and in general fewer problems. ?

When to use it?

So when you would implement singleton? When you would like to have only one instance of a specific object. Example of what could be a custom resource manager where you store or load files that you downloaded from the web or any other data storage.

Continue reading “Singleton in Unity – Love or hate?”