Are games the most challenging / impressive apps?

I was thinking today about what might be the most complex / impressive application ever written. Therefore, I began to think about what I feel comfortable with and use daily databases.

Then I entered a field of unknown (for most of us, I think) government. I can only imagine the complexity of NASA applications that allow them to communicate with rovers on Mars.

But then I started thinking about what I use every day, since I was a child, playing games. Not being a game developer, it drew to my imagination a huge number of questions about AI and computational complexity that surpass anything I can think of.

Are games the most challenging / impressive apps?

+44
complexity-theory artificial-intelligence
Feb 14 '09 at 2:18
source share
30 answers

Short answer: None.

Long answer: Games are actually not that complicated. It depends on what you say when you say “games”, but two contenders for the most complex games are 3D games and online games (especially mass online games).

Complication in 3D games comes from taking a model of the world and rendering it in 3D and in order to behave “realistically” (within the rules of the world). Creating a visual and sound environment from this is actually not that difficult. This is almost all linear algebra and is a mature field of computer science.

The real trick is to do this process in real time. Over the years, game programmers have had to make many trade-offs between realism and performance (for example, if you can create a performance algorithm that will generate realistic trees that actually cost a lot of money). Thus, games over the years have become better (visually) as computing and graphics power have increased.

Now, some programmers have made real innovations in this area that (rightfully) earned them a lot of money. John Carmack (id Software: Doom and Quake) and Tim Sweeney (Unreal) spring to think.

The real value, however, in creating games is content. Just look at the credits for the modern FPS game (first-person shooter), and you usually see only 6 programmers, but there will be 30-50 + artists. Content is not complicated (from a software point of view). It will take a lot of time.

As for online games, I remember when Everquest came out and people raved about how much it was. Bzzzt, wrong. For those (like me) who were familiar with the development of MUDs (mutli-user dungeons) through the 90s (and possibly 80s), the Everquest server wasn’t so complicated in architecture.

The same goes for World of Warcraft or any of these games.

If you want to talk about a difficult state, what about the Windows XP operating system, does it all work, which estimates 40 million lines of code ? God knows how much Vista has. Or what about the Linux kernel?

Now in the government, in the military and private sectors, you will find other applications in which literally thousands of man-years are invested.

+49
Feb 14 '09 at 2:34
source share

Air traffic control systems are fault tolerant, safety critical, high availability and distribution. There is no downtime, the system should work 24 hours a day, 365 days a year, even during system updates. In fact, there is nothing terribly computationally complex (for example, there is no AI because you want the system to be predictable), but from a system point of view, there is not much else on this level. Even space mission software should only work as long as the mission is performing.

+41
Feb 14 '09 at 2:41
source share

I worked a bit on the code for one of NASA's ground stations. Systematic work is the electronic tracking and control of all NASA satellites. This may not seem very big, but if the system crashes when you are in the middle of a satellite mission, you can send billions of dollars of taxpayers spinning in the sun. Thus, the fault tolerance and redundancy built into this installation will make Blizzard jealous. IIRC, somewhere in the region of 50 servers, the most important of which have a hot stock, ready to take on less than a second if the primary failure. Each of these systems, in turn, has an excess pair of systems ready to take over if both fail. I have yet to see any game complex (or impressive, in its own way).

Each of these ground stations interacts with each other in real time (both in electronic and in human interaction), along with all the satellites themselves, of course, and the shuttle when it is there, and various ground terminals that process orbital data, and thus, can be considered particles of an even larger and more complex system, which NASA calls TDRSS . Here is a very conceptual diagram I found online :

alt text

