Are games the most complex / impressive applications? [closed]

Solution 1:

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.

Solution 2:

Air traffic control systems are fault tolerant, safety critical, high availability, and distributed. There is no downtime ever, the system must run 24 hours a day, 365 days a year, even during system upgrades. There isn't really anything that is terribly computationally complex (no AI for example, because you want the system to be predictable), but from a system standpoint there isn't much else that has to run at that level. Even space mission software only needs to run as long as the mission does.