Im großen und ganzen kann man das so sagen, auch wenn das teilweise etwas vereinfacht dargestellt ist. Zwar hat sich der Code durchaus über die Jahre durch neue Mechaniken usw. „aufgebläht“, das größere Problem ist aber, dass immer mehr Daten gleichzeitig berechnet werden müssen.
Es bleibt dabei immer die Frage, was überhaupt entsprechend umgestellt werden kann und wirklich davon profitieren kann. Den Kampfablauf muss man bspw. nacheinander berechnen und kann das nicht gleichzeitig machen - die HP eines Gegners kann man bspw. erst dann berechnen, nachdem die Aktion des Spielers berechnet wurde. Auch wenn man das jetzt auf zwei Threads aufteilt, gewinnt man nicht unbedingt etwas, da Thread 2 ja trotzdem noch auf Thread 1 warten muss.
Ja, Thread 1 könnte dann schon wieder etwas anderes berechnen, aber wenn das dann auch nur minimalst ungleichmäßig läuft, kann es passieren, dass Thread 2 durch die neue Berechnung von Thread 1 schon wieder andere Daten bekommt und somit fehlerhafte Daten berechnen könnte. Man müsste Thread 1 nach der Berechnung dann also warten lassen, bis sichergestellt werden kann, dass Thread 2 die korrekten Daten nutzt und erst dann darf Thread 1 auch weiter arbeiten.
Dadurch wird das ganze sehr schnell extrem kompliziert und der Gewinn durch eine Multithread-Umgebung lässt sich nicht ganz so einfach vorhersehen.
Ein Ergebnis davon sehe ich regelmäßig in Guild Wars 2: Dessen Client hat zwar grundsätzlich ähnliche Probleme wie WoW, lagert aber ein paar mehr Berechnungen auf andere Threads aus. Steigt man in stark bevölkerten Gebieten auf ein Reittier auf, dann kann es passieren, dass der Charakter für einige Sekunden visuell ohne Reittier im Boden steckt und die Kamera eingefroren ist, man sich aber trotzdem schon auf dem Reittier bewegen kann und das nur anhand der Minimap sieht. Sobald das Mount dann wirklich geladen wurde, springt die Kamera an die korrekte Position und das Modell des Reittiers erscheint.
Das ist jetzt zwar kein wirklich dramatisches Problem, zeigt aber doch ganz gut, was dabei passieren kann und um das zu verhindern, müsste man sehr viele Sicherheitsmaßnahmen einbauen, die dann natürlich alle wieder Rechenleistung benötigen und den eigentlichen Gewinn reduzieren.
„Alles auf Multithread zu coden“ und „WoW 2“ kommt halt im Endeffekt auf das gleiche raus. Im großen und ganzen heißt beides „Eine komplett neue Engine programmieren und dann die ganzen Mechaniken implementieren“ und würde einen ähnlichen Zeitaufwand benötigen, da man ja dann einen großen Teil der bisherigen Mechaniken wieder haben will und nicht auf ein Grundgerüst zurück gehen wird. Da stellt sich dann immer die Frage: Rentiert sich das überhaupt?
In der heutigen Landschaft an MMOs dürfte die Antwort darauf schon aus finanzieller Hinsicht leider fast immer „Nein“ lauten.
Nicht ganz, zum Release von WoW gab es noch keine einzige Dual Core CPU. Diese kam erst ein halbes Jahr nach dem US-Release auf den Markt (November 2004 vs. April 2005).