Du solltest mal nach mir und PureBasic auf YouTube suchen ... ich weis
zwar nicht, was du für ein Spiel erwartest ... aber es ist definitiv nichts,
was heutige Rechner mal nebenher berechnen können.
Zumal ich es noch nie geschaft hab, ein Projekt "klein" zu halten. Die
Menge an Objekten, die da zu verarbeiten sind ... hat schon nen Gewicht.
Mit Multithreading schlag ich mich ja auch nicht zum Spaß rum.
So viel erst mal zum Thema, das Rendering verbraucht am meisten.
Wobei, OGRE3D scheint (wie schon mehrfach erwähnt) beim "herraus
zoomen" von Entities viel mit der CPU zu machen. Wenn man also
hoch über der Karte steht, oder besser gesagt, die gesamte Karte
überblickt, dann verbraucht das Rendering tatsächlich sehr viel. Und
genau deswegen ist es so wichtig, das ich einen extra Grafikthread hab.
Und nein, es liegt nicht darann, das die Menge an Polygonen dann mehr
ist ... es ist die Anzahl der Entities, die "kleiner" werden ... ich hab
da schon ein paar sachen getestet um dem Verhalten auf den Zahn zu
fühlen. Erst mit StaticGeometry (was mit PB4.6x kommt), wird das
zumindest weniger werden.
Entity ... das sind die grafischen 3D-Objekte ... mit updaten meine ich
den Aufruf von EntityLocate(), sobald sich die Position eines Objektes
geändert hat. Der Grafikthread ruft als einziger die Engine3D-Befehle auf.
Dazu gehören z.B. LocateEntity(), EntityLookAt(), HideEntity(), RotateEntity(),
ResizeEntity(), CameraLocate(), RotateCamera(), RenderWorld() und natürlich
auch FlipBuffers() und DisplayTransparentSprite() für den Mauszeiger.
Im Inputthread sind die Befehle für Maus und Tastatur enthalten, das heißt
hier werden die Befehle ExamineKeyboard(), ExamineMouse(), MouseX(),
MouseY(), MouseButton(), KeyboardPushed() und KeyboardReleased()
abgefragt und das Ergebnis jeweils in globale Variablen geschrieben bzw.
bei gewünschten Aktionen Variablen auf +1 gesetzt, damit der Logikthread
weis, dass da was gewünscht ist.
Was verstehst du eigentlich unter "Logik eines Spiels"? Ich hab keine Ahnung,
wie ich das Beschrieben soll. Halt alles andere, was ich nun noch nicht
aufgezählt hab. Z.B. die Berechnung aller Koordinaten mittels "Timebased
Movemend", Pathfinding, und halt die eigentliche Logik des Spiels.
MFG PMV