Cool Master schrieb:Ganz einfach, weil die paralelisierung unter Windows, OS X und Linux einfach sau schwer zu programmieren ist. Dazu kommt sobald man der CPU mehr aufgaben gibt sprich z.B. Core 0 Physik, Core 1 AI, Core 2 Spieler Interaktion und Core 3 noch etwas anderes brauch man dafür Ram und davon sau sau viel.
Aber die modernen Spiele werden in C++ programmiert und da ist paralellisierung einfach nur ein Horror.
Das ist so absolut nicht richtig.
Das Problem ist eher das vorhandene know how, denn richtige Multithreading-Anwendungen müssen komplett anders aufgebaut werden als Single-Thread-Anwendungen.
Der Unsinn mit core1 = Physic, Core 2 = Grafik war nur der verzweifelte Versuch der Programmierer vorhandenen Singlethreadcode Multithreadfähig zu machen und ist schon vom Prinzip her der falsche Ansatz, da der Grafikpart meistens 80% der CPU-Zeit benötigt und damit eh wieder nur ein Core richtig ausgelastet wurde.
Um Multithreading richtig zu nutzen muss man völlig anders an die Sache ran gehen und auch umdenken, aber wirklich schwierig ist es keineswegs. Viele Spieleengines werden jedoch über viele Generationen mitgeschleppt und es wird nur etwas dran rumgedocktert und dadurch haben diese auch keine richtigen Multithreadingeigenschaften.
Die Engines müssen komplett neu geschrieben werden und das ist 1. ein Kostenfaktor und 2. überfordert viele der neue Ansatz, aber das war bei der Einführung von Objektorientierten Sprachen nicht anders.
Viele Spaghetticodeprogrammierer fiel es schwer den Objektorientierten Ansatz überhaupt zu verstehen und so ist es auch bei Multithreading. Es ist eine völlig andere Herangehensweise und wer 15 Jahre Singlethread programmiert hat, der hat halt seine Schwierigkeiten hier den Schwenk zu machen.
Aber es gibt inzwischen genug Lernmaterial, Beispiele, Schulungen und neu ausgebildete Programmierer wachsen auch damit auf und daher wird sich das Problem mit der Zeit von alleine lösen.
Hier mal ein Beispiel wie so etwas aufgebaut sein KANN:
http://www.pcgameshardware.de/Anno-1404-PC-217381/Specials/Anno-1404-CPU-Multi-Threading-im-Detail-666568/
Zuletzt bearbeitet: