The Four Stages of a Game Programmer
By: Eric Nehrlich
This is a blog about the four stages of a programmer for a game in general. These are my observations, not necessarily the industry standard. But I think you will see that they are true.
At the beginning of your career, you are here. You know nothing. You can’t even properly use your tools yet. You know only enough code to make your game do something simple and stupid. Like, say, decreasing your health each time you hit a wall in an FPS game!
You are unable to fix bugs without help, as you don’t understand all of the systems properly yet. Asking for help is fine – everyone does it – but you ask for help too often, and don’t grasp the issues after being helped the first time.
You may be able to write some code on your own without much supervision, but it’s usually bad code that doesn’t integrate well with anything else (or even work). You also have some working knowledge of how to use source control and what it is for, so you don’t break anything in particular by checking in buggy code or overwriting
I am writing this blog post to help those who are starting out in the game industry. I am going to tell you about the four stages of a programmer for a game in general.
The first stage is the “I want to be a Game Programmer!” stage. This is where most people start out. You may have even come across programmers who still think this way. They will say things like: “I want to be a game programmer because I like playing video games.” Or: “I want to be a game programmer because I love programming and I love playing video games.” These people have no idea what a professional game programmer is and how much work it takes to become one!
If you are reading this blog, then chances are you have already passed through this stage and moved on to stage two. Stage two is the “I can do this!” stage. Some people will never pass through this stage because they realize that they cannot do it or they just don’t want to try hard enough. But if you are here, then chances are you have already passed through this stage and moved on to stage three. Stage three is the “I can do this! And I am going to do it!” stage. In other words, your mind has been made up
The Four Stages of a Game Programmer:
When you first get into the world of game programming, you’re excited. You’re so excited that you want to make your mark on the world. You want to create the next big indie game or maybe even a AAA title that everyone is going to play. You may have some skills in programming or some skills in coding and you feel like you’re ready.
You think that because you’ve played games since you were a child and enjoyed making them, that somehow makes you an expert at game development. The truth is, you don’t know jack and it’s going to take a long time before you do, but if there’s one thing I can tell you about game development is that it will change your life forever.
Game development is not just creating something for other people to enjoy, it’s creating something for yourself to enjoy as well. If you’re going to get into this industry, be prepared for a wild ride and be ready for the 4 stages of a game programmer:
1: The idea stage: This is where it all begins. Everything starts with an idea and then a prototype follows after that concept. This stage is different for everybody, but it is where the core concept of your game comes from. Your goal during this stage should be to create something
There are four stages to a programmer’s career in games. The first two are really obvious, and the third is familiar to anyone who has built up a career in any other area. But the fourth stage is unique to games.
To understand what I mean by these stages, it helps to think of a game as a set of layers with each layer building on those below it. The bottom layer is the technology; this is everything that makes the game possible: the programming language, compiler, operating system, video card drivers and so on.
The next layer is the engine; this is everything that makes the game fun: physics simulation, rendering, AI and so on.
The next layer is gameplay code; this is everything that makes your specific game fun: character stats, scoring rules and so on.
The top layer is content: art assets (textures, models, animations), sound effects and music, levels and so on.
I recently heard about a company that was looking for a programmer. However, this programmer had to be “experienced.” By experienced, they meant, no junior programmers. This is a common sentiment among employers: programmers who are too junior are not worth hiring. What makes someone “experienced”? There is no set definition, but I have found most people generally mean 3-5 years of experience in the field.
This seems like a lot of time. Programming is best learned through practice and doing things. If a junior programmer only has 1-2 years of experience, then they must not know a lot. But this isn’t true at all! Many people can learn much more than the average person in one year. In fact, I would argue that someone with 1 year of experience could be better than someone with 5 years of experience!
Let’s examine why this might be the case by talking about the stages of learning to program.