Are games the most complex / impressive applications?

Luca Matteis picture Luca Matteis · Feb 14, 2009 · Viewed 11.8k times · Source

I was thinking today about what could be the most complex / impressive application ever written. So I started thinking of what I am comfortable with and use everyday, databases.

Then I went into the field of the unknown (to most of us I guess), the government. I can only imagine the complexity of NASAs applications that allow them to communicate with the rovers on Mars.

But then I started thinking about stuff that I have been using everyday since I was a kid, games. Not being a game developer, this brought to my imagination a huge amount of questions about AI and computational complexity that goes above anything I can think of.

Are games the most complex / impressive applications?

Answer

cletus picture cletus · Feb 14, 2009

Short answer: No.

Long answer: Games actually aren't all that complicated. It depends on what you're talking about when you say "games" but the two contenders for most complex games would be 3D games and online games (particularly massively online games).

The complication in 3D games comes from taking a model of a world and rendering it in 3D and to have it behave in a "realistic" (within the rules of the world) way. Creating a visual and auditory environment from that isn't actually that hard. It's pretty much all linear algebra and is a mature field of computer science.

The real trick comes in making that process performant in real-time. Over the years game programmers have had to make a LOT of tradeoffs between realism and performance (eg if you can make a performance algorithm that'll generate realistic looking trees that's actually worth a lot of money). So games have naturally gotten better (visually) over the years as computing and graphics power has increased.

Now some game programmers have made real innovations in this field that have (rightly) earnt them a lot of money. John Carmack (id Software: Doom and Quake) and Tim Sweeney (Unreal) spring to mind.

The real cost however in making games is the content. Just go look at the credits for a modern FPS (first person shooter) game and you'll typically see as little as 6 programmers but there'll be 30-50+ artists. Content isn't complex (from a software point of view). It's just time consuming.

As for online games, I remember when Everquest came out and people raved about how hard it was. Bzzzt, wrong. For those (like myself) who were familiar with the development of MUDs (mutli-user dungeons) through the 90s (and possibly 80s), architecturally an Everquest server wasn't that complicated.

Same goes for World of Warcraft or any of these other games.

If you want to talk about complex, how about the Windows XP operating system these things run on which has an estimated 40 million lines of code? God knows how many Vista has. Or what about the Linux kernel?

Now in government, the military and the private sector you'll find other applications that have literally thousands of man years invested in them.