A fascinating, frustrating, but rewarding industry to work in.
Some Wikizens in the industry include:
There are many ComputerScientistGamers
Computer Games Programming is a fascinating topic, but of course not everyone in the ComputerGamesIndustry
is a programmer! A typical team will consist of artists and game/level designers, as well as programmers. This creates its own challenges in communication, and EddieEdwards
wonders whether ExtremeProgramming
might be extended to deal with those communication problems, in addition to those it already addresses (programmer-programmer and programmer-customer). Him, CanisLupus
, and a few others are exploring the idea of ExtremeProgrammingForGames
Game development projects vary enormously:
- Team size: 1 - 100+
- Platforms: 1 - 4
- Duration: 1 - 24 months
- Legacy code: 0 - 100 KLOC
There are many different classes of game development project:
- blue sky: create a new genre of game
- green field: create an original game from scratch
- re-use: use existing code and assets to create a new game
- recovery: finish a partially completed project
- straight conversion: take existing code and assets and port to a new platform
- conversion+: like a straight conversion but with additional content
- shrink to fit: like a straight conversion but reduced to fit a more limited platform
Many projects are also complex combinations of the above.
Games also have a wide range of interested parties:
- the developers themselves
- external development teams
- hardware manufacturers
- the buying public
- the press
- the players
Pitfall programmer David Crane said at Classic Gaming Expo '02, that people often ask him what his advice about getting into the video game industry his. His advice is: don't. Game programmers today have almost no creative input, and the system is becoming more like Hollywood every day. This is a contrast to his days at Activision, where he would spend six months coding a game, then give it to the marketing department and see what they could do with it. --NickBensema
I'm a programmer, not a creative person. I like doing game development. If I were a creative person I still might like to get into the games biz, but I probably wouldn't go in as a programmer. I don't see this as a downside; I believe that programmers should do as they're told and just put together great software. It's cool writing software that other programmers use when they go home, and there's ph4t l3wt to be had in the biz as well. --TomPlunket
Unfortunately the days of one or two man teams programming million selling games in a bedroom are long gone. The average game now costs millions of dollars/pounds/euros/zlotys to develop, with team sizes running into the hundreds. Having said that, those programmers who cut their teeth writing 16-bit assembler may find that their skills are not quite obsolete yet: all kinds of devices (mobile phones being the most obvious) are now equipped with video displays, and powered by 16bit CPUs. In other words, crying out to have games written for them! David Crane may well long for the 'good old days', but I'd still rather work in the games industry than in a bank. -- JayBell
You'll find on inspection that most games in the top ten list could have been created by ten people and a few good topical RPG books (GURPS is an excellent resource.) The real problem is that people making commentary about games never seem to look past the quake clones, when the real dollars are being pulled in by The Sims, Diablo, Roller Coaster Tycoon, et cetera.
As far as RCT being mostly ASM, I'm not sure where you got that idea. It's largely C++. It's also very bad code; there's no reason for it to be as slow as it is. (Mind you, it's a brilliant game design; I have similar feelings about Civilization 3. Like it's so much to ask for these multimillion dolar budget games to get a database cowboy. Yeesh.)
TBH, I'm an old-hand gamer who comes from the C++ efficiency-conscious mindset. I find most game engines embarrassing. Most games are far, far less efficient than they should be. Civ3 isn't *that* much data crunching; it's a few thousand "cities", each with a couple of dozen interconnected statistics. Give me two weeks and a decent SQL backend and I'll have it humming on a P1. I simply refuse to believe that a couple of hundred AI tactics should be slowing down my box, which is a 2+gHz Athlon with over a gigabyte of available RAM. It's just silly.
Then again, I write strategy games for the GameBoy?
for a hobby.
Hmm thanks for taking me down memory lane. I was surprised to find that my old creation XenoCide?
still ran under xp (it was written well before the windows days). Aw the good old days of writing graphics all in assembly, no fancy libraries... Just what you wrote to video memory yourself. Sigh... -- SvenNeumann
Roller Coaster Tycoon, which was one of the top ten selling PC games for more than a year, was mostly designed and programmed by one person, Chris Sawyer. I believe he wrote it mostly in assembly. --AmitPatel
(It also doesn't work in any recent version of Windows XP+. The only solution is to install a virtual machine of 98.)
On the other hand, that's an extremely rare case.
I just finished a game, written in BlitzBasic
and C. You can download the public demo at http://zenji3d.workerbee.com
. I used to write games in Z80/6510/68000 assembly and let me tell you, BlitzBasic
is much nicer. The Zenji 3D team was only three "full time" resources: one programmer, one artist, and one musician. This particular game took about three months to finish. I'm currently planning out our next few games and it looks like we can make about three a year if they're at the same complexity level of Zenji 3D. While we probably never will make the next Doom, I love game development and don't think I'll ever stop.
I also recently got hooked on Dragon BASIC for the GameBoy?
Advance. Another truly amazing compiler that makes writing games for my favorite "console" a piece of cake. -- JeffPanici (Is ther a free program to make games on GameBoyColor??)
I have a couple perspectives on game programming which I wanted to share here. First of all, in my day to day job, most of what I do is porting games to MacOsx
. I've seen a lot of big titles go by, and there are a couple of common threads I see. One is that game programmers DoTheSimplestThingThatCouldPossiblyWork
in many cases. There are far, far less "general" cases in games- that is, a code path will handle a specific input, and nothing other, and it doesn't matter if it doesn't handle or even notice other cases. I also think that games have the advantage of both being developed on an obscene schedule AND having a solid goal (that is, the game is fun) so it's easiest to just hack stuff through.
That said, I get the short end of the stick on that. When I have to rewrite large quantities of the code to use a MacOsx
API or such, it's really hard. Because it's just designed to handle the nuance of DirectX, I end up rewriting significant parts of the game to make them work right. That's ignoring the rare careful people who come along.
The second thing that I wanted to contribute is that I think there's still a market for indie games. What people lament is the "good old days"- when there were small, 5-30 person companies making oodles of money making games. There are still a couple houses like that- id Software comes to mind. However, most of the industry belongs to the big players, Electronic Arts and the like. Oh well. It'll be like movies then- you can do it small, but only if you love it and are willing to not be rich. Or, perhaps, you can sell out and slave away and it'll be like anything else.
Huge numbers of high schoolers are StudyingComputers?
so they can GoIntoGames?
. Do they realize they will be worked to death for 3 to 5 years and then kicked to the curb with no other viable professional skills?
I like to think that video game programmers are the rocket scientists of software development. We've got to develop on cutting-edge hardware crippled by slow persistent storage and not enough memory, where everything that needs to happen needs to happen in 16.6ms. There are a lot of professional skills involved, since after all it's pretty much just realtime database programming with a fancy UI.
I find it interesting how the world has changed since most of this article has been written. There is a growing group of concerned games who are shunning DigitalRightsManagement
and making themselves heard. IndieGames?
are experiencing a major revival (2010), and teams of 2 or 3 are pretty common. Don't think that many of them use ExtremeProgrammingForGames