Are you at the start of your career as a game programmer? Or do you want to prepare for a new chapter after graduation? In this article, we want to help you prepare for your career as a game programmer. You can use the information in this article to find an internship, to prepare for a job interview or for your self-development as a programmer.

In this article we answer the following questions:

At Grendel Games, how does a typical day of a game programmer look like?

An internship or a job as a game programmer looks different at every company. In a large organisation you often have a very specific task. Grendel Games is a small organisation that currently employs 3 game programmers. That is why as a game programmer at Grendel Games you have a broader range of tasks.

As a game programmer, you work in one of the three development teams that consist of a designer, an artist, and a programmer. Each team oversees several projects carried out in two-week sprints.

Generally, the game programmer mostly busy with building new features. The game designer has an idea for a new functionality and asks the programmer to build it. Building a new feature consists of several steps:

In addition to working on new gameplay features, you are also involved in developing tools that the end-user does not see. These are tools that make the development of new features easier.

What type of game programmers does Grendel Games have?

There are dozens of game programmers. large organisations especially have different game programmers for various functions, such as A.I. programmers, graphic programmers, audio programmers, and much more. At Grendel Games, we keep it simple. We make a distinction between two types of game programmers: gameplay programmers and engine/system programmers:

These are the two types of game programmers that are most common within Grendel Games. Because we are a small company we are often looking for programmers who can handle both variants. In other words: you have basic knowledge in making gameplay features and complex systems and are specialised in one of the two.

What makes a programmer good?

If you read this article, there is a good chance that you are currently studying to become a game designer or a graduate looking for a job as a (game) programmer. You have gained a lot of theoretical knowledge and have probably already built several games. Super good! In this paragraph, we want to take you into the skills that, in our opinion, make a game programmer outstanding.

First of all, it is very important that your codes are not only good but also neatly written. A game can be incredibly cool, but that does not mean that the code is also well written. A neat code is maintainable, readable, and reusable. One principle we apply when writing code is DRY, which stands for ‘Don’t Repeat Yourself’. If this principle is applied correctly, the code can be reused without having to rewrite it.

A good programmer does not make things more complicated than they are. Two principles are important. The first is KISS: Keep It Stupid Simple. This means that it is wise to write code as simple as possible to avoid any problems. We also know YAGNI, which stands for ‘You Aren’t Gonna Need It’. Programmers are often perfectionists. Just write that extra piece of code to make a feature perfect! But is it really necessary? The YAGNI principle states that you should only create a new feature when it is really needed.

Analytical thinking helps programmers to work faster and achieve better results. Suppose you wrote a code for a new level last month and it works properly. In the past four weeks, the game has been expanded with new features – including new code – and suddenly last month’s code no longer works. A good programmer knows how to identify a problem quickly by drawing up an action plan and solving the problem.

If as a game programmer you have a good knowledge of mathematics, you have a head start on the rest. Especially knowledge of vector mathematics comes in handy as a game programmer. When programming games, situations often occur in which there is a 2D or 3D space and the player has a limited field of vision. It is then necessary to calculate whether, for example, an enemy is in the field of vision and the player is able to shoot at the enemy. In short: maths knowledge = bonus points!

Some things only become good with experience. If you are still studying or have just finished your studies, you probably don’t have a lot of experience yet. That is not a bad thing. We have to start somewhere! Still, we notice that a game programmer with experience not only detects and solves problems quickly but also knows how to prevent them by designing and structuring code properly. In the next paragraph, we will explain how to expand your portfolio and get more experience as a game programmer.

How can you improve yourself as a game programmer?

You now know what type of game programmers there are within Grendel Games and what makes a game programmer good. But of course you also want to know how you can improve yourself. In the next section, we will answer that question. In short, there are two things you usually have to do: try and learn (from others)!

Challenge yourself with complex projects

As described, experience is important as a game programmer. The more games you have made, the more problems you have encountered (and solved), and the better you become! What also helps is that you have experience with complex games that require more programming. An endless-runner game (such as the dino-game from Google) is a game mode that requires little programming. There are few events in the game. The speed in the game is constant and there is one level. One button is needed that allows the dino to make just a movement to advance in the game, namely: jumping.

We advise you to really challenge yourself. Try to program a game where several consecutive events have to be programmed. A game like Tetris is already quite a step forward because the code for this game is a lot more complex. In Tetris, blocks can be combined, blocks can to disappear, then the original block may have to fall further down and a complete row may have to disappear. All influences as a result of one push of a button by the player.

Another example of a game mode that is more complex to create is RTS games. Think of Age of empires or Command and Conquer. Here too, you will find more movement possibilities and objects – such as buildings, trees and resources – that make it more difficult to program. So we advise you to try making such games. If you start with these, it doesn’t even have to be perfect graphically. It is best to use free assets or develop a game with 90% grey cubes. In addition, you do not have to build a complete game. You can also make a part of it in the form of a demo, as long as the code behind it is correct.

Learn from others: read and talk about programming games

You don’t have to reinvent the wheel! The programmers at Grendel Games have learned an awful lot by sharing experiences and engaging in discussion. So share your work with others and ask what they think of it. You will find that you will come up with new ideas and write advanced code.

Another way to gain knowledge is to study articles and videos. There is an awful lot available on the internet. To give you a start we have put together a list of our favourite articles/videos. The following topics are very instructive:

  1. Separation of Concerns (practically explained in a video)
  2. Seperation of Concerns (a good, more in-depth explanation in addition to the video)
  3. Don’t repeat yourself
  4. Series of 13 videos on different topics

What do employees expect in a game programmer’s application?

Are you looking for a job as a game programmer or are you about to apply? Then take a good look at what is asked for in the vacancy. Grendel Games sometimes has vacancies for game programmers. This also applies to internships. Take a look at our vacancy page for more information.

At Grendel Games we ask for the following items in your portfolio:

 

Finally, we want to make sure that everyone codes differently. The standards for code (such as the list of articles in the previous paragraph) are simply the opinions of specialists. Do you disobey these standards and write codes differently? Then explain why you do it that way and what the advantage is.

tim-laning

We hope that this article has helped you on your way to a job or an internship as a game programmer. Do you have any questions? Feel free to contact us!