Vol.
2, Issue 8
January 10, 2000
his
document is NOT about games design, neither is it a forum to discuss
what's good and what's not in video game design. What this lecture
IS about is how a video game is implemented. Mostly it will draw
upon my PC experience, most specifically with the Quake
engines - I'm sure we all know what Quake is and how it
is contributing to the decline of western civilization and making
us all damn good shots with a grenade launcher. At the end of
this document there will be a little bit on how development for
the PC is different from Arcade game and Console development.
After that, I'll talk about how to get into the games industry
a bit, and then we'll talk about perks of the trade. If I'm too
technical in this article I apologize. It's designed for those
that have little or no experience, just lots of interest And if
I'm not technical enough, well email me and I'll be happy to go
into more detail :)
Who
I am
My name
is Jake Simpson, and I work for Raven
Software. Ive been in the games industry for the past
10 or so years, on and off. I started off back home in Blighty
working on games for the Commodore 64 home computer, on games
like Archon, a couple of machine ports of games, and a James Bond
game. Im just trying to decide if most of you here were
even born when that was around. From there I worked on Amiga games
and then got badly burnt by a publishing house in England, so
I knocked it on the head for a few years and went off and did
corporate computing. Man, was that ever boring. I hate wearing
a suit. Then, when I came to the country of McDonalds and rollerblading,
I was fortunate enough to land a position at Midway Games, famous
for Mortal Kombat and NBA JAM. I worked on several
games there, which included Mortal Kombat 3, NBA JAM,
WWF Wrestlemania and Revolution X. After 6 years
there, I moved on to PC work with Raven, where I am now. If you
want to contact me, feel free, my email is jsimpson@ravensoft.com.
Who
I work for
I work
right now for Raven Software, which produces primarily PC games,
using id technology as its basis. Effectively, what we do is take
the games that id makes, like Quake for instance, strip
down the game engine technology, then build a new game, adding
substantially to the base that Id has provided to create something
new. It sounds like a cop out, but when you work out how long
it takes to build a stable game engine from scratch, it does save
a lot of time.
General
Notes on Game development.
Gone are
the days of two kids making a hit game in someones bedroom
over 6 months. These days there are so many disciplines in a game
development process that it takes a team of people usually at
least a year to create something worthwhile. For todays
3D games, you need a texture artist, a 3D modeler, a 3D animator,
programmers (obviously) with areas of expertise, like networking,
rendering, math, physics etc. And mainly you need someone in control
of the whole thing. Then you need the support staff, someone to
handle the network, someone to handle the web page, a publisher,
marketing, equipment to develop on... and mostly money to pay
for it all. Usually a game would take at least a year to produce,
without developing new technology for it, or spending much time
on Research and development. If you add that in, then development
tends to mushroom out to 18 months to 2 years. There are some
games that have been in development for over three years as we
speak here now.
Generally
most code is written in either C or C++, in a modular fashion,
with as much black boxing as we can do. This makes modules portable,
and also makes for better compartmentalization of programmers.
Heavily used routines (for instance vector routines) get put into
a separate file for ease of optimization later. Often well
spend time going through these routines and hand convert them
into assembly for faster processing, although to be honest its
getting harder to beat the compiler these days and I think with
processors getting much more complicated, with bigger instruction
pipelines and more complex code organization this practice will
die out soon.
So lets
get to the juice of the matter, the building blocks of todays
games.