|
Getting a Programmer job, in the Games Industry
This is a guide on how you can best position yourself for getting a job programming video games, assuming that this is what you want to do for a living.
It assumes that you are still at school or college level, and maybe deciding what courses to take, and what qualifications and other skills you will need. Note that some of this information is specifically relevant to Codemasters, and may not be relevant for other companies. It's also fairly UK-centric, as I cannot speak for working in other countries.
Programmer
So how do I start then?
If you want to be a programmer in the Video Game industry it’s essential to have a love of programming & a love of video games ? this is a difficult business to work in, and you will be expected to put a huge amount of effort in. Without a passion for video games, you won’t cut the mustard! This, more than anything else, is what will make a difference - a love of games and programming, and a determination to succeed. If you have these things, then you’re more than half way there.
To start with, I’ll state the obvious and say “Learn to program” ? it doesn’t matter which programming language you choose, but it’s important to learn the concepts. Programming concepts are generic across various programming languages. If you have never programmed at all before, try starting with BASIC. This is a simple beginners language, and will give you a grounding in many of the concepts involved in programming. PASCAL is also an easy beginners language, which is still commonly taught in many computer science courses. Once you have some experience, then Java, C, and C++ are also good languages to learn.
Learn about computer hardware - this will help you a lot. Knowing the fundamentals of how a CPU or graphics card works, will help you immensely. Again, computer hardware differs from PC to PC, and console to console, but many of the same fundamental concepts apply. Memory, registers, DMA, stacks, buffers, you'll find them on every computing platform. There are many internet sites and books which can give you a grounding in how computer hardware works.
The internet is a brilliant resource for learning about games programming, and there are many web-sites dedicated to the specifics of programming games. Use these as resources for learning about the many aspects of programming games.
What kind of programming languages should I learn?
C & C++ are the most popular languages in the games industry. Why? Because they are fast, powerful, and low level enough for you to do most anything you need to do, but also high level enough to not have to write a massive amount of code to do it. Unlike some languages, C/C++ is available on almost every operating system and is quite easy to port between them. This means that you could program something in C, and your 'source code' can be compiled to produce different .exes which run on PC, PlayStation, XBox, and so on. In other words, you don't worry about the hardware specifics of the platforms you run on, the compiler takes the source code, and compiles to the CPU format of the machine you are running on.
Programmer
There is one more language that is good to know in the games industry and that is Assembly (ASM). Assembly language is the language of the machines microprocessor, or CPU. For PCs, this is generally Intel assembly language (known as x86). However, consoles tend to use different varieties of CPU (e.g. PS2 has a MIPS CPU, Nintendo GameCube has a PowerPC CPU, and XBox, has a Pentium III CPU).
Assembly language is the lowest level you can program at, and gives you maximum control of the CPU, allowing you to write the fastest possible code. Nowadays, most of the code (99%) in games is written in C or C++, but very occasionally in very speed critical sections, assembly code is used, and so this is a useful skill to have. It’s a different style of programming to high level languages, and it is more difficult, but once you have learnt one CPU assembly language, the skills are easily transferable to other CPU assembly languages.
It can also be helpful to learn scripting languages such as Perl or Python. Scripting is useful because they are very high level languages, which often enable you to write tools quickly & easily. (e.g. Writing data converters is often simpler using a high-level language).
One last thing - although it can't harm to learn other languages, Java is not generally used in games programming, as it is too slow. Focus on C & C++.
|
|