Was ist, wenn zwei Wunder gleichzeitig gebaut werden?

Im Aufstieg der Nationen, was passiert, wenn zwei der gleichen Wunder gleichzeitig abgeschlossen sind? Dies geschah mir in einem Spiel und bevor ich mein Wunder, dass ich gewonnen habe. Was wäre doch passiert?

One Solution collect form web for “Was ist, wenn zwei Wunder gleichzeitig gebaut werden?”

Ich spreche hier als Programmierer, obwohl ich nie mit der Entwicklung von RoN beschäftigt war.


Was passiert, wenn ein Spieler fertig ist, ein Wunder zu bauen, während ein anderer Spieler es noch baut, ist das Wunder, dass das noch nicht fertiggestellte Gebäude zerstört wird.

Statistisch gesehen ist es für 2 Spieler unmöglich, eine Aktion zur gleichen Zeit zu beenden, nur weil ein Computer in der Lage ist, Millionen von Anweisungen pro Sekunde zu verarbeiten (Computer können heutzutage sogar Milliarden verwalten), also auch wenn es so aussieht, als hättest du beide ausgetragen Aktion zur gleichen Zeit, sind Sie in der Regel auseinander durch eine Zeitspanne von ein paar Nanosekunden bis mehrere Millisekunden.

Allerdings gehen wir davon aus, dass in der gleichen Spielschleife Sie es geschafft haben, ein Wunder zu erledigen, zur gleichen Zeit wie ein anderer Spieler, was passiert dann?
Nun, die Wahrheit ist; Du hast immer noch nicht fertig gebaut das Wunder zur gleichen Zeit, aber warum?
Computer sind wirklich erstaunliche Maschinen; Sie können so viele Aufgaben gleichzeitig durchführen. Eigentlich können sie nicht.
Wie ich schon erwähnt habe, sind die Computer wirklich schnell. Wenn ein Spiel wie RoN eine einzelne Spielschleife verarbeiten muss, ist das, was passiert, dass es durch alle verfügbaren Spieler schlägt, den Status ihrer Armeen und Städte aktualisiert, welche Schlüssel die Spieler auf ihre Keyboards drängen oder den nächsten Schritt des AI verarbeiten . Alles, was bei einer so hohen Geschwindigkeit geschieht, dass wir mit der Illusion belassen werden, dass alle diese Aufgaben gleichzeitig abgeschlossen sind.
In dem Moment, in dem ein Wunder fertig gebaut wurde, wird die Spiellogik diese Tatsache im Gedächtnis behalten und bei der Aktualisierung des Status des Witzes des anderen Spielers eine Auslöschung auslösen.
Wenn dieser Fall jemals passiert ist, welches Wunder vervollständigen würde und was würde abgesagt werden? Nun, Spieler 1 würde immer in einer solchen Situation gewinnen, da Schleifen in der Regel von 0 bis n-1 (n == Anzahl der Spieler) verarbeitet werden. Offensichtlich gewinnt Spieler 2 gegen jeden anderen Spieler außer Spieler 1 und so weiter.

Okay, aber lassen Sie uns annehmen, dass das Spiel mehrere Kerne benutzte und mehrere Spieler gleichzeitig verarbeiten konnte.
Jetzt bewegen wir uns in die obskure Welt des Parallelrechnens. In diesem Fall könnte alles passieren; Das Spiel könnte abstürzen ( Rennen Bedingungen ), oder Sie könnten am Ende mit zwei Spielern mit dem gleichen Wunder (auch Rennbedingungen), oder das Spiel kann sich normal verhalten (Thread 1 war schneller als Thread 2, Sie hatten Glück), oder Sie könnten Haben sogar eine Situation, wo das gleiche Wunder an zwei verschiedenen Orten auf der Karte vorgestellt wird, aber kein Spieler tatsächlich von den Wunder-Effekten profitiert ( Konsistenzproblem ). Das genaue Verhalten hängt stark davon ab, wie gut das Spiel programmiert wurde, und selbst wenn man den Quellcode kennt, können die Effekte völlig unvorhersehbar sein. Wegen dieser Unvorhersehbarkeit sind Bugs, die sich auf Multithreading beziehen, berüchtigt, weil sie extrem schwer zu erkennen sind, viel weniger beheben.

Da das Parallel-Computing ein ziemlich komplexes und komplettes Thema ist, werde ich es nicht näher erläutern.


TL, DR

Nichts Besonderes wird passieren Wer der Computer denkt, hat das Wunder zuerst beendet, wird das Wunder haben, während der andere Spieler am Ende mit nichts als Wut sein wird, weil er seine Zeit vergeblich verschwendet hat.