(First published in a college monthly TechVeda on April 10,2006)
Game development is a much sought out career today. Most of the people who like to play games also like to make them. For anyone who choose game development as a career having a passion for games is absolute crucial. If you want to succeed in games it must be the games that you want to make. Let us see what are the basics needed to become a game programmer.
First things first
You must have skills in mathematics and programming. The three main programming languages used for programming PC and console games are C, C++ and Java. It will be helpful to know the working of PC or console from chip level to application level.
There are some subjects in a computer science course which have relevance to game programming. They are Programming Languages, Data Structures and algorithms, Operating Systems, Compilers, Computer Graphics, Computer organization and architecture. Artificial Intelligence, Computer Networks and Databases. A good knowledge of these subjects will give you a huge advantage.
To do any kind of game whether in 2D or 3D you should learn graphics APIs and/or game engines.
The graphics APIs implement basic computer graphics concepts and algorithms and give interfaces to graphics hardware. Two graphics APIs which give power to major games available today are OpenGL and DirectX. Game engine is a core software component that implements the non-game specific technology. Most commonly a game engine provides rendering facility for 2D/3D. Game engines also come with game design tools like level editor etc. 2D game engines are easier to make and almost every game company owns their own 2D game engine.3D engines are not that easy to make and it takes almost two year to make a commercial quality 3D engine.Two popular commercial 3D game engines are Quake and Unreal.
Start with 2D By doing different types of 2D games you will master coding, game play logic, implementing physics and ai, capturing input, bringing music and sound in game etc. That will definitely help you when you do 3D games. I would recommend to any budding game programmer to do clones of the following games before entering the world of 3D game programming or starting commercial development of 2D games.
1) Tetris
2) Breakout
3) Pac-Man
4) Super Mario
5) Galaga
6) Pong
7) Tank
8) Snake
9) Othello
10) CarRace
Diving into 3D
Learning OpenGL is a good place to start. Study the different graphics concepts and try to implement them using the API.
After learning almost all the core features of the API make demos that shows off 3D Math skills (Projected geometry/textures, environment mapping, complex shadows, complex camera tracking etc.) and Special effects(smoke, fog, water etc.)
Approaching a company
The first thing by which game companies filter candidates out is through probing CVs. Your CV must reflect your passion for games and programming. Sending a portfolio of your works with the CV is a good idea. The recruiters normally test technical, analytical and logical skills.
Game development is a much sought out career today. Most of the people who like to play games also like to make them. For anyone who choose game development as a career having a passion for games is absolute crucial. If you want to succeed in games it must be the games that you want to make. Let us see what are the basics needed to become a game programmer.
First things first
You must have skills in mathematics and programming. The three main programming languages used for programming PC and console games are C, C++ and Java. It will be helpful to know the working of PC or console from chip level to application level.
There are some subjects in a computer science course which have relevance to game programming. They are Programming Languages, Data Structures and algorithms, Operating Systems, Compilers, Computer Graphics, Computer organization and architecture. Artificial Intelligence, Computer Networks and Databases. A good knowledge of these subjects will give you a huge advantage.
To do any kind of game whether in 2D or 3D you should learn graphics APIs and/or game engines.
The graphics APIs implement basic computer graphics concepts and algorithms and give interfaces to graphics hardware. Two graphics APIs which give power to major games available today are OpenGL and DirectX. Game engine is a core software component that implements the non-game specific technology. Most commonly a game engine provides rendering facility for 2D/3D. Game engines also come with game design tools like level editor etc. 2D game engines are easier to make and almost every game company owns their own 2D game engine.3D engines are not that easy to make and it takes almost two year to make a commercial quality 3D engine.Two popular commercial 3D game engines are Quake and Unreal.
Start with 2D By doing different types of 2D games you will master coding, game play logic, implementing physics and ai, capturing input, bringing music and sound in game etc. That will definitely help you when you do 3D games. I would recommend to any budding game programmer to do clones of the following games before entering the world of 3D game programming or starting commercial development of 2D games.
1) Tetris
2) Breakout
3) Pac-Man
4) Super Mario
5) Galaga
6) Pong
7) Tank
8) Snake
9) Othello
10) CarRace
Diving into 3D
Learning OpenGL is a good place to start. Study the different graphics concepts and try to implement them using the API.
After learning almost all the core features of the API make demos that shows off 3D Math skills (Projected geometry/textures, environment mapping, complex shadows, complex camera tracking etc.) and Special effects(smoke, fog, water etc.)
Approaching a company
The first thing by which game companies filter candidates out is through probing CVs. Your CV must reflect your passion for games and programming. Sending a portfolio of your works with the CV is a good idea. The recruiters normally test technical, analytical and logical skills.