|
|
| •
The game physics programmer is in charge of calculating
and including the required physics for the game, but s/he
must not put excessive physics data into the game because
some maybe useless and it will waste important memory and
CPU processing.
• CPUs are renowned for their ability to run loops
or repeated data efficiently, and physics programmers can
take advantage of this by storing a set type of equation,
i.e. how the bullet will fly in memory. And then, each time
a bullet is fired, the computer can recall the memory, change
little values and compute the equation. Doing this once
or twice is unnoticeable, but repeating this process thousands
of times will show benefits to non-reused code.
• Depending on the situation, one physics programmer
might be enough because the game has little physics and
therefore little input is required. However, modern day
games are very dynamic with a lot of detail and with it
comes with a lot of physics. This is a situation where a
company hires multiple physics programmers to effectively
write code and produce a well developed (and realistic)
game.
|
| •
An AI programmer’s job is to produce a “simulated
intelligent solution” that can act according to its
own will and if needed, react to a player’s moves.
Commonly, path finding, strategizing, and tactic coordination
are important in every game, although first-person shooters
require more tactic coordination while Strategy games focuses
on strategy and path finding.
• As explained above, many new games, such as Civilization
IV and Age of Empires III require a large AI programming
group because it has vast “maps” for players
to play in and the computer would need to have knowledge
to move around the simulated world. Often times programmers
create entire databases of code that can be used by the
game programmers (referred later) to code the default AI
for a game.
• Also, the AI code/database are usually released
to the gaming public as a third-party mod development kit
for adventurous gamers to program their own AI and distribute
it freely in the community.
|
| •
A graphics programmer is usually a person that is employed
to program interactive interfaces and other graphics for
application programs. Nowadays the term has changed and
it is usually applied to game programmers that focus on
developing 3D graphics (renders).
• Every graphics programmer must be skilled and have
deep knowledge on very advanced math, including vectors,
matrices, quaternion and linear algebra.
• Being a graphics programmer is not easy, but it
has benefits because professionals in this elective of game
production are rare and a programmer can ask for higher
wages and possibly better benefits.
• Another use for a graphics programmer is that s/he
can program for almost any console or PC game, be it the
Sony Playstation or the Xbox series of consoles.
• Also, graphics programmers must keep in mind of
all the advanced graphics hardware in the market that are
capable of multi-texturing, shading effects, anti-aliasing,
etc.
|
| •
Since the early times of game development (i.e., the famous
game, Pong), sound programming was a must and all present
day games make use of audio with many sound effects and
mood-enhancing background music.
• Most games have advanced sound effects, which include
3D sound and also surround-sound capabilities. Simply put,
a few sound programmers use their time to build and improve
the sound engine for the game they are working on.
• Some sound programmers may need to have knowledge
in digital signal processing.
• The sound programmers create tools to help them
maintain the entire library of sounds for use in the game.
These powerful tools essentially act as an “application”
because it allows the sound designers to put the sounds
in the right spots and assign the right sound effects for
the game. What game is good without proper sound and enticing
music?
|
| •
The gameplay programmer, as the name implies, focuses on
programming the game to the best interest of the gamer.
Usually gameplay programmers are not another type of “job”
but instead other programmers with less work load should
help out to improve gameplay.
• The gameplay programmer is usually a very versatile
person because s/he may have to change certain data values
for a strategy or tactic, change the responsiveness of a
game unit or even adjusting how long a summer will last
in a game. However, those values may be changed by the original
programmers themselves and this makes the gameplay programmer
an easily replaced person in the team. Furthermore, some
companies may opt out the entire elective itself because
it may have enough personnel to act as part-time game play
programmers.
|
| •
In the old days, a scripter undertook huge tasks by programming
many of the game’s code and content. For example,
a unit in a strategy game is supposed to shoot an arrow
for a distance of 600 meters and it will kill the enemy
in one hit. For a two sentence explanation, a scripter will
require many lines of code to effectively “script”
all of the details listed above and often the code is written
in either C or assembly level language.
• Presently, all game projects require a large team
of scripters to successfully work proper code and game mechanics.
The scripters are sometimes referred to as game designers
and it is more important they possess knowledge of script
languages rather than regular programming languages such
as C or C++.
|
| •
Input programming is not always offered as a separate job
title
• Even though the “input” process of keyboards,
mouse and sometimes joysticks seem easy, it is an important
task for the programmer because the inputs must be extremely
accurate and the user cannot have an un-enjoyable experience
from poor keyboard/mouse response or bad placement of “hotkeys”.
• Development of the input processes spans the entire
length of the project and are changed many times throughout
the development stage to accommodate changes.
• For example, FPS games such as F.E.A.R or Half-Life
2 requires a responsive and effective but complex input
layout in order for the user to enjoy the gaming experience.
|
| ••
Input programming is not always offered as a separate job
title
• Even though the “input” process of keyboards,
mouse and sometimes joysticks seem easy, it is an important
task for the programmer because the inputs must be extremely
accurate and the user cannot have an un-enjoyable experience
from poor keyboard/mouse response or bad placement of “hotkeys”.
• Development of the input processes spans the entire
length of the project and are changed many times throughout
the development stage to accommodate changes.
• For example, FPS games such as F.E.A.R or Half-Life
2 requires a responsive and effective but complex input
layout in order for the user to enjoy the gaming experience.
|
| •
As the name implies, the network programmer is in charge
of programming code that allows players to compete against
friends or strangers over a variety of connections.
• Connection types include, a LAN, WAN (internet),
Modem, or the Serial Port Connection (old).
• Network programming can be a nightmare because data
being sent over the internet lines have a chance to be “lost”
and thus the program must effectively resend the information
without having the game lose too much performance.
• Often, the programmer can spend all the time fixing
just the network problems, which makes this job one of the
hardest of them all.
• To add to the difficulty, this element is usually
added last and will put a lot of stress on the network programmer
to get working network support for a game in a short period
of time.
|
| •
The game tools programmer is a less known job role because
it is the person’s duty to produce editing programs
for the game so that the gaming public can use it to modify
almost any aspect of the game.
• Certain tools are only available to the internal/programmers
of a game, but there are custom-tailored tools that are
released with the game, too.
• Game tool programmers must bear in mind that the
gamers are not necessarily code-smart and must program the
“tools” so that it is user-friendly and has
very little jargon.
• Also, documentation for the tools must be very specific
and through so that users will have no trouble understanding
instructions.
|
| •
A porting programmer is essentially a multi-platform conversion
specialist.
• The programmer is required to understand codes for
different platforms, but since nowadays there are at most
two to three major platforms (Windows, Mac OS and Linux)
this person’s task is not as difficult as it seems.
• However, porting can be a pain because some languages/platforms
may have incompatible code structure and will require the
other programmers to rewrite thousands of lines of code.
• The porting programmer has to know and be acquainted
with many languages because s/he must know the original
language (the “initial” platform) and the second
language used in another platform/setting. A typical example
is converting C++ games into Java and vice versa.
• A porting programmer is unlucky if her/his teammates
have inefficient language, limited documentation or sometimes
totally invalid code because most if it will be rewritten
and it may be a pain for the porting programmer to do so.
• Also porting programmers might be needed to fix
bugs not found originally.
|
| •
The lead programmer resembles a “boss” that
is in control of the overall programming structure of the
game.
• All the other programmers report to the lead game
programmer and s/he will check if the “work”
submitted by the others work independently and also coherently.
• A lead game programmer is usually promoted from
another programming job, and actually the programmer spends
more time working on administrative work rather than working
code.
• Of course, the lead programmer must have proper
knowledge of at least one or two of the other programming
jobs so that s/he may be of use to the team.
|
|