Serious Sam Benchmarking
5. April 2001 / von Leonidas / Seite 1 von 4
Nachdem wir uns im Dezember die Benchmark-Funktionalität der Test2 angesehen haben, ist nun die Vollversion des Spiels dran. Wesentliches hat sich an der Engine nicht getan, allerdings sind die alten Demos nicht mehr enthalten und wären sowieso wohl kaum lauffähig. Die neuen Demos (fünf an der Zahl) sollen nach Auskunft des Spiel-Herstellers Croteam allerdings problemlos zukünftige Updates überstehen, so daß man Serious Sam sicher sehr lange als Benchmark verwenden kann.
Nachfolgender Artikel soll die entsprechenden Benchmark-Grundlagen liefern, eine Entscheidungshilfe bei der Auswahl des richtigen Timedemos sein und außerdem ein paar Tips und Tricks aufzeigen. Eigentlich soll er natürlich auch als Grundlage für die zukünftige Serious Sam Benchmark-Anleitung in unserer Selbst Benchmarken! Sektion dienen, allerdings wird dies erst mit einem generellen Update dieser Sektion Mitte April geschehen.
Benchmark-Kommandos
Stürzen wir uns ohne weitere Umschweife ins Geschehen und damit zu den für das Benchmarking und für Screenshots interessanten Kommandos. Es hat sich dabei relativ wenig zum Test2 hin geändert:
dem_bProfile=1 | Schaltet die Frameraten-Auswertung beim Abspielen von Demos ein. | |||
dem_iProfileRate=1 | Legt die Aufzeichnung der Einzelframeraten für die Detailauswertung in Sekunden fest (default sind 5 Sekunden). | |||
DumpDemoProfile() | Wirft die ermittelte Framerate zusammen mit den Einzelframeraten als Detailauswertung in die Datei "/Temp/DemoProfile.lst" aus. | |||
hud_bShowInfo=0 | Schaltet alle Bildschirm-Anzeigen aus - interessant für Screenshots. | |||
SaveScreenshot() | Speichert einen Screenshot im TGA-Format unter "/ScreenShots/" - der Levelname wird dabei im Namen der Datei gespeichert (plus ein nummerischer Anhang). | |||
hud_iStats=1 | Schaltet dann die Anzeige der aktuellen Bilder pro Sekunde ein - oben mitte/rechts zu sehen (weiss = über 60 fps, grün = über 20 fps, rot = unter 20 fps). | |||
hud_iStats=2 | Schaltet zusätzlich noch eine sehr detaillierte Auswertung der aktuell ablaufenden Engine-Prozesse, besonders der Grafik-Prozesse, hinzu. Siehe nachfolgenden Screenshot: |
Ich will jetzt nicht behaupten, ich würde das meiste verstehen, was hier zu sehen ist - dem ist nicht so. Um dies zu entschlüsseln, müsste man schon mit den Entwicklern selber reden, denn selbst wenn man sich 3D-technisch hervorragend auskennt, sind hier doch wohl Engine-eigene Abkürzungen verwendet wurden, so daß man kaum mehr als raten kann. Am klarsten erscheinen mir momentan die hellblauen Angaben in der Mitte: "mdls" steht für die aktuell zu sehenden Models, "shds" für die entsprechenden Shadow-Maps. "tris" sind die in der aktuellen Szene zu sehenden Triangels (Dreiecke), wobei diese mit 12.000 gar nicht so extrem hoch sind. Kritisch wird es bei "stri" - man könnte hier die Dreiecke der Schattenwürfe vermuten ("shadow triangels"). Dies ist aber höchst unsicher, ganz besonders da die Zahl mit 33.000 sehr hoch für "nur" ein paar Schatten ausgefallen ist. Wer dazu nähere Informationen besitzt, kann sich gerne im entsprechenden Forum verewigen, wir danken schon im voraus. |
Das Kommando hud_iStats ist im übrigen sinnvollerweise per default auf F12 verankert - man kann dort hintereinander zwischen den verschiedenen Modi wechseln. Die beiden ersten Kommandos dem_bProfile=1 und dem_iProfileRate=1 sind dauerhafte Variablen und sollten damit sinnigerweise in der dafür vorgesehenen Datei "/Scripts/Game_startup.ini" stehen. Leider funktionierte dies bei mir im ersten Versuch überhaupt nicht, obwohl diese Datei eigentlich ausschließlich dafür da ist und diese Aktion in der Test2 noch problemlos war. Der Trick ist es, hinter alle Befehle in dieser Datei ein Semikolon ; (ohne Leerzeichen davor) zu notieren - schon funktioniert die Sache wieder. Meine "Game_startup.ini" sieht also folgendermaßen aus:
// executed each time SeriousSam is started |
Und ein weiterer Tip dazu: Sinnvollerweise sollte man sich die Screenshot-Funktion auf eine Taste legen. Dazu öffnet man die Datei "/Control/System/Common.ctl" und sucht sich die Passage "Screenshot". Beim entsprechenden Eintrag kann man dann unter Key1 eine entsprechende Taste belegen, F11 und F10 sind zum Beispiel frei. Wenn man sich ein wenig mit dem System der Key-Belegungen in dieser Datei vertraut gemacht hat, kann man selbstverständlich auch nicht dort aufgeführten Befehlen eine bestimmte Taste zuweisen - z.B. für die Ausgabe der Einzelframeraten in eine Datei mittels DumpDemoProfile().
Dieses Key-Binding kann das mühsame Eintippen der Befehle in der Konsole ersparen. Erleichern kann es folgender Trick: In der Konsole nur die ersten Buchstaben des Befehls eingeben und dann die TAB-Taste drücken. Wenn es nur einen Befehl gibt, der mit den eingegebenen Buchstaben anfängt, wird der Befehl automatisch vervollständigt. Ansonsten kann man sich mit weiterem TAB-Drücken durch die auf die eingegebenen Anfangs-Buchstaben passenden Befehle hindurchsuchen. Und zum Schluß ein sehr wichtiger Hinweis für alle, die in-Game Kommandos eingeben wollen: Vor jeden Befehl muß man einen einfachen Schrägstrich / anführen, ansonsten wird alles innerhalb des Spiels als Chat gewertet.