essay

The Joy and Curse of Game Development

Have you ever tried developing your own game? There are many skills you must acquire: art, music, programming, writing. Creating a game can be frustrating and time consuming, but maybe you should try anyway.


Sandro Maglione

Sandro Maglione

Games

I came back tinkering with Unity lately. I have been working with Unity a long while ago, in the years between 2015 and 2017, before moving more into mobile and web development.

At the time, I was not really aware of how Unity works. It was still early in my development career. The goal was all about making things work, one way or another. I followed tutorials over tutorials, and as long as I was able to achieve the mechanics I wanted, every else was fine. No code structure, no clean code, no performance.

At the end, I even released some games on the Google Play Store.

Years later, as I moved into the deep world of web development, my mental model for what "development" mean has been required to change. Radically.

What Game Development is all about

There are many forms of Game Development out there. My interest in the subject made me explore and read about the lifecycle of a game in many different forms.

At its core, Game Development can be the most time consuming, frustrating, and less profitable form of programming. At the same time, Game Development can also be the most exciting, rewarding, and creative form of programming

Game Development at scale

You first hear about a game years and years before its release. During this period, a team of hundreds of people is working full-time to complete one single game. We are not talking only about programmers. Think about screenwriters, designers, artists, music makers.

Then, after years, the game is released (granted that the budget is enough, the market responds positively, the development is not delayed indefinitely, etc.). The launch day marks the first day of life of the game. Everyone is excited about it (hopefully) and the team is amazingly proud of their achievement in finishing the game.

The game is kept alive with a huge investments in marketing. Nonetheless, after some time, its destiny is to cease to be popular and eventually fade away in history. For the ones that made it, their legacy will leave long after their departure. For most, their memory will fade away, never to be discovered again.

From here another cycle begins, years and years for the next release.

Indie Game Development

Indie Game Development has a similar story (almost). One day you decide to make the game you always dreamed of. You have everything planned (on your mind of course, not on paper). You read about game development and watch some tutorials. It looks easy. "This is going to be fast and fun" is your first thought.

You are hooked. You start working. The first weeks are rapture. You work endless hours with great joy and excitement. Along the path you start discovering things. What about the game art? Well, I guess I need to learn about drawing a little. What about game mechanics? Well, learn about physics. What about music? Learn music composition. What about animations? Learn it.

What initially seemed a simple task quickly becomes a huge complex system. What was planned as weeks becomes months. The curve of your level of excitement starts to dwindle as more and more tasks and problems pile up.

Most Indie games stop here, never to be released. The one that make it need to face another monster, marketing. No one knows about your game, and no one cares. You contact every person that you know, asking for feedback, hoping that they are going to spend some of their precious time on your creation.

There are probably bugs in your game, but after all this time the last thing you want to do is keep working on the same project. All the hours you put in most often result in little (or 0) profit (in money).

The joy of Game Development

If you ever had a chance to try working with Unity, you know how mind-blowing it is. Unity (like other game engines) is a real world simulator. Just look at some of the most recent and realistic games. You can create entire worlds down to the details of physics, gravity, water, etc.

As such, developing games with Unity has no limits. I like to compare it with other form of creativity:

  • Writing: You can create entire worlds just by using words. The worlds you create are a product of your imagination blended with your interpretation of the words. As such, fiction worlds in writing looks different based on the reader
  • Drawing: Drawing goes a step further. You create a piece of your imagination on paper. As such, you take care of all the details in the scene. Another viewer can see exactly the world in your imagination. Nonetheless, the world is static; it is a screenshot of a single moment
  • Animation: Animation is drawing in time. You create a sequence of images that portray an entire scene. Animation conveys the full extent of your imagination, showing how things work and evolve in your fictional world
  • Games: The last step is gaming. With a game, you can portray your entire world down to the details, and let the player move around and explore it on his own. Creating a game like this means actualizing your imagination: from abstract thought to a rich representation of everything that was on your mind

That is the joy and curse of game development. The possibility are limitless. When you embark on a new game there is no right or wrong idea. As long as your world is interesting, you have a chance.

Having no limits is also scary. Where do I start? Will I be able to achieve the full extent of idea? Is there something that I am missing?

This is not true in web development for example. When you are brainstorming ideas for a web app the process is more involved, and requires you to look if someone else already created something similar, how useful it will be, if people are really interested in your idea, etc. At the same time, no matter how innovative your idea may be, you are almost sure that you can develop it. The web ecosystem has such a huge community. There is a solution for nearly everything. You have a clear idea where to start and where you are going.


As a developer it is beneficial to explore and try many different platforms and languages to hone your skills. The process of creating a game with Unity is completely different than web development. Trying it al least once will open you mind on other forms of programming. Your game may not become a best-seller. But having the chance to build your imagination into something concrete is always an amazing experience.

👋・Interested in learning more, every week?

Timeless coding principles, practices, and tools that make a difference, regardless of your language or framework, delivered in your inbox every week.