Dieses Problem existiert nicht nur bei Spielen. Hier haben wir nur Hardwarefeatures entwickelt, die das kaschieren. Bei Software ist das Lazy loading. Wer mal wissen will, sich ein schnelles Web anfühlt, kann sich mal
512kb.club anschauen. Die gelisteten Webseiten sind einfach soooo schön schnell. Und ich behaupte schon, dass sie schon Zeit durch alles andere verlieren. Solche Webseiten waren nämlich auch schon auf alten Single Core Prozessoren super schnell. Der RAM Bedarf ist auch schon krass, weil die 2 KiB große Webseite laut Firefox in meinem Setup trotzdem 60 MiB RAM belegt. Das wäre zu damaligen Zeiten 10-25% des RAMs gewesen. Der Main Prozess des Browsers schlägt ja noch mal mit 600 MB zu.
Bei aller Fairness: Die Auflösung ist auch höher. Das bläht die Ressourcen der Anwendungen auf. Leute laden ihre 5 MB großen jpgs hoch und binden sie ein. Damit wäre früher eine Webseite zum Download geworden.
Spiele sind da ähnlich. Wie schaffen es Gacha Spiele über 50 GB Speicherplatz zu belegen? Optimierung im Sinne von
wir liefen alles aus: High Res bis Low Res?. Ja danke. Weil ich keine 5090 habe, belegen 50% der Resourcen einfach nur Speicherplatz. Und ich glaube, das ist Grafik. Klar können Voice Lines auch nennenswerten Speicherplatz belegen, aber mit 10 GB könnte man gut 72 Stunden 320 kbits MP3 an Audio haben.
Es gibt diverse Video auf Youtube, die zeigen, wie Entwickler damals tricksen mussten, damit spiele funktionieren und auch in den eher bescheidenen RAM der Konsolen passen. Render Distanz runter, FOV Algorithmen, Wiederverwertung von Objekten und Texturen...
Die Szenen, die Jayz zeigt sind wirklich bedauerlich. In CoD 2 hat man in den Himmel geschaut und jede Mittelklasse GPU hat 300 FPS erreicht. Ein ganz einfacher Test, ob die GPU haufenweise Zeugs rendert, das überhaupt nicht sichtbar ist. Und so etwas macht Innenräume eigentlich sehr renderfreundlich. Die Aussage, dass viele einzelne Objekte gerendert werden müssen sollte kein großes Drama erzeugen. Polygone sind Polygone. Texturen auf Faces zu werfen war in den 00er Jahren schon kein großes Ding mehr. Lichtberechung? Da wäre das kleine Objekt schneller. Tesselation und Oberflächeneffekte? Auch alles bei einem kleinen Objekt schneller.
Ich scheine nicht begreifen zu können, wieso ein großes Objekt, weniger rechenintensiv sein soll, als wenn es aus mehreren kleinen Objekten zusammengesetzt wird. Kollision und Physik muss ja immer noch berechnet werden. Klar geht es schneller, wenn man ein großes Objekt hat und einige Abfragen einfach nicht macht, weil der Spieler niemals dorthin kommt. Aber wisst ihr was? Das ist Optimierung!
Den Kampf mit der Optimierung haben wir schon vor 10 Jahren verloren. Heute gibt es nur die nachgelagerte Lösung.
Und hier ein Ausblick: Es kommen immer mehr Leute auf den Markt und fangen an, Software zu entwickeln. Wer sich nicht im Geringsten mit dem beschäftigt, was der Code auf der Hardware auslöst und sich nicht für ein paar kluge Ideen aus der Vergangenheit zur Lösung von Problemen auseinandersetzt, der wird Probleme mit roher Rechengewalt lösen wollen.
Und das ist wirklich nichts Neues. Ich habe hier einen 10 Jahre alten Artikel über eine alte und "neue" Herangehensweise. Es ist dramatisch:
A Modern App Developer and An Old School System Developer Walk Into a Bar. Und was Latenz angeht...
Fast Machines, Slow Machines. Es ist einfach bedrückend.