Insight News Past Issues Write for IT Insight Press Releases Subscribe IT Insight Advertise on IT Insight Contact
   Menu

Game Programming as a Career
Khizer Iftikhar 


A game programmer, as per denoted by its name, is a programmer software engineer who basically develops games which can be computer games, video Games or related software (such as add-ons or game development tools). Game programming having practitioners of any specialized fields (Disciplines) in Game programming may regard themselves as ’Game Programmers’; which of-course is different from a ’Game Designer’. A ’Game Designer’ can be a ’Game Programmer’ but not all are, and it is rare for one person to serve both roles in modern professional games - despite of his/her hobbies.

Currently, no recognized university of Pakistan is offering a game programming degree - either bachelors or masters. However, if you are planning to go abroad for higher education, you can fulfill your dream of getting a game programming degree. There are many good repute colleges and universities worldwide which offer education in game programming, design & development. You can go for a USA, UK or Canada degree - the countries which are famous for game programming education. As many multimedia and high profile computer science institutions are emerging in Pakistan; we can hope Pakistan will be producing game programming graduates soon. This article answers some of the questions that you might have in your minds about game programming.

What skills do I need?
A typical modern game’s development involves advanced physics, mathematics, artificial intelligence, 3D graphics, digitized sound and complex strategy, thrill and suspense. Once developed, users can interact with the game by using multiple input devices such as mice, keyboards, game-pads and joysticks. An advanced game does not restrict the user to play only against the computer ; it may be playable against other people via the Internet or over a Local Area Network (LAN). Each and every discipline of game programming requires a specialized programmer - who may individually take lot of time if assigned the whole part; so preferably more than one programmer is used to save time as the demand of games is increasing day by day. Some programmers may specialize in one area of game programming, but many are familiar with several aspects, so the work is also divided between them as required. The number of programmers needed for each feature depends somewhat on programmers’ skills, but mostly it is dictated by the type of game being developed.

Which platforms can I work on?
Xbox, GameCube, PlayStation and PC are some of the usual platforms the programmers specialize in. Other platforms include cell phones, the Macintosh, handhelds such as the Palm OS or the GameBoy. Some disciplines are common to some platforms, such as Artificial Intelligence, which can be transferred to various platforms and needn’t be tailored to one system or another. Also, basic game development principles such as 3D graphics programming concepts, sound engineering and user interface design are naturally transferable between platforms.

Are there any pre-requisites?
Bachelor’s degree in computer science or Game development can do a lot for you. Also programmers with mathematics degrees are often found writing some of the most difficult systems in games that require a strong physics and math background, such as the game’s physics system, camera system, and graphics. Some computer nerds, with no such formal degree, just having a hobby of programming eventually end up as a game programmer in a reputed company, due to their aptitude and homegrown experience in programming. Currently some universities are offering courses and degrees in game programming abroad. In Pakistan this field is new and is in early stages, but some software houses are in search of game programmers, so having no such university that offers this type of degree you can still apply if you have a degree for software engineering from a recognized university.

How much will I get paid?
Salaries for game programmers vary from company to company and country to country. Sadly enough, this field of programming is yet to initialize properly in Pakistan-only a finite amount of software houses are working on games. Although programming standards of some of them are comparable with the international standards, yet governmental support is needed. In general, however, pay for game programming is usually about the same for comparable jobs in the business sector. Some job opportunities that game programmers can get worldwide are quite demanding for different disciplines for different companies as SONY (London, Cambridge and Liverpool), THQ (Australia), Guerilla Games (Amsterdam), SCEE Technology Group (London), Bizarre Creations (UK) and so on.They are allowing a package of £25K to a general programmer, so you can easily estimate what a Game Programmer earns. This is despite the fact that game programming is some of the most difficult of any type and usually requires longer hours than mainstream programming

What about languages & tools?

Most code in commercial games is written in C++, C, supported by some assembly language. An optimized code is required for most of the games, especially console games, which restrict the programmer to program the game which runs at a targeted frame rate of 30 to 60 frames per second, due to hardware compatibility, therefore compiled rather than interpreted code is usually used. Almost all PC games also use either the DirectX or OpenGL APIs to interface with hardware devices. Xbox games use an API similar to DirectX. Various script languages are also used for the generation of content such as artwork and especially Artificial Intelligence. Scripts are generally executed by an interpreter, resulting in much slower code execution than compiled C++, C or assembly code. Scripts are therefore sometimes used sparingly, mostly for content design and not for modules where high speed is critical such as rendering logic. Some games are designed with high dependency on scripts; the scripts are compiled to binary format before game execution so they can execute with little degradation compared to native code. In the optimization phase of development, some script functions will often be rewritten in a compiled language. Java is used for many web browser based games because it is cross-platform, does not require installation by the user, and does not pose security risks, as may a downloaded executable program. Java is also the dominant language for mobile phone based games. Macromedia Flash is also a popular development tool for browser-based games (there is some debate as to whether Flash actually constitutes a ”language,” but it is a popular web-based game development medium).
Other tools are also essential to game developers: 2D and 3D packages (for example Photoshop, Maya and 3D Studio Max) enable artists to produce cutting edge art and animations; source control systems keep precious code safe, secure and optimize merging; and IDEs with debuggers (such as Visual Studio or CodeWarrior) make writing code and tracking down bugs a less painful experience.

Last words
If you are interested in the upcoming technologies and love to work on computers, I think that you have a perfect opportunity for your future knocking your door, don’t let it go down the drain. Especially if you live in an underdeveloped country then this is one of the best options you get with a cheaper degree. You get a good reasonable salary package as the computer games market is only established in the developed countries. At the end I would conclude with the saying ’LOVE IT OR LEAVE IT’; because if you love it you are in it and if you don’t you won’t be able to succeed a bit-despite of your creation. All the best for your career in game programming!

The writer is a dynamic IT Professional from Islamabad with command over various fields of technology. He is serving as an IT consultant for ’QR Simulators’ Sharjah (UAE). In his free time he works on graphics, databases and computer programming. He can be emailed at khizeriftikhar@gmail.com.

   Latest