What is an indie game developer?

Yesterday, my friend George asked me: “What do I have to know to become an indie game developer? To make a game from scratch?” I was on a run and my short answer was: “Everything“.

That “Everything” is overwhelming. My answer made me think and I suppose, that George consider me a smug. But, that evening I sat down and I meditated on those questions. Next day I met George and told him:

“Well, George, I made a mistake yesterday, when you asked me about indie game developer. But you know, creating a game is a complex process which takes some time. It’s not everything, as I said, but you have to learn a lot from many fields and of course you can’t do nothing without patience”.

Then I said: “I love programming, I have been doing this since I was in primary school, just like you, and I also love games. Now, I’m 26 and I’ve started to look in this direction more than 5 years ago, I’ve also completed a two-year master degree in Computer Graphics and Virtual Reality at the university during this time”

George: “Wow..,That’s interesting, can you tell me more about the whole process? What should I be aware of? What books do you recommend?”

“Sure, George, I’ll tell you from a programmer point of view”.

I’ll begin with the programming part, here is what I recommend for anyone:

Graphics programming

Fortunately there are game engines for this, but use them in a wrong way and they are not going to help you very much. Learning some concepts about rendering can help a lot identifying bottlenecks in your game or some engine problems that might appear later on.

Before you do any online tutorial for Unity or Unreal, it’s better to understand some core concepts used in graphics. Most people jump right into the engine tutorials without knowing what’s a vertex or a shader. I recommend to read Introduction to 3D Game Programming with DirectX by Frank Luna it covers pretty much all things you have to know about basic rendering.

Maths and Physics

Maths and Physics work hand in hand with rendering. From writing shaders to simulate particles or rigid bodies, you have to know some mathematics and physics. Frank Luna covers lots of mathematical concepts in his book. Mathematics for 3D Game Programming is another great book written by Eric Lengyel.

In the picture above, you can see my little library with all the books about: Programming, Graphics, Physics, Maths, Game Design and Marketing. The oldest book from there is from 1996, it’s about C++ and it belongs to my father which is also a programmer. I have a full-time job as a software engineer and everyday I have to travel by subway around 1 h 30 minutes (to work and back home) so I have plenty of time to read.

“Should I write my own engine?” Hell no. If you want to make a game, writing your own engine requires a huge amount of time and resources and you should focus on the game. 5 years ago, writing an in-house engine was necessary because at that time engines were limited or expensive. You should write engines only if you want to learn or you want to focus on something different from a game!

Now, that’s all you need to become a graphics programmer, enough to get you hire in a big studio like Ubisoft. However as an indie that’s not enough if you want to develop a game.

Planning

It’s super important to have a plan and milestones for the whole development process, especially if you work with a team.

Here you need to figure out:

If the project is too ambitious, are you able to finish it?

How long is going to take the process? Make a broad estimation for the project and a narrow it down for each milestone.

Are you are going to work alone or with some friends? Do you need to hire someone at some point? Do you need 6 programmers and one artist for the game? (Trust me I’ve been there and it was horrible)

Make a strong analysis of similar games. Where did they market the game? Who are their core players? What players didn’t like about that game? Did they spent 4 years developing the game? How many people were involved in the process? What engine they’ve used? etc

Plan the budget. How much do you think you have to spend on the development process? You can pay all from your salary? Do you need crowdfunding or an investor?

What is going to be the unique value proposition (UVP) for the game? Take for example No Man’s Sky… What’s the UVP for No Man’s Sky? What’s their selling ticket? “Exploration, Multiplayer, Billions of planets“… excellent. What went wrong? The whole multiplayer thing. It’s an excellent game but they didn’t offer what they’ve promised.

Remember Journey? Sony expected the game to be completed in a year, but more than three years it finally took. Over the course of development the team grew from seven to eighteen people.

Even if it’s a small game, just make a plan and hold to it even if you are late with what you want to achieve. If you are tight on budget, start to implement the core game mechanics first, because the art is much harder to change. If you decide to modify a concept or some ideas during the development this can kill your budget or have a fight with the artists. Iterate a couple of times through the mechanics before you start to deal with art.

There are thousands of books and courses on project management and planning, however if you don’t know where to start, read Making Things Happen by Scott Berkun.

Music

