More correctly what programming languages am *I* going to learn.
The domain of software development is huge and it’s next to impossible to learn everything. It’s even more impossible (if such a thing is possible to be more than impossible) to become a master at everything. In fact, the domain is so huge that its impossible to learn even 1% of all the new technologies / methodologies and programming languages that are out there.
So if I want to make games (and I do) this is my little list of technologies to focus on. Disclaimer: I am currently interested in writting cross-platform games for personal computers and my choice of languages and technologies reflects this. I also may be interested in programming for consoles at a later date. This list is completely different to someone who wants to do web 2.0 stuff, which just goes to show the kinds of disjoint bubbles even developer geeks live in.
C++ and OOP
Defacto standard for computer games. Even though C++ is loosing ground in other areas like the web and business apps. It remains the market leader for the bulk of commercial game dev. This is a huge language, a monster that will take many, many years to master, and it’s even bigger than that, it’s a way of thinking.
Total number of C++ books on my amazon wishlist : 7
When I finish university I’m going to look for a job working in C#. If C++ is going to be the language that computer games are written in I’m predicting C# is going to be the language that the tools are written in. C# has many very nice features and is evolving nicely, the .net framework and windows forms gives programmers a large chunk of easy to use managed code to get apps up and running quickly. It’s also nice to use with DirectX and not to mention the fact the Microsoft’s XNA gamedev toolkit for the Xbox 360 uses C# as its development language.
Total number of C# books on my amazon wishlist : 6
C and Assembly
I’ve been thinking about doing some homebrew programming for the Nintendo DS and while these days if you’re programming for the PC there’s little incentive to write C code or assembly code. Modern compilers take care of all the nitty gritty for you. But if you wanna get low level with the hardware then you need to know all about your bits and bytes.
Total number of C/ASM books on my amazon wishlist : 3
Small, portable – written in ansi c, powerful, extensible and commercially proven (World of Warcraft, Baulders Gate) scripting language. I’m using lua for my current project and its just really nice. If you dont use a scripting language for your game projects you have to get one. It allows seperation of game logic with game engine code. Which makes life easier and allows people to program the game without touching the game engine (and potentially breaking it.) To program your own scripting language is not a trivial task, that’s why I recommend LUA.
Total number of LUA books on my amazon wishlist : 2
Graphics APIs : OpenGL and DirectX
You really should learn both, they are more similar than dissimilar. OpenGL is of course portible, but DX has its places – Xbox and windows, C#.
Total number of DX and OpenGL books on my amazon wishlist : 4
So thats my list, and that’s not including general computer science stuff that a game programmer should know. Data-structures, AI, Network programming etc…