Es soll halt Leute geben, die bleiben mit der Zeit stehen
Bis einschließlich DirectX10 gibt es keine Multithread-Unterstützung.
Ab DX11 sieht das aber anders aus. So ist es nicht nur Möglich die
Grafik in einen, sondern gleich in mehrere Threads zu verfrachten.
Und was bringt das geilste Spiel, wenn es zwar 4 Kerne zur Auswahl hat,
aber nur einen Auslastet ... und dabei noch ruckelt?
Ich hab solche
Exemplare hier. Fortschritt gibt es heute nur noch durch Threads. Da
ist der Vergleich mit dem Einkaufszettel nicht mehr Zeitgemäß. Da passt
eher das Lebensmittel-Bestellen im Internet. Lieferung und Bezahlvorgang
ginge Zeitgleich und wer weis, was man da alles in der Zeit machen kann.
Lediglich das Zusammen klicken passiert nach wie vor nach dem Überlegen,
was man denn braucht. Dafür kann man aber in kurzer Zeit bei mehreren
Läden "einkaufen". Man kann vielleicht nicht alles in Threads auspacken,
aber AND51 liegt da sicher garnicht so verkehrt. Der Aufwand ist natürlich
sehr hoch, um alles so zu splitten, aber es sind unabhängige Aktivitäten.
Die Grafik muss nicht warten, bis die Logik ein mal durchlaufen ist. Genau
so muss die Logik nicht warten, bis der Screen ein mal gezeichnet ist.
Das was man sieht, sind so wie so nur Momentaufnahmen. Und wenn
nun Objekt 20 noch ein Pixel früher hätte gezeichnet werden müssen
oder Objekt 2.344 ein Pixel weiter ist ... das nimmt das Auge eh nicht wahr.
Wohl aber, das es alles schön flüssig läuft.
Auch sind Eingaben des Spielers udn auch Netzwerkaktivitäten Nebensächlich-
keiten, die bei vielen Spielen nicht fest verankert sein müssen. Das zu
realisieren ist aber natürlich nicht in ein paar Zeilen gemacht wie
es für DOS-Spiele der Fall war.
Und für einen einzellnen Hobby-
Entwickler ist es erst recht ein riesen Berg, den man da bewältigen müsste.
Da geht die Kosten-Nutzen-Rechnung selten auf, das stimmt schon.
Und das Beantwortet sicher auch AND51 Startfrage in seinem Post.
Der Aufwand dafür ist immens hoch. Und wenn man eh nur ein kleines
Männchen hat, das von A nach B hüpft in einer bescheidenen 2D-Welt,
da ist es schlicht quatsch, diesen Aufwand zu betreiben.
Es gab übrigends auch mal so einen Thread bezüglich der Parallelisierung.
Ich vermute aber, das war im englischen Forum und ist auch schon lange
her.
Wie auch immer ... ich hab mein Spiel auch erst mal ohne Threads realisiert.
Auf meiner ToDo-Liste ist das Auslager des Grafikloops aber bereits für
die nahe Zukunft angesetzt. Die Grafikverwaltung in einen extra Thread aus
zu lagern wird aber sicher nicht so einfach, wie ich es gerne hätte. Doch
so können die Positionen der Spielobjekte berechnet werden, selbst wenn die
Grafikkarte mal überfordert ist, außerdem will ich nicht auf 60 FPS beschränkt
sein und auch nicht rücksicht darauf nehmen müssen, dass die Logik tatsächlich
diese Geschwindigkeit haben muss.
MFG PMV