Der technische Direktor von Croteam, Alain Ladawach, der an der Entwicklung des Serious Sam- und Talos-Prinzips beteiligt war, berichtet, wie er es geschafft hat, den Grund fĂŒr die Verlangsamung der Grafik selbst auf den leistungsstĂ€rksten Maschinen zu finden.SchlieĂlich ist eine ErklĂ€rung erschienen, warum einige Spiele auf Ihrem PC langsamer werden (und ein Hoffnungsschimmer, dass sie in naher Zukunft nicht mehr langsamer werden).
TT Bremsen
Sie freuten sich auf den nĂ€chsten Teil Ihrer Lieblings-PC-Videospielserie und es kam endlich heraus. Dieses Mal möchten Sie es in seiner Gesamtheit genieĂen, also haben Sie Geld und Zeit fĂŒr eine grĂŒndliche Vorbereitung aufgewendet. Sie haben den Prozessor ausgetauscht, eine hochmoderne Grafikkarte installiert und mehr RAM hinzugefĂŒgt - zum Teufel, Sie haben sogar RAID auf einer SSD gekauft. Das Spiel sollte vom Bildschirmschoner selbst flĂŒssig sein.
Die Vorbestellung ist endlich freigeschaltet und Sie haben gerade die Installation abgeschlossen. In nervöser Erwartung starten Sie das Spiel zum ersten Mal. So weit so gut - es lÀuft mit 60 Bildern pro Sekunde. Zumindest sagt das der GPU-Tuner-Frame-ZÀhler. Aber etwas stimmt nicht. Sie machen scharfe, chaotische Bewegungen mit der Maus. Strap links und rechts, und dann wird das Spiel ... langsamer! Verdammt, wie ist das möglich? Wie kann es mit 60 Bildern pro Sekunde langsamer werden?
Wenn Ihnen das noch nie passiert ist, dann mag das lĂ€cherlich erscheinen. Aber wenn Sie sie erlebt haben, dann hassen Sie höchstwahrscheinlich die Bremsen von ganzem Herzen. Bremsen in Spielen. Dies ist keine gute alte "Verzögerung". Keine niedrige Bildrate. Dies sind nur âBremsenâ, die bei idealen, superschnellen Maschinen bei hohen Bildraten auftreten. Was ist es, woher kommen sie und wie können sie sie loswerden? Lass mich dir eine Geschichte erzĂ€hlen ...
Bremsen, Laufruhe, Geschwindigkeit ... sind sie ein und dasselbe?
Seit den
ersten Arcade-Automaten in den 70er Jahren laufen Videospiele mit 60 fps. Es wird normalerweise erwartet, dass das Spiel mit der gleichen Frequenz lĂ€uft, die das Display verwendet. Dies war vor der Popularisierung von 3D-Spielen, bei denen zum ersten Mal eine reduzierte Bildrate akzeptabel wurde. In den 90er Jahren, als â
3D-Karten â (wie wir sie nannten, bevor sie zu â
GPUs â wurden) anfingen, Software-Rendering zu ersetzen, spielten die Leute Spiele mit 20 fps, und 35 fps wurden als angemessener Wert fĂŒr ernsthafte Netzwerkschlachten angesehen.
Ich scherze nicht .
Heute haben wir superschnelle Autos und "
natĂŒrlich können sie mit 60 fps arbeiten ." Die Anzahl der Benutzer, die von der Geschwindigkeit der Spiele der Benutzer enttĂ€uscht sind, ist jedoch nie gröĂer. Wie ist das möglich? Das Problem ist nicht, dass die Spiele nicht schnell genug laufen können, sondern dass sie langsamer werden,
selbst wenn sie schnell laufen können !
Wenn Sie verschiedene Spielforen lesen, werden Sie sicherlich Àhnliche Nachrichten finden:
Sie könnten denken, dass dies einzelne Probleme sind, aber sehen Sie sich die Statistiken der Google-Suchanfragen an:
In den letzten fĂŒnf Jahren sind Bremsen (Stottern) zu einem (relativ) ernsteren Problem geworden als Geschwindigkeit!(Beachten Sie, dass dies relative Werte sind. Sie bedeuten nicht, dass im Allgemeinen mehr nach Bremsen als nach Bildrate gefragt wird. Sie bedeuten, dass Bildratenanforderungen auf dem gleichen Niveau bleiben und die Anzahl der Anforderungen fĂŒr Bremsen zunimmt. vor allem in letzter Zeit.)
Ein Jahrzehnt auf der Suche nach der Ursache unerklÀrlicher Bremsen
Der Patient ist eher lebendig als tot, verlangsamt sich nur ein wenig mehr als nötig.Ich habe dieses Problem zum ersten Mal im Jahr 2003 festgestellt. Wir haben an
Serious Sam 2 gearbeitet , und Benutzer haben uns Berichte gesendet, dass sie etwas auf einer leeren Ebene getestet haben und dass die Bewegungen beim Bewegen der Maus nicht reibungslos waren. Dies wurde von einem sehr charakteristischen Muster in der Bildratengrafik begleitet, das wir als âKardiogrammâ bezeichneten.
Wir dachten, dass irgendwo im Code ein Fehler aufgetreten ist, konnten ihn aber nicht finden. Es schien, dass das Problem zufĂ€llig auftritt und verschwindet - nach dem Neustart der Anwendung, dem Neustart des Computers ... und dann Ă€nderte der Player eine Geschwindigkeitsoption und es verschwand. Dann schaltete der Player diese Option erneut ein, aber das Problem kehrte nicht zurĂŒck. Sie sah aus wie ein Geist.
Offensichtlich trat dieses Problem nicht nur bei uns auf. Als wir die gleichen Probleme in anderen Spielen sahen, begannen wir zu glauben, dass die Fahrer schuld waren. Dies geschah jedoch auf Grafikkarten verschiedener Hersteller. Sogar auf verschiedenen APIs (OpenGL, DirectX 9, DirectX 11 ...) - das einzige, was sie gemeinsam hatten, war, dass sie in einigen Szenen auf verschiedenen Computern auftraten ... manchmal.
Nessie, Bigfoot ... fast so schwer wie das Problem mit dem "Kardiogramm".Wir haben noch ein paar Spiele veröffentlicht, aber dieses seltsame Verhalten ist immer noch aufgetreten und verschwunden. Es hat einige Benutzer geÀrgert, und wir haben empfohlen, die Geschwindigkeitsoptionen zu Àndern - manchmal hat es geholfen, manchmal nicht. So ist das Leben, nicht wahr?
Aber eines Tages, an einem groĂartigen Wintertag Anfang 2013, rief mich mein Kollege Dean an, um ein weiteres Beispiel fĂŒr dieses Problem zu sehen, das er zu diesem Zeitpunkt relativ stabil reproduzieren konnte. Dieses Mal ergab sich das Problem aus dem Level von
Serious Sam 3 . Wir haben in dieser Szene mit Optionen experimentiert, bis mir plötzlich klar wurde. Ich habe verstanden, was der Grund war! Und sie war sehr einfach - kein Wunder, dass sie ein Dutzend Jahre lang von allen weggerutscht ist.
Indem wir nur
eine sehr einfache Option der Spiel-Engine geĂ€ndert haben, konnten wir dieses Problem in dieser bestimmten Szene erscheinen und verschwinden lassen. Uns wurde jedoch sofort klar, dass fĂŒr die qualitativ hochwertige Lösung viel Aufwand erforderlich ist. BemĂŒhungen nicht nur unsererseits, sondern auch des gesamten PC-Gaming-Ăkosystems - GPU-Treiberprogrammierer, API-Entwickler, Betriebssystemanbieter - alle.
Lass mich erklÀren.
Was war die ganze Zeit der Grund?
Ich möchte Ihnen ein Beispiel einer Szene aus Serious Sam 3 zeigen, die Dean und ich vor fĂŒnf Jahren erkundet haben. Oder noch besser - am Beispiel der Testszene aus Serious Sam 2, in der wir sie zum ersten Mal gesehen haben. Aber leider kann dieses schwer fassbare Tier nach dem Ersetzen des âEisensâ zu einer anderen Szene wechseln. Ich habe eine Szene aus
dem Talos-Prinzip, in der ich dieses Problem kĂŒrzlich reproduzieren konnte, und ich habe einige Videos gedreht, mit denen ich es genauer analysieren konnte.
Aber bevor wir anfangen, stellen Sie sicher, dass Sie das Video tatsÀchlich mit 60 fps ansehen. Um die folgenden Beispiele anzuzeigen, wechseln Sie zu 1080p60, wie in der Abbildung gezeigt:
Um Videos mit 60 fps anzusehen, wechseln Sie mit 1080p60 zu YouTube.Wenn Sie alles richtig machen und Ihr Computer und Ihr Webbrowser Videos mit 60 fps anzeigen können, sollte das folgende Video reibungslos und ohne Bremsen abgespielt werden. Wenn dies nicht der Fall ist, sprechen wir deshalb darĂŒber - viele andere Anwendungen demonstrieren dieses Verhalten ebenfalls, nicht nur Spiele. Im Moment kann ich nur empfehlen, dass Sie versuchen, das Video auf einem anderen Computer anzusehen oder einfach den Text zu lesen.
ĂberprĂŒfen Sie, ĂŒberprĂŒfen Sie, eins, zwei, drei ... Sie sollten dieses Video in glatten 60 fps sehen.Kommen wir jetzt zur Sache. Wenn Sie auf Bremsen stoĂen, sieht es höchstwahrscheinlich so aus:
« 60 fps». «»., «», 60 fps. - , , « ». , ( , - «» ). « », , - , . 60 fps, « ». ( , , .)
(«»), YouTube
.
(), . , . , , âŠ
, ? ? , ?..
, , , !
?
.
«», 1/20 , :
60 fps, «». 20 .: -, â , . -, - - â «» , , .
: â â â «»⊠«» . , ?
(, ( 1/10 000 ), : , âŠ
. â , â «».⊠, «»
( ). , , , ( ).
⊠«», « », ?
, , . ( , , , .)
-, - ⊠, , . NTSC, 60 , 60 fps, PAL/SECAM, 50 , 50 fps. - « ».
, â , "
",
ZX Spectrum,
C64,
Atari ST,
Amstrad CPC 464,
Amiga .. , , , 100% , .
«». ,
,
. ,
Sonic The Hedgehog Sega Genesis , ,
16 . PAL NTSC, 50 fps 60 fps. , .
â , PC «» â , . , . 3D-, , . , â , ⊠. , .
, . ( , «» - , .)
, , . 1/60 (16,67 ), 10 /, 1/6 . 1/60 , 1/30 (33,33 ), 1/3 ( «») , .
? , . , . ,
. 90- ( «35 fps » ), .
( ,
GPU) «» «», . 3D-, . , .
GPU, "
". , GPU - , GPU , , GPU . , GPU, « », GPU . - . â - . , , .
, , , ⊠. . , :
. â , â «»., . 16,67 ( 1/60 ), , , . () , 24,8 ( 1/60 ), , ⊠, , 10,7 , , - . ( .)
: ,
, , , PC.
, 60 fps,
- , . - GPU
60 fps
.
â , («») .
, , â
, .
. ( , â , ?), :
«», , .«». «» , !
?
Serious Engine sim_fSyncRate=60
. , « , 60 fps». â ,
! , â , .
? ?
?
â . . , 60,
60 â PC
: - , GPU/⊠â .
, , , â - . ?
, / , .
, ? , â !
, . , API. , , , . , , API , : ,
. , , .
?
, .
API.
Vulkan API VK_GOOGLE_display_timing
,
proof of concept. , Android Linux.
API. ? , .
, Croteam , , .
, , The Talos Principle .
. « », . , , , , .
«»
? , . - , ?« »,
. , , , , , Skype .. 3D. , , . .
. , â ?
, GPU , , . , GPU . , , . , .
âŠ
. :) GPU . , GPU . , .