I'd love to hear more about your AI - what sorts of things you had to work
on...
Getting Up is the largest game I've worked on. It's about 20 million
lines of code with about 50 people working on it.
As a result, most of what I did was read code and fix bugs written by my
predecessor or in other systems. This is unavoidable when you have that
much code and that many people. Nobody understands an entire system and
not a single person who wrote any of the original systems still works at
the company, which is not unusual in large companies.
Getting Up has a lot of what we call "Special Navigation" in it, such as
climbing ladders, going across balance beams, climbing walls. A lot of
my time was spent working out how to get through these things, which can
be very complicated in some cases. For example, we support jumping from
a ladder to a pipe to a balance beam to balancing up to a wall climb.
Every one of these situations needs custom code.
Special navigation relies on physics for correctly detecting the
navigation, level design for correctly implementing the meshes and
pathnodes, and script for correctly interpreting AI commands. Because
of the high degree of interdependency I had to know all of those systems
well enough to debug any of them.
I think when most people think of AI they think of the visible parts of
what you see in the game, such as which attacks enemies throw and when
they block. But actually that is mostly script. The AI programmer
provides the framework and it's up to others to provide the details that
the player sees.
The AI programmer is very important because he deals with many systems
and is the go-to man when people have problems. But the job isn't all
that exciting, or at least not for me. Mostly I just fix bugs and tell
level designers or scripters what they did wrong when something doesn't
work.