Liebe Spieler der Welt Onchesmos,
am Freitag hat eine Allianz den Olymp belagert. Diese Belagerung sollte um 22:34 Uhr enden. Natürlich hatten sich alle Gegnerallianzen zu dem Zeitpunkt das Ziel gesetzt, diese Belagerung zu vereiteln.
Es wurden deswegen in den letzten Stunden der Belagerung am Freitag Abend etwa 2500 Angriffe auf den Olymp abgeschickt, um diese Belagerung zu brechen. Insbesondere viele Fliegerangriffe waren auf das Ende der Belagerung getimed. Leider bestanden etwa 1000 dieser Angriffe aus weniger als 40 Einheiten, es gab Hunderte Angriffe mit nur einer Einheit.
Wie es bei Befehlsanzahlen dieser Größenordnung eben passiert, konnten im Folgenden nicht alle Befehle in der Sekunde verarbeitet werden, in der sie ankamen. Das war dieses Mal so, das war aber auch schon am 6. April 2013 so, als meine Allianz auf Welt Gamma (de3) eine Aktion auf eine andere Allianz gestartet hat und die Befehle nicht alle sofort verarbeitet werden konnten.
Die Wahrheit ist: Das lässt sich nicht verhindern. Es ist der technische Preis, den wir für die Gameplay-Komplexität des Spieles zahlen, die wir alle so sehr lieben. Jeder Kampf bei Grepolis durchläuft viele verschiedene Kalkulationen. Wir haben einen Seekampf, einen Landkampf, Katapulte, interessante Wechselwirkungen mit Belagerungen, Forschungen, Zauber, generell extrem vielen Berechnungen, die im Falle vieler Unterstützungen auch genau so oft durchgeführt werden müssen, und noch viel mehr.
Natürlich wird oft gesagt "Na dann kauft eben mehr Server" - so funktioniert das Ganze aber nicht. Wir haben schon die besten Server, die man für Geld kaufen kann. Wäre das Ganze mit Geld zu verhindern, hätten wir es ausgegeben. Mehr Server würden eine Wirkung haben, wenn man Kämpfe nebeneinander berechnen könnte. Dann nämlich könnte eine Servereinheit Kampf 1 berechnen, die andere Kampf 2 - und das dann eben parallel. Wenn ich aber zwei Angriffe habe, die ganz knapp hintereinander in derselben Stadt ankommen, nennen wir sie Angriff 1 für den früheren und Angriff 2 für den späteren, dann muss der Server für die Berechnung von Angriff 2 wissen, wie viele Einheiten beim Verteidiger nach Angriff 1 noch übrig sind. Das kann er aber nur, wenn Angriff 1 schon vorher berechnet wurde. Es sei denn, wir würden einfach die Einheitenzahl von vor Angriff 1 zu Rate ziehen - nur dann wäre Angriff 1 eben absolut wirkungslos geblieben, die Einheiten verschwendet.
Aus diesem Grund werden alle Angriffe nacheinander berechnet. Es gibt keine parallelen Berechnungen von Kämpfen. Das würde das Spiel in ein heilloses Chaos stürzen. Stattdessen hat man sich entschieden, bei zu vielen Befehlen eben in Kauf zu nehmen, dass die Kämpfe statt bei ihrer ursprünglich angepeilten Ankunftszeit eben später verarbeitet werden. Sie zählen dennoch auf den Zeitpunkt zurück, zu dem sie eigentlich ankommen sollten. Damit ist sichergestellt, dass Angriffe immer in der richtigen Reihenfolge ankommen.
Auch ist sichergestellt, dass Belagerungen an dieser Warteschlange teilnehmen. Das Ende einer Belagerung ist eine Aktion, die sich dort einreihen muss, wo sich auch Angriffe und Unterstützungen einreihen. Das bedeutet: Wenn es zum Ende einer Belagerung zu einer verzögerten Verarbeitung von Kämpfen kommt, haben alle Angriffe, die planmäßig vor Belagerungsende ankommen, auch noch einen Einfluss auf die Belagerung. Die Belagerung endete im vorliegenden Fall beispielsweise um 22:48 Uhr Echtzeit.
Dieses System hat bisher immer gut funktioniert. Was natürlich von Beginn an gestört hat (auch uns 2013), ist die verzögerte Generierung der Berichte (das passiert nach der Kampfberechnung) - das ist aber in Kauf zu nehmen. Leider ist auf Welt Onchesmos im Zusammenhang mit Portaltempeln jedoch ein Fehler aufgetreten.
Wie schon gesagt, waren etliche Fliegerangriffe auf den Olymp unterwegs, um die Belagerung zu brechen. Dabei handelte es sich um Portalangriffe. Diese sollten natürlich ebenfalls an der Warteschlange der Befehle teilnehmen und ihren ursprünglichen Platz dort einhalten, selbst wenn es zu Verarbeitungsverzögerungen kommt. Auch sie sollten also einen Einfluss auf die Belagerung haben, solange ihre ursprüngliche Ankunftszeit nur vor dem ursprünglichen Ende der Belagerung liegt - eben weil alles gleichmäßig verzögert wird, wenn es zu einem Stau kommt. Das war nur aufgrund eines Fehlers nicht der Fall. Stattdessen hingen die Angriffe am Portaltempel fest und wurden fälschlicherweise außerhalb der Reihe weiter zum Olymp gelotst. Das bewirkte, dass diese etwa 50 Angriffe erst nach dem Ende der Belagerung aufschlugen, nämlich ab etwa 22:53 Uhr. Sie waren infolgedessen wirkungslos für die Belagerung.
Wir haben direkt Samstag Vormittag damit begonnen, die Situation genau zu analysieren. Denn wenn die 50 verbleibenden Angriffe sicher das Kolonieschiff gekickt hätten, hätte man ernsthaft darüber nachdenken müssen, den Olymp wieder auf neutral umzustellen. Nach meinen Berechnungen im Simulator wäre es allerdings sehr knapp geworden und ich konnte nicht sagen, ob das Kolo am Ende noch gestanden hätte oder nicht (mit hinein hätte beispielsweise die Zauberkapazität des belagernden Spielers gespielt). Aus diesem Grund haben wir das verworfen.
Der nächste Gedanke ist sicherlich ein Serverreset. Ein solcher wird bei Fehlern regelmäßig seitens der Community gefordert. Das ist jedoch ein technisch extremer Schritt, weil dabei eine große Gefahr besteht, dass noch viel schlimmere Dinge schief gehen als das, was man beheben will. Das ist keine Operation, bei der man voraussehen kann, wie sie endet. Zudem war das Timing schlecht, es war Wochenende. Aber auch das alles muss nicht das finale Argument gewesen sein - viel mehr war es, dass wir zwar mit all dem Risiko den Server hätten zurücksetzen können, der Fehler dann aber weiterhin genau so bestanden hätte und wir ihn zu dem Zeitpunkt auch noch nicht genau einschätzen konnten. Ein Serverreset war aus diesen Gründen keine Option.
Hier sind wir also nun. Der Fehler tut allen Beteiligten unfassbar leid. Das Schlimme an Fehlern dieser Art ist leider, dass sie sich erst unter Live-Bedingungen zeigen. Diese kann man nicht simulieren. Nur ist die Situation weiterhin gleich schlecht: In einem der spannendsten Momente der Welt ist ein folgenschwerer Fehler aufgetreten. Eine Entschuldigung kann sie nicht wieder gutmachen.
Dieser Fehler wird nun behoben und wird dann nicht wieder auftreten. Natürlich bemühen sich alle, dass dies vor der nächsten Positionsänderung des Olymp geschehen kann und das ist auch realistisch.
Außerdem überlegen wir nach wie vor, wie man das Ganze ausgleichen könnte. Das ist aber ein schwieriges Unterfangen. Nichts kann den Nervenkitzel dieser Olymp-Aktion kompensieren (es sei denn eine ähnliche Situation bei einem der künftigen Sprünge, bei der dann alles funktioniert). Wir melden uns also zu diesem Thema, sobald wir Neuigkeiten haben. Wir werden uns auch darüber Gedanken machen, ob und wie Minimalbefehle auf den Olymp einzuschränken sind, da diese am Freitag ebenfalls ein großer Teil des Problems waren.
Falls ihr Fragen dazu habt, stellt sie gerne, wir versuchen sie zu beantworten.
Viele Grüße
euer Grepolis-Team