@rhd76 du fragst warum TpF nicht schon von Anfang an flüssig läuft, es gab ja schließlich einen Vorgänger ... daran erkenne ich (und das ist jetzt keineswegs böse oder abwertend, herablassend oder sonstwie zu verstehen) daß du keine Ahnung vom Programmieren hast. Ich versuch's mal verständlich zu erklären.
Dieses Spiel setzt wie (alle?) andere Spiele auch auf einer sogenannten "Game-Engine" auf, diese Game-Engine ist quasi der Kern des Spiels und verarbeitet die ganzen Logikprozesse, diese Engine kann über Funktionen und Parameter Statusänderungen an Code außerhalb der Engine weitergeben und auch empfangen, dieser Code ausserhalb der Engine sorgt dafür, daß TpF ein Eisenbahnspiel ist, und keine Freizeitparksimulation - beides könnte (denke ich zumindest) mit der gleichen Engine realisiert werden. So eine Engine schreibt man nicht mal eben am Wochenende. Deswegen wurde die alte Engine von TrainFever auch für TransportFever eingesetzt, sicherlich mit einigen Änderungen aber Grundsätzlich der gleiche Code.
Und ab hier fange ich wirklich an zu raten ...
Wenn diese Engine nun schon vor einigen Jahren entwickelt wurde, dann hat sie vermutlich ein riesen Problem:
Früher wurde "prozedural" Programmiert, das bedeutet, der Programmcode wurde quasi Zeile für Zeile abgearbeitet. Heute programmiert man Objektoriertiert, damit können einzelne Aufgaben in eigene Programme ausgelagert werden die dann quasi synchron ablaufen können.
Das alte programmierverfahren eignet sich kaum bis überhaupt nicht für Mehrkernarchitekturen, weil es eben immer nur an einer Stelle im Code arbeitet. Es müsste vermutlich einiges an der Engine umgeschrieben werden um die moderne objektorientierte und asynchrone Ablaufarchitektur hinzubekommen.
Und da kommt jetzt der Knackpunkt, wenn du an dieser Engine selbst irgendetwas änderst, kannst du davon ausgehen das erstmal 10 andere Sachen nicht mehr ordnungsgemäß funktionierien, das heißt die müssen auch wieder angepasst werden, deren Änderungen sorgen wieder für neue Bugs etc. das kann eine Lawine auslösen, deswegen geht da keiner gerne dran. Wenn ein Programmierer sagt "Das geht nicht" dann meint er eigentlich nur "dazu wäre eine Änderung an der Datenbank (oder hier die Engine) nötig."
(Und an die Informatiker unter euch, ja ich weiß das im meinem Beitrag einige nicht technisch korrekt ist.)