Many would-be video game programmers are concerned with using the same tools, languages and methods as professional developers. Unfortunately this can often be a mistake, especially for those not planning to enter the industry soon. Professional development in AAA studios has very little — if anything — in common with hobbyist or independent development, and it is important to take this into consideration before deciding you should do things the same way the pros do.
Let’s take a look at some of the differences between professional and indie or hobbyist development, and how they can impact choices.
1. Professional developers are often targeting consoles, limiting their choice of languages and libraries.
Video-game consoles such as the XBox and Wii often support only a single programming language and may not even support all of the normal features of that language. They may also be lacking the extensive standard libraries we’re used to having available on PC. It is often the case that C or C++ are chosen because they are the only options rather than an actual preference for those languages.
Indie or hobbyist developers are often targeting Windows PC and are free to choose any language they are comfortable with. Alternatively they may be targeting mobile platforms where Objective-C or versions of Java might be more suitable choices.
2. Professional developers often have access to large existing code-bases.
By reusing code that have already written, professional developers can save a lot of time and effort. Over years of development they have accrued large collections of code for many different purposes. This code already works, has been tested extensively, and the developers are very familiar with it. By sticking with the language(s) this existing code is written in professionals gain measurable advantages.
The average beginner does not have an existing code-base to work with, and even if they gain access to existing code they will not be familiar with it. They are therefore free to choose any language they are comfortable using for the task.
3. Professional developers have years of experience.
Professional developers have already been using their language(s) of choice for years and are deeply familiar with it. Unless there is a good reason to change, they will often be more productive using a language they already know.
A beginner — by definition — does not have prior experience. They can choose any language they are comfortable with.