Ich halte deine Begründung, wieso es in Edain zu mehr Asynchrons kommt, für grundlegend falsch.
die Isengardtruppen sind ein gutes Beispiel im alten Herr der Ringe haben sie nur ihre Farbe geändert und fertig wars damit, bei der Mod wurde aber wie ich vermute die selben Script genommen wie für eigende Helden, da diese aber ein Eigendes Ausehen hatten wurden natürlich immer mehr DP verschickt als wenn es normale Einheiten waren
Ich glaube es fehlt dir am grundlegenden Wissen, wie SuM gecodet ist. Die CaH benutzen eine spezielles System, womit man ihre verschiedenen Modelle aussuchen kann. Die Modellanzeige ist dann aber wieder ein komplett anderes System.
Nach deiner Definition von Datenpaketen, spielt es auch überhaupt keine Rolle, ob eine Einheit ihr Aussehen wechselt. Das Aussehen eines Objektes wird nämlich nicht an dem einem PC berechnet und dann an den anderen im Datenpaket geschickt, sondern wird von jedem PC selber berechnet, deswegen kann ich auch eine andere Grafikeinstellung nehmen, als mein Gegner.
Wenn eine Einheit ihr Aussehen im Spiel ändert, dann geschieht dies durch ein Upgrade (oder Modelcondition). Durch ein Waffen oder Rüstungsupgrade wird nun im jeweiligen Spiel, ein anderes Design aktiviert/deaktiviert. Hierbei muss nur das Upgrade einmalig in einem Datenpaket versendet werden. Es existiert in deinem Beispiel auch kein Unterschied zu SuM1, da man in SuM1 auch schon Upgrades für Isengardeinheiten haben konnte.
Deswegen verursachen Eigene Helden auch überhaupt keine höhere Datenpakete.
Die Anzahl der Datenpakete dürfte sich dementsprechend in Edain im Bezug auf AdH nicht deutlich erhöht haben.
Wieso es mit den eigenen Helden etwas öfter zu Asynchron kommen kann? Das hat nichts mit den Datenpaketen zu tun, sondern einfach daran, dass Electronic Arts, das System nicht wirklich perfekt hinbekommen hat. So ist das System noch in einigen Teilen etwas verbuggt.
Wieso es in Edain öfters zu Asynchrons kommen kann (oder was ist eigentlich Asynchon)?
Dies hat ganz sicher auch nichts mit den Datenpaketen zu tun.
Asynchron ist eigentlich ein Schutz vor Cheaten, genauer gesagt, wenn einige Informationen/Daten an den beiden PCs der Spieler anders berechnet werden. Ein einfaches Beispiel ist, wenn man mit einer anderen map.ini oder mit geänderten Libraries spielt, wo man sich selber doppelt so viel Geld gibt, dann stellt das Spiel zu einem bestimmten Zeitpunkt fest, dass laut PC1 Spieler 1 2000 Geld hat und laut PC2 Spieler 1 1000 Geld hat. Also sagt das Spiel, hier stimmt etwas nicht, die Daten sind nicht mehr synchron --> Asynchron.
Wieso bei gleichen Dateien trotzdem Asynchron auftreten kann, liegt hauptsächlich daher, dass das Spiel in Teilen überlastet ist. Es kann einige Informationen nur noch verzögert darstellen oder nicht mehr 100% exakt darstellen. Dadurch sind in Extremfällen einige Daten zum einen Zeitpunkt nicht mehr auf beiden PCs gleich, was ein Asynchron auslöst.
In Edain kann das Spiel etwas leichter überlastet sein. Die größte Belastung entsteht nicht durch das Senden einiger wenigen Bytes im MP, wer hätte das gedacht, sondern durch das Berechnen von Modellen, Animationen, von Einheiten die sich auf der Karte bewegen und damit jeden Frame neu angezeigt werden müssen. Dadurch, wenn es viele Objekte gibt, die alle einzelne Befehle ausführen usw.
In Edain haben einige Texturen eine etwas höhere Auflösung und einige Modelle etwas mehr Polygone, weswegen die Belastung zum Darstellen der Grafik höher sein kann. Desweitern gibt es öfters mehr Objecte gleichzeitig im Spiel, dies liegt auch daran, dass es ein paar mehr Eggs (unsichtbare Objekte, die zu speziellen System verwendet werden) gibt.
Ein weiter größerer Punkt ist, dass die Anzahl der Scripte in Edain höher sein dürfte, als in AdH. Die Scripte werden jeden Frame oder zum Teil jede Sekunde abgefragt werden, hierdurch entsteht natürlich eine höhere Belastung durchs Spiel. Einige der Skripte sind für die KI da, damit diese deutlich besser und intilligenter spielt und auch spezielle Systeme nutzen kann. Auch brauchen einige besondere Fähigkeiten Scripte, da sie auf Grund des limitierten Codes, nicht anders umgesetzt werden können.
Wenn man sich den Code allgemein anschaut, dann ist dieser mit 2,3 Millionen Zeilen mehr als doppelt so groß wie in AdH mit knapp einer Million Zeilen. (Die Belastung beim Spielen ist damit erstmal nicht wirklich größer. Nur das Spiel braucht etwas länger beim Starten). Bei diesen 1,3 Millionen neuen Zeilen ist es nicht ausgeschlossen, dass sich einige Fehler eingeschlichen haben können, welche normal keinen Spielsturtz auslösen, aber das Spiel damit nicht optimal arbeiten/rechnen kann, was wieder die Belastung erhöhen könnte.
Wie man Asynchron vermeiden kann?
Grafik runterstellen, nicht unbedingt 4vs4 Spielen, da dort die Anzahl der Objecte in der Regel 4mal so hoch ist wie in normalen 1vs1 Spielen.