|

Robert Huebner

Vampire: The Masquerade
- Redemption
|
Robert
Huebner
Director of Technology, Nihilistic
Software
Current project:
Current project
unannounced, last title Vampire: The Masquerade. I work with a team of
4 other programmers to design and implement the engine, game, and related
tools for our current console project.
Academic Info
College:
Purdue University, starting in 1988, in beautiful West Lafayette,
Indiana. Go Boilers!
Degree: Bachelor of Science in Computer Science
Were there any particular projects or areas of study that you pursued?
Graphics, digital electronics, and general computer science.
Did you do any
internships?
Yes. I interned for several semesters with a defense contractor in Los
Angeles called "The Aerospace Corporation" where we did computer
security analyses for the government, finding ways to break into secure
Unix systems, it was a lot of fun.
Career Info
Tell us about
your first job in the industry. How did you get the job? What was it like?
What were your responsibilities?
My first job was with a company called Convex Computer in Dallas Texas.
They made high-end supercomputers, kind of like Cray. Our product was
actually a supercomputer made up of a bunch of RISC processors all sharing
the same memory and working in parallel. My job was to help create the
software that allowed the machine to solve problems in parallel with all
the CPUs using networking protocols.
What jobs have
you held in the games industry thus far? Briefly describe the career path
you took to get where you are today.
While living in Dallas, I met some friends who worked at some of the videogame
companies there, particularly the guys working on Duke Nukem 3D. At that
time, literally years before it actually shipped, it was just 5 guys working
in an office below Apogee (before they renamed to 3D Realms even). That
was my first taste of game development and I was hooked.
Since most of my experience
at work was with networking, when I saw a job posting looking for a network
game programmer (this is before anyone was really making network games
for the PC) I jumped at it. At first I thought I'd be working for Interplay,
but as soon as I got there, the producer for Descent needed someone to
fly out to Illinois to work on adding multiplayer code to the original
DOS-based Descent game. So my first year at Interplay was spent 95% of
the time living out of a rented apartment in Champaign, Illinois. The
team atmosphere at Parallax was great, there were maybe 8 people or so
working in an office behind a bank branch, one cramped room, and I learned
volumes from the guys there. When Descent shipped I went back to Interplay
and then eventually moved onto LucasArts, Blizzard, and now co-founding
a company of our own.
Advice
What fields
of study, specific courses, or life experiences would you recommend to
students interested in your field?
When I was in school, it required extra effort to find courses that were
related to game development. At the time, they taught incoming students
Pascal and Fortran first. The reason I originally took a course in C was
so I could learn how to modify the code for a Multi-User Dungeon I was
playing on when I should have been studying. Its surprising how many other
game developers I've met were into MUDs in college, but I'm not sure I
would recommend it, they were very addictive, kind of like some people
with EverQuest now.
But definitely taking
C helped a lot, as did courses in data structures and algorithms. I actually
find that the most important stuff I learned in school had to do with
basic data structure theory, a game engine is really only as good as its
structure and class design. The graphics stuff was good too, but a lot
of it could be self-learned as well just by picking up the OpenGL Red
Book or something. But some algorithms and data structures stuff you really
had to experiment with to "get it", so school helped a lot there.
And also learning something about the lower-level digital electronics
by taking a lot of electrical engineering courses helped - its good to
understand how code actually is executed on the hardware to really write
stuff that's efficient. Compiler design was awesome too, the Dragon Book!
Is there anything
you wish someone had told you before you got into the games industry?
Is there anything you would have done differently?
When I first graduated from school, I didn't think getting into games
was really a possibility, I assumed it was really hard, so I went through
the usual placement-center interviews and ended up with a big company
not involved in games. While that was fun and I learned a lot, it might
have been more efficient to jump right into games directly from college.
So I guess I wish someone had told me that its really not that hard to
get an entry-level job on a game team with a little self-study and some
good demos.
As games increase
in complexity, what are the various kinds of jobs that you foresee development
companies needing in the next five years?
On the tech side, we're already getting more specialized. For the first
time, we've got one programmer generally focused on effects and UI, for
instance. We also have programmers dedicated mainly to tools, but we did
that in the past also. Tools often get overlooked, but they're incredibly
important to making the final game look good and get done (roughly) on
time. Bad tools have killed many projects. I think in the future we could
end up with even larger programming teams, and maybe one person doing
only AI, or only networking, and so on. We also have a lot of "scripting"
in our games, so it's unclear whether those people are level designers,
or programmers, or a bit of each. Even artists these days do a lot of
programming with MEL script and all that. About the only thing I know
for sure is that our programmers will never touch the art!
Do you have
any other advice or recommendations to share with students who are interested
in doing what you do?
I think to do well in this, you have to really push yourself, especially
in school. Its pretty easy to glide through and get a CS degree, but in
order to come out of school ready to work on games, you probably need
to do a lot of self-directed reading and learning in addition to classwork.
That means participating in mailing lists, going to conferences, reading
books, everything. And of course working on demo code even before graduation
so you've got something to show people. And I'd say don't ignore the classic
CS stuff to just focus on graphics, because graphics are not the bulk
of what we do. It's the data structures, algorithms, and architecture
stuff that really separates a good game from a good graphics demo, so
a well-balanced approach is best, a team only needs one (maybe two) hardcore
graphics guys, but we need lots of people who can just plain code well.
|