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.