Fortschritt:

Eine ganze Menge!

Ein supertoller Scheduler ist mein neuester Stolz. Nach der Idee aus Game Programming gems 3 rattert das Ding mittlerweile fröhlich die Rahmen runter.

Models können nun in sogenannte Unions zusammengefasst werden. Realisiert wird das Ganze durch ein von mir erdachtes „Hook-Konzept“, welches (um es kurz zu sagen) die logische Position eines Models von seiner zu zeichnenden Position trennt. Damit ist es nun auch möglich eine Union zu Drehen, ohne das sich die relativen Positionen der Models ändern.

Nach einigem Einlesen in einschlägige Literatur habe ich nun ausserdem meine Physikengine im Grundgerüst fertig:
Jede Interactable ist eine Masse. Eine Masse besitzt Masse, Geschwindigkeit und Beschleunigung, und kann in bestimmte Kräfte eingeklinkt werden die dann auf diese Masse wirken. In bestimmten Zeitabschnitten wird die Geschwindigkeit nach der Euler-Methode aktualisiert.

So kann ich mein Auto nun lustig durch die Gegend schießen(unter Schwerkraft!).

Ausserdem: Ein kleiner Manager zur Darstellung von Rastertext.

Probleme:

Collision Detection. Ich habe mich zwar eingelesen und mich mit den Algorithmen vertraut gemacht, aber irgendwie habe ich das Gefühl eben jene wird mir noch eine Weile nachhängen.

Ausserdem: Mit dem Rastertext kommt mein Laptop-Grafikchip an seine Grenzen. Das Problem ist dass alle Buchstaben in jeweils eine eigene Displaylist im Grafikspeicher geschoben werden, und der kleine Racker nun an jene Grenzen kommt, die ich auch von kommerziellen Spielen her kenne 😦 .Als Zwischenlösung schalte ich die Schriften ab während ich am Laptop arbeite, auf Dauer müssen jedoch sowieso „richtige“ Schriften her.

ToDo:

Collision Detection ist das Thema der Woche. Dann zieht die Schwerkraft mein Auto hoffentlich nicht mehr durch das Terrain J. Sollte ich die geschafft haben, kommt die Auto-Physik. Das Ziel ist, nicht das Auto zu bewegen, sondern den Schub der Triebwerke am Auto zu verändern, ebenso soll Lenkung nicht durch Drehen des Autos umgesetzt werden sondern durch drehen der Räder.

Als Schmankerl gibts endlich auch ein Bild:

Gerendert werden ca. 65000 Polygone, die Gesamtgröße ist 26 km², erstellt wird eine Map dieser Größe in ca. 15 Sekunden (von ca. 2 Minuten runteroptimiert). Die Performance liegt mit 15 FPS im Moment noch im inakzeptablen Bereich, doch das Optimizing kommt ja noch.