If you’re interested in creating your own games, and you want to help out more on the Programming side of the Project, as opposed to being an Artist, Musician, Designer or whatever, then I hope that this sequence of Tutorials will help you get your foot in the door with Game Programming. Firstly, you should know that there in most Industry Standard Video Games, there are four main types of Programmer:

Engine Programmers. These people develop the Game Engine, or the Client, which actually runs the Game. The Engine will consist of many parts, such as the Graphics Engine, the Gameplay Engine, the Physics Engine etc. Game Engines tend to be coded in low level languages like C or C++:

Tool Programmers. These people develop the Tools to improve workflow and generate the content that actually goes into the Game. Common Game Development Tools include Level Editors, Map Editors, Terrain Editors, Decal Editor etc. These Tool can be coded in almost any language, as they are not actually part of the finished Game. This is a Standard Map Editor Tool taken from the IsoEngine's Toolkit:

Scripters. These people write Scripts that define Gameplay Features or anything that cannot be hard-coded into the Engine. Almost all Gameplay is programmed by Scripters. Uses of Game Scripts include: AI, Quests, Storyline Progression, NPC Interaction etc. This is a movement Script designed to simulate a character falling realistically:

If you’re developing a Multiplayer Game or a Game which requires Online Features, you may also need an additional type of Programmer, known as a Server Programmer. More on that will come later. I’m assuming that if you’re reading this tutorial on how to get started with Game Programming that you’re not aspiring to create the next Gears of War right away, so I think we should start off small, and instead of creating a Game Engine from scratch in a low-level language like C++, I think you should start off by learning a Game Development Specific Language. Popular choices include BlitzBasic which is good for Developing high-quality 2D Games or GUIs, or DarkBasic which is good for Developing 3D Games. These languages are very easy to learn and by using BlitzBasic or DarkBasic, you can create a simple Game and have it up and running in less than 5 minutes! The downside with these languages and Game Development Specific Languages in general is that they’re much less powerful than something like C++, they’re not Industry Standard, you’ll probably have to pay a huge license fee if you want to sell your Game, the language is probably not Multi-Platform and you’re very limited with what you can do with them. However, I still recommend learning one of these languages as your first step, as they will teach you the basics of actually Programming Games, as well as help you get to grips with Programming itself. The problem with using something like C++ as your first language is that not only do you have to learn C++ (which is waaaaay harder than something like BlitzBasic), but you will also have to learn an API if you want to interface with the hardware, how to make your own Engine, and, most importantly, how to make all of this into a Game. If you’re just starting out, doing that will take you so long that you’ll probably lose interest in Game Development altogether. That’s all for now, I’ll be posting another Tutorial soon, so stay tuned!