What do you do?
In a way what you do day-to-day depends on the stage
of development. If you are developing a whole raft of
new features, then people will get
assigned particular bits to work on. If you are in maintenance
mode, then you are generally fixing bugs.
As the game programmers discover bugs or as the testers
uncover problems then it will be up to you to fix them.
How did you get to where you are today?
I did a university course in Brisbane. Then I worked
in the IT industry for a while. I’ve always been
interested in games, and I was hacking away and developing
my own games in my spare time. Then I moved to Melbourne
and saw the Big Ant site and decided to apply. I sent
in some of the games I’d made in my spare time
and that was my pathway, I guess.
I did a bachelor of Information Technology at the University
of Queensland, which had a substantial component of
coding. It had other general IT things like databases
as well, but I was much more interested in the coding
side. That’s why I ended up in this sort of thing.
What skills are necessary for you
to do your job?
You need a good foundation in maths.
You need to know the hardware quite intimately, and
it’s limitations. I’m working on the play
station portable at the moment. You need to know how
it works and know how to optimize things for that hardware.
Different hardware will have different optimizations.
Typically the engine will be multi-platform so you have
the basic engine, and then the platform specific optimization,
and it requires knowledge of those systems.
You definitely need a lot of maths. You need physics
as well. A lot of engines will have a physics
engine as part of it. It depends how the game is broken
down. Sometimes the physics might be handled more on
the games side, but if you are using a proper physics
simulator then it’s definitely part of the engine
requirements. The maths comes into it for the sorting,
or to optimize your display, and that sort of thing,
These require mathematical principles.
To be an engine programmer, the programming
principles you need to know are the same for
general programming. The industry is mainly C++ so you
need to know C++ ( however, programming experience in
any language is useful as fundamentally most are quite
similar). Once you’ve got those skills, regardless
of where in games, you still need that basic 3D knowledge.
When you work in large teams you need to know how to
interact with people, and that’s
where having worked on team projects in University comes
in handy. It gives you valuable skills.
Writing skills also come into play,
as you might need to write a Technical Design Document.
It accompanies a GDD (Games Design Document) which is
part of the submission to the publishers. The two documents
work together. The GDDs are developed by the designers,
and the TDD (with all of the technical requirements)
are typically designed by the Engine programmers.
How important was your education/training?
To get to this position, you’d definitely have
to have some sort of tertiary education.
It teaches you some of the basic programming
principles. Even if it’s not a games
course in particular (mine for example wasn’t),
having that foundation is very important. If you are
completely self-taught, often there are fundamental
things that you don’t quite realize. I’ve
always just tried to learn as I go, but having some
formal teaching means that you can apply it in a way
that meets the standard.
The games industry moves very fast and reading and
listening to other people helps you to keep up to date
with it. You always need to make sure you understand
what’s going on in the industry.
Where do you see your career going?
I’ve been here about a year and half, and this
is my first games company.
At the moment I’m just hoping to pump out a few
titles and get something under my belt. Then maybe I’ll
look at the world-wide market and perhaps work in games
overseas one day. But at the moment I’m just focused
on getting a few games out.
If I wanted to climb the career ladder, it might be
managing a bigger team or bigger project, or going into
general studio management. But to be honest, I haven’t
really thought too much ahead. I just really want to
get a few games out first. I enjoy coding, so that’s
all I want to do at the moment.
What advice would you give to someone
wanting to enter the games industry?
Having a passion for games is the
number one thing – playing and making them. Making
games in your spare time or through a course is the
biggest thing to do. If you are learning at the same
time, say a university course, always be making games
and making demos. I guess when we are hiring
people, if someone has a bunch of demos that’s
a really key factor. We can actually see work that they’ve
done. Work on collaborative projects
with other people, probably for no money or just a small
amount, just to get your name out there and build some
contacts.
If you really want to get into engine programming,
you’d probably want to hand code
an engine, but having experience in any language helps.
There are a lot of ways you can build games without
getting into the really low level bits. Use pre-existing
3D Scene Graph. That’s a way of finding out how
3D scenes work and how you can make a 3D game. And then
later you might be placed in the position where you’re
the one that’s actually implementing something
similar for a specific game/platform.
I probably wouldn’t recommend diving right into
the low level code. You need to know how the high level
stuff first, so start with 3D Scene Graph and just make
a game using that. Alternatively, a valid (but harder)
low level approach is to grab OpenGL and its demos,
and start from there.
Being persistent definitely helps,
but if you’ve got the drive to do it that should
come naturally. |