In this article, I will introduce two C# collections which can be quite handy for game development

an inventory sample, from the Genshin Impact game

Article’s repository:

I was playing Genshin Impact the other day and noticed that my items in the inventory are always sorted by their tier, star, or level. I thought that it should be easy to implement. But I always like to know my options.

These two collections that I will talk about, has been used more often by .Net developers than Unity programmers.


Almost all common data structures such as list, dictionary, or hash set has an equivalent sorted type.

SortedList, SortedDictionary, and SortedSet are all built-in C# collections. As you can guess, their job is to sort the…

In this article, I try to implement Factory and Observer Patterns by recreating Fix Wiring tasks

Check out the repository to this article.

“In order to fully understand this article you should be familiar with concepts like Dependency injection, Zenject, Unit Tests, SOLID and MVC”

The whole point of using design patterns, SOLID Principles, common architectural styles like MVC and etc. is to create a codebase that can be easily reused, maintained, and debugged. So it is pointless if we go for one of those without achieving the main goal.

In this tutorial, I will demonstrate how to implement the “Fix Wiring” task in Among Us using Factory and Observer patterns. Meanwhile, I will stick to…

Add unlimited ad platforms with minimum coding

Mobile advertisement, as a monetization solution is a hot trend these days. Many game studios have fully switched to ads and are making a considerable amount of money.

There are actually so many mobile ad services that you can use but it is important to use as many of them as possible. For example, according to Appbrain, Voodoo’s game “Helix Jump” with more than 500 million downloads is using 18 different ad services! Including Admob, UnityAds, Vungle, IronSource, AppLovin, Facebook Ads, Chartboost, and …

Helix Jump from Voodoo

So I decided to create a simple solution to use all these…

Calling API from Unity

In this part, we are going to use the API that we built, in a Unity game. Notice that you can use any version of Unity but it is recommended to use newer versions (above 2017) to avoid any unexpected errors or behaviors.

The requirements for this tutorial are these:

  • Unity 2017.x+ (I will be using Unity 2020.1.3f1)
  • RestClient Library, latest version (I will be using v2.6.1)
  • Newtonsoft, latest version (I will be using 12.0.3)

After creating a Unity project, download the…

Create a simple Remote Config for an RPG game

📎 source code to this tutorial at GitHub

In the previous part, we successfully installed and ran a Strapi application. Now it is time to build the API. But first, let’s take a close look at what a game server like this can provide us:

  • It can authenticate users.
  • We can implement game logic.
  • Users can see leaderboards.
  • We can change some of the game elements through the server.
  • and lots of other functionalities.

Controllers, Services, and Routes

For building an API in Strapi, you need…

Setup and getting started

Strapi.js official logo

“Note that this tutorial is done in Windows OS. For Linux, you may need to make some changes and modifications ;)”

It’s a fact that having a server-side application, can help developers to add lots of functionalities to their games. They can have a score leaderboard, some game configs they want to change without client updates, occasional events, handling online asset bundles, validating purchases, or even implementing game logic on the server! …

Omid Reza Izadi

a passionate game developer with 4+ years of experience in Unity3D

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store