Mittwoch, 13. Januar 2010

Das Geheimnis der schnellen Angriffe

Auch wenn die Überschrift sehr mysteriös klingt, geht es hier um eine Fragestellung, die mir besonders auch im Gildenchat schon mehr als einmal begegnet ist:

Wie schafft es dieser Hexenjäger, jede Sekunde einmal oder sogar noch öfter anzugreifen, obwohl es keine Verzögerungen im Spiel gibt?

Wie umgeht dieser $§%! die globale Abklingzeit?

Für die Erklärung dieser Umstände ist ein bisschen Mathematik notwendig. Aber keine Angst, es wird nicht schlimm und selbst mit Hauptschulmathematik lässt sich alles leicht nachrechnen.

Zunächst sei erwähnt, dass es eigentlich nicht sehr schwer ist, scheinbar jede Sekunde zuschlagen zu können. Fast jeder Charakter kann das tun und man muss dafür auch nicht betrügen. Vielmehr handelt es sich einfach um eine Ungenauigkeit des Spiels.

Zu Beginn sollte man sich aber erst einmal die Aufzeichnungen eines Kampfs betrachten. Im nachfolgenden Bild habe ich einen recht einfachen Kampf gegen einen Hexenjäger festgehalten. Ich habe diesen gewählt, weil es so recht deutlich werden sollte, dass beide Karrieren – Hexenkriegerin und Hexenjäger – dazu in der Lage sind.

Kampfaufzeichnungen 
Es war nicht fordernd, aber trotzdem ein gutes Beispiel.

Die von mir ausgehenden automatischen Angriffe werden in den Sekunden 41, 43 und 47 ausgeführt, in den Sekunden 41, 42, 44, 46 und 47 benutze ich jeweils eine Fähigkeit. Während die Schlagfrequenz der automatischen Angriffe durchaus normal wirkt (bei einer Waffe mit einer Geschwindigkeit von 2,2 Sekunden), kann die der benutzten Fähigkeiten merkwürdig erscheinen, wenn man bedenkt, dass das Spiel es eigentlich gar nicht zulässt, dass man so häufig zuschlägt.

Obwohl sowohl automatische Angriffe als auch gezielt ausgelöste Fähigkeiten ihre eigenen Intervalle besitzen, in denen diese auslösen oder ausgelöst werden können, unterliegen beide einer ähnlichen Mechanik bzw. den gleichen Ungenauigkeiten. Daher wird nachfolgend die Problematik zunächst nur für benutzte Fähigkeiten betrachtet. Sie kann aber zu jeder Zeit auch auf automatische Angriffe übertragen werden.

Der Spieloberfläche zur Folge beträgt die Zeit zwischen zwei benutzten Fähigkeiten mindestens 1,5 Sekunden. Diese Zeitspanne wird auch als globale Abklingzeit (“Global Cooldown”, “GCD”) bezeichnet. Allerdings findet sich hier bereits die erste Ungenauigkeit, denn diese Zeitspanne beträgt nur 1,4 Sekunden – zur Anzeige wird aber auf halbe Sekunden mathematisch gerundet. Dieser kleine Unterschied ist für die eigentliche Erklärung allerdings eher unwesentlich, da sich das Ergebnis nur leicht verändert. Trotzdem sollte es rein rechnerisch nicht möglich sein, in zwei Sekunden zweimal zuschlagen zu können, oder doch?

Geht man davon aus, dass die erste Fähigkeit bei 0 Sekunden benutzt wird, so ergeben sich durch das gegebene Intervall die folgenden Zeiten, an denen erneut eine Fähigkeit benutzt werden kann. Man könnte also annehmen, dass zu diesen Zeiten ein Angriff angezeigt wird.

0,0 s 1,4 s 2,8 s 4,2 s 5,6 s 7,0 s

Da das Spiel keine Bruchteile von Sekunden anzeigen kann, müssen die jeweiligen Zeiten gerundet werden. In Computerprogrammen werden hierfür häufig einfach die Nachkommastellen entfernt (das ist einfach schneller), wodurch sich so die folgenden Zeiten ergeben:

0 s 1 s 2 s 4 s 5 s 7 s

Auch bei einer mathematisch korrekten Rundung (mit Auf- und Abrunden) würden sich ähnliche Werte ergeben. Die scheinbaren Intervalllängen wären nur anders verteilt.

Plötzlich ergibt sich so zumindest teilweise ein Intervall von scheinbar nur einer Sekunde, obwohl zwischen den einzelnen Angriffen mehr als eine Sekunde liegen müsste – genau wie in obigem Screenshot! Ob das Intervall nun scheinbar 1 oder 2 Sekunden lang ist, hängt also ausschließlich von der Rundung ab und ob der jeweilige Zeitpunkt nun kurz nach dem Beginn oder kurz vor dem Ende einer Sekunde liegt.

Bei automatischen Angriffen ergeben sich ähnliche Ungenauigkeiten, wie die folgenden Tabellen zeigen sollen. Die jeweils erste Zeile enthält die genauen Zeitpunkte des Angriffs, die jeweils zweite Zeile enthält die gerundeten Werte. Die verwendeten Waffen besitzen hier eine Schlagfrequenz von 1,7 bzw. 2,2 Sekunden.

0,0 s 1,7 s 3,4 s 5,1 s 6,8 s 8,5 s
0 s 1 s 3 s 5 s 6 s 8 s
           
0,0 s 2,2 s 4,4 s 6,6 s 8,8 s 11,0 s

0 s

2 s

4 s

6 s

8 s

11 s

Ich hoffe, dieses Wissen kann die eine oder andere Situation aufklären und beweisen, dass nicht immer jeder sofort schummeln muss, nur weil dieser auch ohne Lag jede Sekunde zu einem Schlag kommen kann. Natürlich kann immer auch eine gewisse Verzögerung (oder auch Schummelei) im Spiel sein – die angezeigte Zeit entspricht aber immer dem Zeitpunkt, an dem das Spiel diese Nachricht vom Server erhalten hat – nicht wann der Schlag exakt ausgeführt wurde. In den meisten Fällen sollte trotzdem einfach nur die Rundung schuld sein.

1 Kommentar: