Tutorial
Timing für Spiele (Theorie)
von TiS | Seite 1 von 1 |
Die Theorie:
Sicher ist das allen schonmal passiert, man will mal fix ein altes (DOS-) Spiel zocken, drückt auf "Play" und ... sieht den "Game Over" Bildschirm. Die Entwickler gingen davon aus, dass jeder Computer die gleiche Hardware und Konfiguration hat.
Eine beliebte Möglichkeit, um den Ablauf etwas zu bremsen ist, SLEEPs zu verwenden. Aber die Nachteile liegen auf der Hand, auf einem schnellen PC braucht die Ablauflogik und der Bildaufbau weniger als 5ms während man auf alten Rechnern mit dem 5-fachen rechnen muss. Bei Spielen wie z.B. TicTacToe, die rundenbasierend ablaufen macht das nichts, während Jump'n'Run Spiele auf einem Rechner unspielbar sind, während auf anderen PC's Schneckentempo angesagt ist.
Das zweite Problem ist, das sich seit den Multitasking Betriebssystemen die Hintergrundlast verändern kann und man nicht zu Beginn ein Probeframe rendern kann, um das Tempo zu bestimmen.
Also muss mit jedem Frame eine neue Zeit für den nächsten Frame errechnet werden.
Beispiel: Die Kugel soll sich mit 1 Pixel pro Millisekunde über den Schirm bewegen.
[Position nächster Frame] = [Zeit seit dem letzten Frame in ms] * [Kugelgeschwindigkeit in ms]
So wird jedes Mal eine neue voraussichtliche Zeit für den nächsten Frame errechnet.
Zusätzliche Informationen und Funktionen |
- Das Tutorial wurde am 10.07.2007 von TiS angelegt.
- Die aktuellste Version wurde am 09.08.2007 von TiS gespeichert.
|
|