The White Sands Complex is physically located in southern New Mexico, near Los Cruz. As you can see inside your unit, there are three whole ground terminals, such as the one I described, all connected together with the satellites. In addition, there are two more remote ones (I'm not sure where they are).

+24
Feb 27 '09 at 19:17
source share

Games, of course, cover a very wide computing technology: from hardware optimization to databases, AI, advanced mathematical solutions, you name it.

It is difficult to establish a criterion of complexity; I am not sure that it actually exists. If you think about it, things that are trivial for us were very difficult tasks to solve just a few years ago, so complexity is a moving goal, and we all build on it.

If we were to analyze what was involved in simply reading your question, then the huge problems that need to be solved are overwhelming: imagine the complexity of the software that was used to make the electronic components for your machine, my machine, and all the other machines between them.
Imagine the complexity of getting computers to reliably transmit information to each other.
Imagine that you need the OS to manage all this equipment, so that browsers develop to such an extent that they can display complex layout information on the screen ...
All this stuns me.

You can point to a particularly complex application, but if you think about it, there is probably always one more that looks quite simple on the surface, but can be considered even more complex when you take everything into account.

+10
Feb 14 '09 at 2:32
source share

I would say no.

Modern games are certainly impressive, although their software and hardware technology is significantly behind the modern level in academia, industry and the military. In the end, they are designed to work on fairly common home equipment. I am sure that the military is training their people in more realistic simulations.

From a computational point of view, games are also not interesting. Modern games (for example, Fallout 3, GTA4) certainly seem amazing because of their “open world” and extremely long history, but this has nothing to do with technology, but rather with production value. Popular games now require more actors and investments than some Hollywood movies. So, you have a model of New York, not a block, but what?

Even MMORPGS are not so impressive. Yes, they have many interacting agents. However, enterprise applications, which include automated agents, have more agents, are faster, and have higher reliability requirements.

Finally, I would say that, with the exception of advanced algorithms that are tested using games such as chess, since they serve as landmarks, the AI ​​game is not so advanced. Again, the military (and financial companies) have much more reasonable applications.

+7
Feb 14 '09 at 2:46
source share

Games are not so impressive in terms of complexity. I guess you were thinking of FPS-style games, which are definitely wow with their graphics capabilities. As for the calculations, they certainly do a lot, but basically it's just a lot of tried and tested algorithms working on an ever-growing number of polygons and texture maps with higher resolution.

Simulating the physical environment is not so difficult; if you want the environment to obey the known laws of physics, because most of this material is somewhat understandable and understandable.

Mars rover missions are an impressive feat. There is no dynamic memory allocation, debugging code during its launch, on Mars and downloading bug fixes on the fly. From the point of view of reliability, I would say that I am close to taking a cake.

+6
Feb 14 '09 at 4:34
source share

Take a look at some of the physics applications developed by the Department of Energy :

There are applications:

These are some of the most complex computational problems that exist, and millions of hours of processor are devoted to them every year in various supercomputer centers . These are very parallel codes, and understanding physics and its effective display in networks and processors (for example, with MPI ) is extremely difficult.

Machines with millions of cores are expected by 2012 to do some of these things.

+6
Feb 27 '09 at 19:31
source share

I will tell you what, in my opinion, is the most unique in game programs, and what makes them perhaps the most impressive for me ... how errors affect the overall production. If you have an error, say, Outlook (hah), there are several different ways to solve the problem (I'm going to simplify here):

  • Correct the error.
  • Give the user a workaround if there is another way to accomplish the same thing.
  • Just leave the mistake as it is, go with it and don't worry about it.

In most games, especially in multiplayer mode, you often do not have option # 2 or # 3. Players are looking for ways to use the games, so if you leave a mistake that can be used, it will be. Thus, error tolerance in games is actually much lower than in most business / productivity programs due to abusive potential.

For me, this is one of the main things that makes a large, complex gaming system, such as WoW or Everquest, really impressive. The lengths by which people will abuse any loopholes in the game are quite amazing and very well documented. This contrasts very sharply with products such as Photoshop or office software, where as long as there is some way to accomplish what you need to do, the fact that some of the other workflows may be broken is not necessary is a critical flaw. At least the potential can be ignorant. This is simply not the luxury that game developers have.

Now ... compared to things like Air Traffic Control or Airbus flight software, there are no such life restrictions on the line anywhere in games ... which is a whole class of problems.

+5
Feb 27 '09 at 18:32
source share

I disagree with any of the answers already here, but it is very interesting to me that when people think about the "complexity of games", they think about GTA or MMORG. I think about the duel and about chess.

Popular games can be computationally intensive with lots of graphics, but this is not HARD per se. On the other hand, on the other hand, it is a calculation based problem.

Also, if you accept the technical definition of complexity, this is not a subjective matter.

+5
Mar 16 '09 at 14:13
source share

I don’t know how you want to choose “complexity” or “impressive”, but some software that you may have on your desktop (for example, Office or Visual Studio) is probably more “complex” than any video game, by most measures.

(I think VS these days is like 50 million lines of code, although I'm not necessarily a reliable resource here.)

+3
Feb 14 '09 at 2:36
source share

No, the games are not that special. Of course, like any other major programming project, there are a huge number of conflicting goals and many compromises, but in the end, games have the advantage that there are very few requirements. If you are writing a database, it must fulfill ACID properties. It should not lose data, no matter when and how you push the plug on it. If you write an OS, something like that applies, it should be resistant to stone no matter what you do with it. The game should also meet many expectations, but very few of them are absolutely necessary. This is normal to fake most graphic effects. It is normal to fake world modeling in areas that the player is not observing.

And this is not the end of the world if your game crashes from time to time. Yes, big games with AAA are complicated, but they are not the most complex applications. Not far away.

Game development covers a wide range of skills and technologies, of course, but they also have more freedom of action, and they are allowed to compromise on most requirements. This is normal if we can only achieve this frame rate on this equipment. This is normal if we need to turn soft shadows off for better performance. It's normal that AI is faked based on "what looks convincing."

Creating a big game with a high budget is a huge deal, no doubt. And it is possible that this is the most complex type of application, if we consider it in terms of the breadth of technology, professions and skills associated with its creation. But programming, either in terms of computational complexity or something like that, no, that's not all that is special.

+3
Feb 14 '09 at 4:04
source share

I am really surprised that no one mentioned the dwarf fortress :

The dwarf fortress is actually impressive. he may lack brilliant graphics, but he does a lot of impressive things in the generation and simulation of the open world.
+3
Jul 01 '09 at 9:14
source share

I think there are interesting examples of "impressive" code in the gaming world. A place to look is games for fixed equipment such as game consoles and old home computing platforms. Search software is the names that came out at the end of the life of these platforms.

For example, Elite at BBC Micro scored a three-dimensional space combat game, a market simulation and a 32 KB map of the entire universe. Later, the same game was crowded on NES. This feat includes manual optimized assembly language coding, in which spending a day to shave off bytes was considered appropriate.

You can find similar impressive work on all 8 and 16-bit platforms. Also look at the sound and graphic demos on the Amiga scene.

The driver for all this is that you could not just solve the problem with a lot of hardware. Consumers could not upgrade equipment and demanded increasingly complex games.

In addition, these games are impressive because they were written for devices that were not originally intended for games. Something as simple as "smooth scrolling in 8 directions" was considered the main feature of the game, because the hardware did not support it directly, and programmers had to be really smart in order to achieve this.

It is possible that these days are over. Maybe someone will push the PS3 or Xbox360 to something incomprehensible, but it seems that you can sell games without pushing this equipment, all this is difficult, so the commercial pressure on it is not so great. All you have are minor improvements in graphic quality, in larger environments, or in more detailed environments.

Still even hand held devices are too powerful to induce impressive low-level coding. You do not need to beat bits to write a 3D game on a modern phone.

So, look for other places where equipment is limited. A good example is the Mars Rover.

+2
Mar 16 '09 at 14:39
source share

It really depends on how we measure complexity, what aspects we look at. These days there are many impressive technologies that video games provide.

I think some of you might like the following: John Carmack at NASA accepts the first prize for his work at the lunar landing facility.

John Carmack (Armadillo Aerospace) at NASA Headquarters

According to Carmack, the feat was simple:

The work that I do in video games is actually much more difficult then aerospace work.

+2
Aug 09 2018-11-11T00:
source share

It depends on what you mean by complexity.

From the point of view of the algorithm and from the point of view of low-level optimization, and, of course, from the mathematical point of view, then, of course, games are more complex than VS or the operating system.

Although in terms of code size, in terms of the interaction of many different components and the need to support (and debug) many configuration permutations, I would say that the OS is more complicated.

+1
Feb 14 '09 at 3:44
source share

Up to the head, I would say that the following applications all involve a much more complex code and a much lower level code than the average game:

  • 3D Studio MAX
  • Software used to model physics and crashes in automotive design
  • Meteorological software used to simulate weather and create forecasts.
  • High Performance OCR Software
+1
Feb 27 '09 at 19:42
source share

If you turn on massive online games, I would say yes. They will need to use whatever the large-scale system requires (distributed system, coordination of these systems, large amounts of data, transactions / reliability to ensure that inventory remains correct, etc.), with very stringent performance requirements (EVE Online is the main one I think).

Perhaps not the most impressive AI. I have yet to face AI in a game that cannot be figured out in a couple of days.

0
Feb 14 '09 at 2:29
source share

No.

If we consider all software as “applications,” I would say that operating systems (for the OS, not applications, but, well, systems)

0
Feb 14 '09 at 4:21
source share

One example: at one point, Outlook interacted with 10 million lines of code. No sane game developer will come close to this, since he will never work fast enough.

0
Feb 14 '09 at 17:14
source share

If you turn on the development process, the games are definitely there.

0
Feb 27 '09 at 19:37
source share

I would think that engines that run on top of applications will be complex. Probably not many lines (for example, the OS), but very complicated, since he would have to process all the elements and scripts that the developer would have to throw on him AND work optimally.

Since you are talking about games, many game developers buy engines and write about it. Some of these engines are written so openly that they are used for several applications that look and feel completely different.

0
Feb 27 '09 at 19:41
source share

There are many risk management softwares (and other software based on statistical analysis) that are more impressive to me. Its “one thing to create a fake world (impressive in its own right), but to try to predict what the real world is going to make is much more difficult.

0
Feb 27 '09 at 19:42
source share

I think the programs that somehow control the real world are impressive, especially if they run some big system.

  • Steering computers in the Gripen Fighter , which is an aerodynamically unstable plane at subsonic speeds. The task of computers is to make it stable and to use unstable forces in order to be able to increase productivity.

  • My friend works at Jeppesen with an airline crew planning system for major airlines. He must adopt different rules of work for different countries and manage the crew schedule so that, I hope, they continue and carry their shifts close to home. Pretty impressive, I think ...

0
Feb 27 '09 at 19:50
source share

Someone mentioned air traffic control software - I'm sure it is incredibly sophisticated and reliable, but for me it was a global airline ticket system - amadeus, I think it's called.

With hundreds of thousands of flights and destinations and pricing options, it is simply unbelievable that it can handle real-time requests mainly around the world.

I wrote some software that calculated hotel room prices. It wasn’t for a big chain or anything else, just one hotel - not that big. and the code that took all the different variables and rules and returned the price was ... huge and quite complicated.

To scale it to all flights operating now and in the future, it should be, in my opinion, the most difficult thing.

0
Jun 19 '09 at 13:47
source share

Are games the most challenging / impressive apps?

Complex? No

Impressive? It depends. There are many impressive experiences.

For example, with failure and correctness, it probably encodes medical or aerospace applications.

In scalability, I would say Google or Amazon.

But the fact that the games are superior, gets great performance from the available equipment. Other applications usually have a point at which you have enough hardware power to not worry about this, but in games you can always improve rendering, improve AI, etc. Thus, performance will be a priority for the foreseeable future. Games in this category are very impressive.

0
Jun 25 '09 at 14:03
source share

Short answer: Yes. Although I answer this question: "I was thinking today about what might be the most complex / impressive application ever written." but not most challenging / impressive.

Imagine you are trying to develop a game that modeled the entire universe and allowed you to play with it [x] super powers. Effectively, you can turn the game into a simulation of ANY complexity, up to as complex as any known physics, and then throw non-physics into the mix! Video games, by their very nature, can be as simple or complex as you want to do it.

In my opinion, the beauty of the development of games. You can create a world for any level of detail you want. Everything that you can imagine, you could turn into a game. In theory.

0
Dec 16 '09 at 20:58
source share

Besides some of the great suggestions given above, I would like to point out that Uniview is impressive.

0
Jul 23 '10 at 12:48
source share

They are complicated, yes. They are very impressive, yes.

But there are systems that are comparable to games. Database managers are very complex and impressive. Mathematica is another nice piece of SW. There are many examples. Definitely some games up there, though.

0
Jul 23 '10 at 12:56
source share

As for the complex and “brilliant” code, I would say that you should look at the Loebner prize (sp?). This is a competition, each of which is designed to develop a learning machine for talking. This is a very complex and interesting project, the purpose of which is to write code that can conduct a conversation with a real person without being recognized by the machine.

There are many layers for this, linguistics, memory, grammar and syntax, self-programming. This is essentially a mini-AI, and if I get into the lotto, I would like to think that I will spend a lot of time on his work.

Who I am joking, I spent the whole day in the water park, drunk. But I kept thinking about it.

0
Jul 23 '10 at 13:58
source share

Most modern graphically oriented games, like programs, are not particularly impressive or complex (they can be complex games, but there are no concepts for programming them).

I find the natural language parser for some text games to be impressive.

The simplicity of the array in the data or in lines of code can be impressive, but any given character will soon be surpassed. Implementation complexity can be extreme (for example, the countless interaction of all the APIs Microsoft has invested in Windows over the years), but there is no basic need for all this complexity. What are the programs that have unobvious complexity?

-one
Feb 27 '09 at 23:07
source share



All Articles