A Video Game Developer is a professional computer programmer specialized in the world of video game creation.
They're responsible for programming the game interfaces, actions, tools, environments and more. As well as that, Game Devs collaborate closely with their Product Manager, Graphic Designers, Level Designers, Testers, 3D Artists and Animators. At times, they need to dabble in these process and in smaller studios, sometimes take on the roles entirely becoming a sort of "Jack of all trades".
So what does it take to be a Video Game Developer?
There are a number of languages use in games development, but rather than throwing a substantial list of language, I've narrowed the focus to three.
I personally think that knowing one or two languages and being able to use them proficiently and competently is better than knowing 5 languages and not knowing how to use them.
C++ is a low-level language which means that it is closer to a computer's native machine code. Because of this, the code produced can be very efficient and run faster, however, it is considerably more complex and easier to accidentally create bugs.
There is a very steep learning curve for the programmer learning C++, but when mastered there is not much you can’t do with it.
C++ is used for the creation of most console games and major Windows games. Thanks to its vast libraries, it is particularly appreciated for the creation of powerful graphics engines such as Unreal, PhyreEngine by Sony and Unity3D.
Its relative ease in designing and creating complex graphics is behind the success of titles such as World of Warcraft, StarCraft II, Counter Strike; Dark Souls and Elder Scrolls V: Skyrim.
C# has a similar syntax to C++ but contrary to the former, is a ‘higher level’ language.
This means that there a few features automatically managed by the language, which are otherwise manually managed in C++.
For example, if you create an object that has completed its task in C++, you need to delete the object yourself by performing memory allocation management manually. In C#, the garbage collector will automatically delete the object for you.
Consequently, it is easier to learn than C# but this comes with an impact on performance.
C# can be used to create a variety of mobile, windows or console applications, with comprehensive and powerful frameworks such as Unity, MonoGame, Godot and Xenko.
Java is a high-level language, in similar vain to C#.
In general, Java isn't widely used in video game development, except for mobile games running on Android. Angry Birds is one example of a game coded in Java. Android, itself is coded in Java and that means apps, included games, are most suitably coded in Java for performance and compatibility.
It has been used in Computer and Console gaming but is not the most performant. Minecraft and Project Zomboid are examples of successful games coded in Java.
Which language to choose?
If you're starting out, all three are viable routes into game development.
You are a student
I recommend focusing on either Java or C# and some C++. These languages may already be covered in your university modules and you can start to build some simple games if your free-time.
C# and Java are very similar and used in a huge number of commercial non-gaming applications. These are, therefore, useful languages to know regardless of how your software career progress but given their similarity I would focus on one or the other. If you have choice and want to get into mobile app development, prioritize Java.
C++ shouldn't be neglected; serious AAA games are written in c++ where full control over memory is important for performance.
You are a hobbyist/Indy developer.
If you're just learning to code and want to see results in a relatively short time, C# and Java is the way to go.
Java if you're super interested in Android development specifically, the same goes for Swift and iPhone.
Otherwise, I'd opt for C# and one of the popular game engines, such as Unity.
Other Technical skills
Physics. Modern games require a very realistic experience which requires advanced skills and understanding in physics and how a virtual world should react to events.
Programming of team development tools (Perforce, Git, etc.)
Recruiters are on the lookout for a demonstrable attraction for everything related to gaming and new technologies.
Technologies evolve quickly, especially in the field of video games, and the developer must be able to stay in the race and adapt to an ever-changing environment.
Given you'll likely need to work closely with various other team members, a minimum of team spirit, interpersonal skills and an open mind is essential. The video game developer must be able to communicate and defend his points of view easily.
Responsiveness and resistance to pressure are essential to meet tight deadlines, often with a few sleepless nights! It is not uncommon for video game companies to have practices such as "crunch time", that is to say a period in the production of a game during which employees must work up to 80 hours per week.
Finally, thoroughness and patience are two additional qualities. Building games is a long, frustrating and arduous process and you can spend months head deep in code before seeing tangible results. Things also have the habit of breaking, a lot.
Employers often look for a degree/higher level qualification in the following subjects:
- Computer Science
- Software Engineering
- Computer games development/design
- Games Technology
Recruiters will find your profile interesting if you’ve graduated in animation, interactive media, games design and art or graphic design. In this case, you may need to demonstrate some coding ability.
In the industry's infancy, it was not necessary to have a diploma to land a role. Nowadays, however, it is sometimes possible to work as a games developer without a diploma providing you can demonstrate your skill sets, usually with a portfolio of your own creations.