AMD Mantle — Die neue API in einem ersten Test
Update 2: Windows 8.1 — Multiplayer: Vorwort
Wir haben uns intensiv mit dem Thema Multiplayer-Modus beschäftigt, da wir auch zu diesem Aspekt gern Ergebnisse präsentieren wollten. Doch Multiplayer-Szenarien sind nunmal sehr speziell, da man mit vielen anderen Spielern interagiert — und somit die Nachvollziehbarkeit sowie Vergleichbarkeit leidet. Die Lösung wäre, auf einen leeren Spiele-Server zu gehen und dort eine bestimmte Route abzulaufen/-fahren, da man so keinerlei Unterschiede zwischen den einzelnen Durchläufen haben kann. Doch streng genommen ist das dann kein Multiplayer mehr, da man sich allein über das Schlachtfeld bewegt.
Verschiedene Redaktionen haben sich als Notlösung volle Server gesucht und laufen dort bestimmte Wege ab, ohne auf irgendeinen weiteren Spieler zu treffen. Doch diese Szenen sind uns zu kurz, um darauf eine Aussage oder gar Empfehlung fußen zu lassen. Wir haben uns daher entschlossen, den Multiplayer-Part von Battlefield 4 so zu spielen, wie er auch angedacht ist: Mit vielen Mitspielern, Gegnern, Fahrzeugen und Einsatzzielen. Uns war bewusst, dass die einzelnen Durchläufe dabei von der ersten Sekunde an voneinander abweichen. Gleichzeitig hatten wir jedoch die Hoffnung, dass die dabei generierten Ergebnisse, gemittelt über drei Durchläufe je API, nicht weit auseinander liegen. Wir hofften auf maximal 10 Prozent Differenz und starteten deshalb unser Experiment.
Serversuche
Wir begaben uns zu allererst auf Serversuche. Wir wollten in jeder Runde die gleiche Map spielen, um wenigstens in diesem Aspekt die beste Vergleichbarkeit zu gewährleisten. Also wurden Server gesucht, wo ausschließlich eine Map läuft – Und das immer und immer wieder. Doch solche Server gibt es meist bei Karten wie Operation Locker oder Metro, die zwar sehr beliebt sind, jedoch gewisse Nachteile aufweisen: keine Fahrzeuge und zudem hauptsächlich im Gebäudeinneren angesiedelt. Zudem sind die Karten so aufgebaut, dass der Spielspaß stark leiden kann, wenn mehr als 32 Spieler unterwegs sind. Doch wir wollten die gleiche Map, Fahrzeuge, Innen- und Außen-Areale und mindestens 48 Spieler.
Wir wurden letztendlich bei einem niederländischen Server fündig, welcher ausschließlich die Map Siege of Shanghai im Eroberungs-Modus zu laufen hatte. Mit 64 Slots stellte der Server auch das Maximum an Spielern zur Verfügung. Eigentlich perfekt für uns. Leider ist es auf diesem Server verboten, das Levolution-Feature auszulösen. Wird das von einem Spieler genutzt, so wird die Runde sofort beendet, das gegnerische Team gewinnt und der auslösende Spieler wird vom Server verbannt. Über den Sinn dahinter kann man vortrefflich streiten. Doch wir wollten unbedingt auf diesem Server spielen, da er in diversen Testrunden keinerlei Probleme aufgewiesen hatte. Denn üblicherweise steigt mit der Spielerzahl auch die Wahrscheinlichkeit für Probleme wie zum Beispiel Rubberbanding. Vermutlich ausgelöst von Synchronisationsproblemen zwischen Server und Client, werden man selbst und/oder andere Spieler hierbei wie am Gummiband hin- und hergezogen. Der von uns gewählte Server war von dieser Problematik augenscheinlich nicht betroffen, weshalb wir unbedingt dort spielen wollten.
Hardware, Software und Einstellungen
Wir hatten uns nach den Erkenntnissen aus Update 1 des Artikels dazu entschlossen, Windows 8.1 für die Multiplayer-Benchmarks zu verwenden. Dazu gesellte sich der zwischenzeitlich erschienene Catalyst 14.2 Beta v1.3 sowie der Mantle-Patch von Battlefield 4 vom 25. Februar 2014. Hinzu kam auch noch der MSI Afterburner 3.0.0 Beta 18, um verschiedene Werte aufzeichnen zu können. Unsere Testrunden machten uns außerdem schnell klar, dass die luftgekühlte R9-290X durch ihre Lautstärke dem Spielgefühl und der Konzentration nicht besonders förderlich war. Kurzerhand wurde ein gebrauchter Wasserkühler für die Karte erstanden (unser Dank hierfür geht an Reaver1988 aus dem Hardwareluxx-Forum für die sehr schnelle Abwicklung des Kaufes). Da in unserem Benchtable bereits eine Wasserkühlung integriert ist, musste die Grafikkarte nur noch in den Kühlkreislauf bestehend aus Pumpe und zwei 240-mm-Radiatoren (bestückt mit vier 120-mm-Lüftern), eingebunden werden.
Abseits des Geräuschpegels konnten wir damit noch eine weitere Klippe umschiffen: Da die Grafikkarte mit Luftkühlung ständig ihr Temperaturlimit von 94 Grad erreichte, wurde der GPU-Takt gedrosselt. Zwar reden wir hier nur von relativ geringen Abweichungen (ca. 10 bis 20 MHz unter DirectX und ca. 30 bis 40 Mhz unter Mantle), verhindern wollten wir sie aber trotzdem. Und das war mit der Wasserkühlung sehr gut möglich, da die Temperatur glatt halbiert wurde. Dadurch kam es nur noch zu Abweichungen im einstelligen MHz-Bereich.
In puncto Grafikeinstellungen wurden einige kurze Tests unternommen. Ziel war es, bei der nativen Auflösung des Monitors (2560x1600, 60 Hz) etwa 60 FPS im Spiel zu erreichen. Mit weniger FPS ist ein derartiger First-Person-Shooter nicht sehr gut spielbar, weshalb die meisten Spieler mindestens 60, meist jedoch wesentlich mehr FPS anstreben. Unser Ziel erreichten wir mit der Voreinstellung “High”, wobei wir diese noch um 2x MSAA ergänzten. Diese Wahl war Basis unserer Messungen.
Was messen wir?
Wir wollten mehrere Runden auf dem ausgewählten Server spielen, unabhängig davon, ob unser Team gewinnt oder verliert, wie lange die Runde dauert oder was auf dem Schlachtfeld geschieht. Als unterste Grenze für unsere Ergebnisse haben wir 20 Minuten Spieldauer gewählt, was in der Praxis nicht in jeder Runde zu erzielen war. Denn oft gab es jemanden, der die Serverregeln nicht gelesen hatte und nach fünf Minuten war die Runde aufgrund der Auslösung des Levolution-Events schon wieder zu Ende. In solchen Fällen verwarfen wir alle Messungen. Alle Messungen heißt, dass wir die absolute Leistungsaufnahme maßen, die Rundenzeit stoppten, im MSI Afterburner zweimal pro Sekunde die Angaben zur VRAM-Auslastung, zur CPU-Auslastung, zur GPU-Auslastung und ‑Temperatur sowie zu RAM-Auslastung mitloggen ließen und natürlich auch die Frametimes in Battlefield 4 aufzeichneten.
Natürlich beobachteten wir auch immer wieder die Spielerzahl auf dem Server. Dieser war fast immer komplett voll, sodass wir oft schon Probleme beim Betreten hatten und uns in die Warteschlange einreihen mussten. Doch fast immer voll ist eben nicht immer voll. So brachen wir hin und wieder eine Messung ab, wenn die Spielerzahl auf unter 56 sank. Auch starteten wir einige Messungen erst ein paar Sekunden nach Rundenanfang, da noch nicht genügend Spieler beigetreten waren. Wir waren also immer mit mindestens 55 weiteren Spielern online, wobei der Server meist auch komplett voll war.
Insgesamt wurden je API drei “Wertungsdurchläufe” vorgenommen und die Ergebnisse wie gewohnt gemittelt. Bei den Minimum-FPS haben wir uns dazu entschieden, den schlechtesten Wert aus 99 Prozent der Frames zu generieren. Hintergrund ist, dass ein einziger Frame dazu führen kann, ein ansonsten gutes Bild völlig zu zerstören. Und bei mehr als 100.000 Frames, welche im Schnitt pro Runde gerendert wurden, ist die Wahrscheinlichkeit eines Ausreißers sehr hoch.