47 Stimmen

Sind Spiele die komplexesten/beeindruckendsten Anwendungen?

Ich habe heute darüber nachgedacht, was die komplexeste/beeindruckendste Anwendung sein könnte, die je geschrieben wurde. Also habe ich mir überlegt, womit ich gut zurechtkomme und was ich täglich benutze, Datenbanken .

Dann begab ich mich auf das Feld des Unbekannten (für die meisten von uns, nehme ich an), die Regierung . Ich kann mir nur vorstellen, wie komplex die Anwendungen der NASA sind, mit denen sie mit den Rovern auf dem Mars kommunizieren können.

Aber dann habe ich über Dinge nachgedacht, die ich seit meiner Kindheit täglich benutze, Spiele . Da ich kein Spieleentwickler bin, stellte sich mir eine Vielzahl von Fragen zu KI und Computerkomplexität, die über alles hinausgehen, was ich mir vorstellen kann.

Sind Spiele die komplexesten/beeindruckendsten Anwendungen?

50voto

cletus Punkte 596503

Kurze Antwort: Nein.

Lange Antwort: Spiele sind eigentlich gar nicht so kompliziert. Es hängt davon ab, was man unter "Spielen" versteht, aber die beiden Anwärter auf den Titel "komplexeste Spiele" sind 3D-Spiele und Online-Spiele (insbesondere Massively Online Games).

Die Schwierigkeit bei 3D-Spielen besteht darin, ein Modell einer Welt zu nehmen und es in 3D zu rendern, damit es sich "realistisch" (innerhalb der Regeln der Welt) verhält. Daraus eine visuelle und auditive Umgebung zu schaffen, ist eigentlich gar nicht so schwer. Es besteht im Wesentlichen aus linearer Algebra und ist ein ausgereiftes Gebiet der Computerwissenschaft.

Die eigentliche Kunst besteht darin, diesen Prozess in Echtzeit durchzuführen. Im Laufe der Jahre mussten Spieleprogrammierer viele Kompromisse zwischen Realismus und Leistung eingehen (wenn man z. B. einen leistungsfähigen Algorithmus entwickeln kann, der realistisch aussehende Bäume erzeugt, ist das eine Menge Geld wert). Daher sind die Spiele im Laufe der Jahre natürlich immer besser geworden (visuell), da die Rechen- und Grafikleistung gestiegen ist.

Nun haben einige Spieleprogrammierer echte Innovationen in diesem Bereich geschaffen, die ihnen (zu Recht) viel Geld eingebracht haben. Ich denke da an John Carmack (id Software: Doom und Quake) und Tim Sweeney (Unreal).

Die wahren Kosten bei der Herstellung von Spielen sind jedoch die Inhalte. Schauen Sie sich den Abspann eines modernen FPS-Spiels (Ego-Shooter) an, und Sie werden in der Regel nur 6 Programmierer sehen, aber 30-50 und mehr Künstler. Inhalte sind nicht komplex (vom Standpunkt der Software aus gesehen). Er ist einfach nur zeitaufwändig.

Was Onlinespiele angeht, so erinnere ich mich an die Zeit, als Everquest herauskam und die Leute davon schwärmten, wie schwer es war. Bzzzt, falsch. Für diejenigen (wie mich), die mit der Entwicklung von MUDs (Mutli-User-Dungeons) in den 90er (und möglicherweise 80er) Jahren vertraut waren, war ein Everquest-Server architektonisch nicht so kompliziert.

Das Gleiche gilt für World of Warcraft oder eines dieser anderen Spiele.

Wenn Sie über Komplexität reden wollen, wie wäre es mit dem Betriebssystem Windows XP, auf dem diese Dinger laufen und das eine geschätzte 40 Millionen Codezeilen ? Gott weiß, wie viele Vista hat. Oder was ist mit dem Linux-Kernel?

In Behörden, beim Militär und in der Privatwirtschaft gibt es weitere Anwendungen, in die buchstäblich Tausende von Menschenjahren investiert wurden.

