|
Working in
Games
A Guide to
Games Development - Programming
Shelby Hubick, Senior Software Engineer at Relic Entertainment
guides you through the role of the Programmer
Q:
Introduce yourself! What's your name and what do you do at THQ?
I’m Shelby Hubick and I’m a Senior Software Engineer at Relic
Entertainment.
Q:
Tell us a bit more about your job - what does it involve, and
what are you working on at the moment?
I'm currently working on a WW2 real time strategy game called
Company Of Heroes. My job as a gameplay/ AI programmer on this
project is to make all the soldiers and tanks in the game move,
fight and react to the player's input. I'm not responsible for
what the characters look like just how they act and react to the
events that happen in the game. So if a soldier is standing
around and a tank drives by, and the user then tells the soldier
to attack the tank, my job is to make the soldier run up to the
tank and throw a sticky bomb at its wheels. Something else I'm
responsible for is to add to new rules to our game. If a game
designer decides that every time you blow up a tank you get
points, then I would add those rules to the game.
So on any given day here are the things you might find me doing:
a)
Discussing with game designers new features that need to be
added to the game, or old features that need to be fixed
b)
Sitting down with a pen and paper and working out a difficult
problem (or having a meeting with other programmers to work
together on a problem)
c)
Writing code into a computer to get new features into the game
(currently we write code in these languages - C++, C#, Lua).
This is the thing we do the most
d)
Fixing the code that we have written. We often have to go back
and revisit our code because it may have 'bugs' or not be
working as the game designer expected. We do this a lot right
before a game is finished
e)
Scheduling - we are often given lots of things to do at one
time, and we have to make sure to work on them in the right
order, and not spend too much time on them, so this is an
important step
f)
Interviewing new programmers
g)
Working with artists - sometimes we need to work with artists to
get their art/ animations into the game
Q:
What was your first job in the games industry, and how did you
get to where you are now?
My career began at Electronic Arts Canada as a junior
programmer. I got the job straight out of a computer gaming
program here in Vancouver (called Digipen). I had only learned
how to program games six months earlier and now I was getting my
first job - looking back I was very lucky! Nowadays, the level
of experience required for entry levels job is much higher and
most often require a degree which I did not have. At EAC, my
first game was a racing game called Need For Speed. I was
responsible for helping out writing tools for the artists and
doing odd jobs. Over the four years I was at EAC, I worked on
many games (mostly the Need For Speed games), and worked on
everything from tools, graphics, user interface and game play.
With all of this knowledge I made the jump to Relic
Entertainment to work on games that didn't involve racing or
cars, and moved onto much more imaginative games - Homeworld and
Impossible Creatures.
Now I've been at Relic/THQ for over six great years and I am
still working on my favourite type of games (strategy games).
Q:
What made you decide you wanted to want to work in the games
industry? Why did you choose programming?
I got into games at a very early age and fell for them hard -
they consumed my every waking hour. When I wasn't playing one, I
was trying to create one, and since I didn't know a thing about
programming at the time, I ended up making board games and role
playing games instead. So I know I wanted to make games, the
only obstacle I had was figuring how to get into it. I first
started out as an artist, I drew comic books and did all the art
for all my early games, but I lacked patience, so my pencil was
quickly replaced with a computer and some programming books.
Almost immediately I found out this my thing! I loved problem
solving, math and trying to figure out how to type in odd
looking sentences into a computer to make it do my bidding. So
now that I knew what aspect of game making I really enjoyed, it
was only a matter of time before I fought my way to being a game
programmer.
Q:
What's the best thing about your job?
The best part of my job is seeing the code that I write be
converted into something fun! The smallest amount of programming
can make such a huge difference. There's nothing quite as
satisfying as adding a new feature to the game and seeing
everyone enjoying it.
In addition to this, I have so much creative freedom. Even
though I'm not a designer, I still work closely with them to
help determine how the game should play. It’s also challenging
which keeps me on my toes. Games are getting bigger and more
complicated every year so a programmer has to really keep up on
the latest technology, so this involves constant learning which
I also enjoy.
And lastly, I love to play games, and part of my job is to play
all types of games for 'research'!
Q:
What qualifications and/or experience does someone need to
follow a career in programming?
To be a game programmer takes many different skills but in my
opinion the most important is a strong understanding, or even
better, a love of math. There isn't a day that goes by that I
don't have to solve some type of math or logic problem. So if
you like numbers, game programming will have lots of these for
you to play with.
Getting a university or college degree is a huge bonus - I don't
believe I've hired someone without one for quite some time, the
only exception is someone like myself who has been doing this
for 10+ years. Another thing I look for is someone who is really
motivated to learn more and really excited to make great games -
this goes such a long way.
Q:
What advice would you give to a young person who wanted to get
involved in programming in the games industry?
To get into games as a programmer, or any job for that matter,
the best thing you can do is research the job you're interested
in as much as possible. This would include reading related
articles, books, online forums and magazines in an effort to
really determine what are the key skills required for the job.
The main reason to do this is because the specific requirements
for the jobs in our industry are changing all of the time.
Other things that could really help:
a)
Get a degree, it’s harder to get a job without one nowadays,
unless you have lots of experience
b)
Try making a full game by yourself
c)
Work your way up - start as a game tester
d)
Go to a game programming school - there are tons of these now
|