Klassen entsprechen nicht unbedingt meiner Denkweise... in ITA und Studium bin ich immer mehr zu Klassen übergegangen... in meiner letzten Engine hatte ich dann auch mehrere Patterns verwendet... und als es dann zum Multithreading ging musste ich schmerzhaft erfahren, dass jedes erzeugen einer neuen Instanz das Programm zum stocken bringt... und das, obwohl jeder Thread einem eigenen Prozessorkern zugewiesen wurde. Dafür habe ich keine Lösung gefunden. Aber vielleicht wisst ihr ja Rat.
In dem neuen StoneQuest ist es sowieso sehr schwer, Multithreading einzubauen, weil es hier auch darum geht, die Daten zur Grafikkarte zu schicken und umgekehrt... z.B. werden die Cluster zum Teil auf GPU berechnet. Und wer glaubt, DX9 sei Multithreading, der hat sich geschnitten. Es gibt zwar ein Multithreading Flag, aber das bedeutet nur, dass man von verschiedenen Threads aus auf die
API zugreifen kann, ohne dass es abstürzt. Intern wird das alles sequenziell verarbeitet. Anfangs hatte ich mich gewundert, wie ich noch nichtmals eine Textur füllen konnte im Workerthread, obwohl die währenddessen garnicht von DX genutzt wurde.