8 Stimmen

Das hängt wahrscheinlich von Ihrer Definition von komplex ab. Wenn Sie an Codezeilen wie in Windows denken, dann ist das für Sie in Ordnung, aber die beste künstliche Intelligenz hat noch viel mehr Komplexität vor sich.

1 Stimmen

Beachten Sie, dass es auch andere Optionen für die Definition von "Spielen" wie Schach und Go gibt...

0 Stimmen

Ja, aber Cehss und Go sind nicht furchtbar komplex zu implementieren, abgesehen vielleicht von einer anständigen KI, und selbst das läuft in der Regel auf rohe Gewalt hinaus.

42voto

Greg Hewgill Punkte 882617

Flugsicherungssysteme sind fehlertolerant, sicherheitskritisch, hochverfügbar und verteilt. Es gibt keine Ausfallzeiten, das System muss 24 Stunden am Tag, 365 Tage im Jahr laufen, sogar während System-Upgrades. Es gibt nicht wirklich etwas, das furchtbar ist rechnerisch komplex (z. B. keine künstliche Intelligenz, weil das System vorhersehbar sein soll), aber vom Standpunkt des Systems aus gesehen gibt es nicht viel, was auf dieser Ebene laufen muss. Selbst die Software für Weltraummissionen muss nur so lange laufen, wie die Mission läuft.

8 Stimmen

Ich glaube nicht, dass ich mit dem Druck umgehen könnte, an Flugsicherungssystemen zu arbeiten, geschweige denn, ein echter Fluglotse zu sein.

4 Stimmen

Ich schließe mich dieser Bemerkung an: Flugverkehrskontrollsysteme sind komplexer und beeindruckender als Spielsysteme (es sei denn, die einzige Messlatte für beeindruckend ist die Grafik).

5 Stimmen

Einige der gleichen Bedingungen gelten auch für andere sicherheitskritische Systeme, wie z. B. in Kraftwerken und Raffinerien sowie für einige medizinische Geräte.

25voto

T.E.D. Punkte 42630

Ich habe ein wenig am Code für eine der NASA-Satelliten-Bodenstationen gearbeitet. Die Aufgabe des Systems ist es, alle NASA-Satelliten elektronisch zu überwachen und zu steuern. Das hört sich vielleicht nicht nach viel an, aber wenn ein System ausfällt, während man gerade einen Satelliten steuert, kann man Milliarden von Steuergeldern in die Sonne schicken. Die Fehlertoleranz und Redundanz, die in diesem System eingebaut sind, würden Blizzard vor Neid erblassen lassen. Wenn ich mich recht erinnere, gibt es etwa 50 Server, von denen die wichtigsten über einen Hot Spare verfügen, der in weniger als einer Sekunde einspringt, wenn der Hauptserver ausfällt. Jedes dieser Systeme hat wiederum ein redundantes Systempaar, das bereit ist, den Betrieb zu übernehmen, wenn les deux scheitern. Ich habe noch kein Spiel gesehen, das so kompliziert (oder auf seine eigene Art beeindruckend) ist wie dieses.

Jede dieser Bodenstationen interagiert in Echtzeit miteinander (sowohl elektronisch als auch über menschliche Interaktionen), natürlich zusammen mit den Satelliten selbst, dem Shuttle, wenn es oben ist, und verschiedenen Bodenterminals, die Orbitaldaten verarbeiten, und könnte somit als bloße Teile eines noch größeren und komplexeren Systems betrachtet werden, das die NASA als TDRSS . Hier ist ein sehr konzeptionelles Diagramm, das ich gefunden habe online :

alt text
(Quelle: <a href="https://www.spacecomm.nasa.gov/spacecomm/images/sn_expansion.gif" rel="nofollow noreferrer">nasa.gov </a>)

Der "White Sands Complex" ist physisch gelegen im äußersten Süden New Mexicos, in der Nähe von Los Cruces. Wie Sie im Inneren des Blocks sehen können, gibt es drei komplette Bodenterminals wie das von mir beschriebene, die alle miteinander und mit den Satelliten vernetzt sind. Außerdem gibt es noch zwei weitere abgelegene Terminals (ich weiß nicht genau, wo sie sind).

4 Stimmen

GWB würde Sie für die Weitergabe dieser Informationen als Terroristen bezeichnen.

1 Stimmen

+1: Wow. Ich habe den allergrößten Respekt vor dem QA-Team.

0 Stimmen

@StingyJack: Gutes Argument. Apropos, glauben Sie, dass terroristische Organisationen Tentakel haben, die Stackoverflow scannen? [Das ist eine ernste Frage.]

10voto

Renaud Bompuis Punkte 16227

Spiele decken ein sehr breites Spektrum der Computertechnologie ab, von Hardware-Optimierungen bis hin zu Datenbanken, künstlicher Intelligenz, fortgeschrittener Mathematik und vielem mehr.

Es ist schwer, einen Maßstab für die Komplexität festzulegen, ich bin nicht sicher, ob es überhaupt einen gibt. Wenn man darüber nachdenkt, waren Dinge, die für uns heute trivial sind, noch vor ein paar Jahren wirklich schwer zu lösen. Komplexität ist ein bewegliches Ziel, und wir alle bauen darauf auf.

Wenn wir analysieren müssten, was es bedeutet, Ihre Frage zu lesen, wären die Probleme, die es zu lösen gilt, atemberaubend: Stellen Sie sich die Komplexität der Software vor, die für die Herstellung der elektronischen Komponenten Ihrer Maschine, meiner Maschine und all der anderen Maschinen dazwischen verwendet wurde.
Stellen Sie sich vor, wie kompliziert es ist, Computer dazu zu bringen, sich gegenseitig zuverlässig Informationen zu übermitteln.
Stellen Sie sich vor, wie lange es gedauert hat, bis das Betriebssystem all diese Hardware verwalten konnte, bis die Browser so weit entwickelt waren, dass sie komplexe Layout-Informationen auf dem Bildschirm anzeigen können...
All dies ist für mich erschütternd.

Sie können auf eine besonders komplexe Anwendung verweisen, aber wenn Sie darüber nachdenken, gibt es wahrscheinlich immer eine andere, die oberflächlich betrachtet einfach genug aussieht, aber als noch komplexer angesehen werden kann, wenn man alles in Betracht zieht.

1 Stimmen

Ein guter Punkt ist, dass Komplexität ein bewegliches Ziel ist.

7voto

Todd Gamblin Punkte 56250

Werfen Sie einen Blick auf einige der Physikanwendungen, die von der Ministerium für Energie :

Es gibt Anwendungen, die das tun:

Dies sind einige der rechenintensivsten Probleme, die es gibt, und jedes Jahr werden Millionen von Rechenstunden dafür aufgewendet. verschiedene Supercomputing Zentren . Dabei handelt es sich um hochgradig parallele Codes, und das Verständnis der Physik und ihrer effizienten Abbildung auf Netzwerke und Prozessoren ( z.B.. avec MPI ) ist ungeheuer komplex.

Maschinen mit Millionen von Kernen werden bis 2012 erwartet, um einige dieser Dinge zu betreiben.

1 Stimmen

Das ist wieder ein Beweis dafür, dass Spiele beeindruckend sind, weil sie den Bereich HPC (z.B. Shader, Compute Shader) und Physiksimulation (Havox, Physix, Buller, ODE..) umfassen. Und es ist sogar noch heikler wegen der Echtzeitanforderung. Man kann nicht behaupten, dass ein Wetterprogramm besser ist, weil sein Ergebnis präziser ist. Welches Programm ist unglaublicher, wenn es Ihnen in 5 Millisekunden eine Antwort gibt, die 20 % der Genauigkeit hat, als ein Programm, das in 20 Wochen auf der gleichen Hardware mit 97 % der Genauigkeit laufen würde?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X