You need music or SFX not only for your game but for your game’s trailer as well. For example, I’m a guitar player and I know some music theory. I have a small recording/mixing studio in my bedroom and I could write music for a game, but to save time, I prefer to let someone more experienced than me.

However if you want to get your hands dirty here, you can start playing with sounds of a Virtual Instrument in a Digital Audio Workstation (DAW). You can use Reaper as a DAW because it’s free and very easy to learn.

In case you need only SFX, you can search for free sounds on: freesounds or check this list. However you need to spend some time to find a good quality sound and adjust it for your needs. If you want to work with someone you should be able to give him good references on what would you like to create. Not every music fits for you game

Art

I have very little to none experience here. I have to ask or hire someone to help me with the art for the game. However there are a few tricks you should know in order to edit assets in a photo editor program like Photoshop or Paint.Net (free). Maybe you need something to modify before you put it in the game or you need to create images for a marketing campaign and you don’t afford to lose time and money.

As I said, as a programmer you should focus on mechanics and after that on art. Usually if you hire an artist, they will ask you tons of questions to figure out your vision. They don’t want to waste time redrawing the art because you forgot to tell them something important. Be prepared to show them sketches, references (from their portfolio or other games) and answer all their questions. In case you have an artist in your team right from the beginning, he should be open-minded, able to throw away lots of work and redraw stuff.

Of course you can use free models or sprites just to test your design and mechanics. I usually look on: OpenGameArt, Textures.com, tf3dm, TurboSquid. Then step by step you will start to change the art. In case your game is going to be 3D, then your artist will have to work a lot. The whole process will take even more time and resources. Maybe you need a few artists to deal with concept art, modeling, rigging and animations.

Because this is not my area of expertise I can’t guide you for resources here. If you are an artist reading this, sorry that I can’t provide more info.

Game Design

In short, here you design the rules and goals of the game. You have to decide all the elements that will be part of the game: from core mechanics to UI to characters. This is an iterative process which is supposed to start as soon as possible, not after you release the game.

You can’t decide if the design is good or wrong until you get feedback from users. That’s why it’s an iterative process, because you always have to adjust the mechanics or the story based on feedback. If the user doesn’t understand how to play it, or they have a hard time with the input, there is something wrong in your design and you have to change it.

Here is an iteration process to ensure you have a good design:

Build prototype with game’s core mechanics.

Find some people to play it.

Ask them what they like and what they don’t. Read their reactions if you can. Be a good listener.

Remove what they didn’t like about it and expand what they like.

Add more ideas in that direction. Add art and music and new mechanics

Repeat from step 2.

Repeat this a couple of time and you will end up with a funny game. This will have a huge impact on the execution and marketing.

Marketing

Like planning, marketing is a process that is often neglected by indie game developers. When it comes to indie game development process I believe in the following rule: 5% it’s the idea, 35% it’s the execution, 60% is marketing. Let me break this down for you:

Idea – I often hear: “I have a game idea but I’m not going to share it with you”. Really? I have, like 20 ideas from the moment I wake up from bed until I go to the bathroom. There is always someone with better ideas than me or you. How clear and well-defined its your idea? It’s important to know what’s the objective of this game and what do you want to achieve with it.

Execution – When I said that 35% of the process, it’s the execution, I’m not saying that you should make a crappy game or a game full of bugs. In fact, the whole marketing process will rely heavily on the game art and the game quality. What I’m saying, it’s that you should spend time on marketing during the execution process as well as after the game is released.

Marketing – Let’s be honest, who cares about your game idea and execution if no one knows about it? With marketing, your objective is to reach to a large number of players to present and sell your game. I bet that most indies don’t know what is the UVP for their games or they didn’t identify their client, the customer avatar. You can’t say “everyone” because you will have a hard time marketing that.

Be prepared to dedicate a huge amount of work for the marketing process. Here is an article I wrote on Gamasutra, a while ago, with some basic steps we made to market our game. The only regret was that we didn’t start to market earlier. Now after 8 months, I’m still sending emails to youtubers, attending events and so on.

It’s important to know, that there is no successful recipe for marketing. Don’t trust anyone who tells you that they know the key to success. You have to experiment here. There is a lot to talk here and I want cover more about marketing in the next articles, so if you are interested, make sure you subscribe to this feed.