If you are doing any kind of game development, chances are, you have heard of Unity. It’s of course, at the moment of writing, the most popular game engine for developers, big and small. I’ve been developing indie games as a hobby with Unity for a long time but during this Summer I really got deep into Unity development and would like to demonstrate in this blog post, why choosing a robust and mature game engine is a must for an indie game developer.
First, a couple of things about game development in general. As I see it, game development consists of two competing ideas: the used technology and the wanted gameplay content. Games are a unique medium where the technology used is very much fundamental to the wanted resulting gameplay content and how it is served.
If you compare games to, for example books or television, the artist does not interfere with the underlying technology of the medium – a book is always a book, a series of letters forming strings forming sentences forming a story that is displayed in text. It’s the same for movies and television – the end result used to be a film roll, now it is a standard encoded video format.
The artist doesn’t bother themselves with creating a new font or a new technical way to display characters on screen, they focus on the story content. But in game development, the game developer is responsible for both – both the technology and the entertaining content. It’s fun to get to create every detail of your game but it is also a big challenge.
When resources are scarce, this usually leads to the following dilemma: Do we put our development efforts towards creating the perfect game engine that is easy to use and works on multiple platforms or do we focus our development efforts towards making the game content as deep and entertaining as possible? That is a question many indie developers face when starting a new game project.
That’s how game development used to work before mature game engines – you would start your game development project by first writing your own tools and libraries for the wanted platform from scratch. You would have to write your own tools and libraries for loading assets from memory, to draw sprites on the screen, to write a level editor for building your game levels and so on… the list is long and covers every technical aspect required to show something interactable on the screen.
So, in short, if you just quickly wanted to have you own Mario jumping on the screen, it wasn’t so easy. It was more like the cosmologist Carl Sagan would say: ”If you wish to make an apple pie from scratch, you must first invent the universe” – in order to make Mario, you first have to create the whole Nintendo Entertainment System. But that is something that is really not feasible for most of indie developers.
That is why using a robust and mature game engine is a must for an indie developer. It is not feasible, for most of the indie developers, to spend months or years to create a new game engine from scratch, while trying to learn the mountain of technical requirements and details of the selected platform. If you look at all the features Unity already offers, like exporting your game to all of the most important platforms, just adding one of the platforms as a feature to your own game engine, could take the whole allocated game development time.
So, the true beauty of a mature game engine like Unity is that is gives the developer more time to focus on the things that really matter in the end for the player: the gameplay content. It’s an old fact that, in the end, the player doesn’t really care about the underlying technology of the game, only how good it plays. Tools like Unity make it possible for more developers to develop more games that are fun, exciting and full of memorable game content and not mired by technical problems. With this in mind, we can now update Sagan’s quote to match: “If you wish to make a game from scratch, you must first download Unity”.
Unity, Available: https://unity.com/