Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS.

Ähnliche Präsentationen


Präsentation zum Thema: "Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS."—  Präsentation transkript:

1 Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS 2015 Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Referent: Lukas Kley

2 Gliederung Das Game Loop-Pattern ◦ Entstehung ◦ Umgang mit der Zeit ◦ Fragestellungen Das Update-Pattern ◦ Update-Methoden ◦ Hinzufügen/Entfernen von Objekten ◦ Beispielhafte Implementation des Patterns

3 Entstehung von Game Loops Früher: batch mode programs  Bedarf nach Feedback (Bug-Suche etc.)  erste interaktive Programme (z.B. textbasierte Games)  Einfache Event-Loops:

4 Echter Game-Loop (Basis): Durchlaufzeit für einen Durchgang bestimmt die Frame-Rate Durchlaufzeit abhängig vom Arbeitsaufwand und Hardware => sorgt für Probleme auf verschiedenen PCs Game-Loop muss für konstante Geschw. sorgen

5 Das Game Loop-Pattern Läuft konstant Verarbeitet User-Input, ohne ihn zu blocken oder darauf zu warten Aktualisiert den Spielstatus Rendert Kontrolliert die Game-Geschwindigkeit => Wichtiger Teil jedes Spieles

6 1. Version: Fixe Zeit pro Frame Hilft gegen zu schnelle Verarbeitung, aber nicht gegen zu langsame

7 2. Version: Variable Zeit pro Frame Aber: Rundungsfehler bei Kommazahlen sorgen bei unterschiedlicher Anzahl an Berechnungen für Ungenauigkeiten

8 3. Version: Flexibel rendern

9 render(lag / MS_PER_UPDATE); zur Eliminierung von ruckartigen Bewegungen

10 Fragestellungen Loop der Plattform/Game-Engine verwenden oder selbst schreiben? FPS-Limit zur Stromeinsparung? Welche Vorgehensweise zur Kontrolle der Gameplay-Geschwindigkeit?

11 Update Methods “Simulate a collection of independent objects by telling each to process one frame of behavior at a time.” => Simulationsschritte müssen in den Game Loop integriert werden

12 Nicht in den Loop integriert:

13 Eingebettet in den Game Loop:

14 Das Update-Pattern Jede Entität sollte mitsamt ihrem Verhalten eingekapselt sein Der Game Loop enthält nur die Kollektion an Objekten und ruft pro Frame einmal die update()-Methode jedes Objektes auf => Erleichtert das Addieren und Löschen von Objekten

15 Dieses Pattern ist gut geeignet wenn ◦ Das Spiel viele verschiedene Objekte enthält ◦ Die Objekte voneinander unabhängig sind ◦ Die Objekte im Verlauf der Spielzeit simuliert werden müssen (sich bewegen/verändern)

16 Code wird durch Auslagerung in den Game Loop etwas komplexer Durch die Frame-by-Frame Vorgehensweise müssen Objekt-Zustände zwischengespeichert werden (s. bool patrollingLeft ) Die update()-Reihenfolge ist entscheidend

17 Hinzufügen von Objekten während des Updatens ist problematisch

18 Problem beim Entfernen von Objekten: Objekt als tot markieren, in der Liste belassen und in einem zweiten Durchgang entfernen

19 Anwendung des Patterns Skelett-Klasse:

20 Spielwelt als Klasse:

21 Implementation des Patterns:

22 Umgang mit inaktiven Objekten Bei jedem Frame die update()-Methode von Objekten aufzurufen, bei denen sich nichts ändert, ist ineffektiv Möglicher Lösungsweg: Separate Kollektion, die nur die aktiven Objekte enthält, erstellen

23 Vielen Dank für die Aufmerksamkeit!


Herunterladen ppt "Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS."

Ähnliche Präsentationen


Google-Anzeigen