Vulkan-Framework-Demoprogramm 7 (Ball-und-Schläger-Spiele)

Heute möchte ich Ihnen ein kleines Spieleprojekt vorstellen, dessen Spielprinzip inspiriert ist von solch unvergessenen Spieleklassikern wie Pong oder Breakout. Wie Sie anhand der Screenshots erkennen können, spielt das Thema Grafikprogrammierung in unserem siebenten Vulkan-Demoprogramm lediglich eine untergeordnete Rolle. Stattdessen dreht sich heute alles um einige andere (nicht minder) wichtige Themen, mit denen man sich als Spieleentwickler tagtäglich auseinandersetzen muss:

  • Erkennung von möglichen Kollisionen und Formulierung einer dazu passenden Antwort (Collision-Detection+Collision-Response).
  • Implementierung von einfachen KI-Routinen (KI: künstlichen Intelligenz) für die Steuerung der Schläger.
  • Implementierung eines einfachen Bewegungsmodells für die Bälle und Schläger.
  • Implementierung eines Punktesystems (Punktgewinne und -abzüge sowie Zeitstrafen).

Vulkan-Framework-Demoprogramm 6 (Billboard Rendering)

Im Zuge unseres sechsten Vulkan-Demoprogramms kommen wir auf das Thema Billboard-Rendering zu sprechen. Billboard-Objekte sind von entscheidender Bedeutung bei der Darstellung von gigantischen Explosionen, Sternen, galaktischen Hintergrundnebeln, Wolken, Sonnenstrahlen, Lens Flares, Energiewaffen, Positionslichtern, Feuer, Rauch und Partikeleffekten.





Bei einem Billboard-Objekt handelt es sich um ein texturiertes Vertex-Quad oder Vertex-Kreuz, welches entsprechend der Blickrichtung des Spielers im Raum positioniert und ausgerichtet wird.








Windows-Konsolenanwendungen (Farbe, Double Buffering, Event Loops und mehr)

Es liegt in der Natur der Dinge, dass man sich beim Erlernen einer neuen Programmiersprache wie C++ zunächst einmal lediglich auf die Entwicklung einfacher Konsolenanwendungen konzentriert und solche „Kleinigkeiten“ wie die grafische Ausgestaltung der einzelnen Programme oder das Input-Handling auf einen späteren Zeitpunkt verschiebt. Allerdings wirkt die für eine Konsolenanwendung typische winzig kleine graue Schrift vor schwarzem Hintergrund auf Dauer ein wenig demotivierend. Denn sein wir doch mal ehrlich, ohne Farbe macht das Leben und das Lernen einfach keinen Spaß!
Wenn Sie jetzt der Meinung sind, dass die Grafikprogrammierung ein Thema für fortgeschrittenere Programmierer ist, dann will ich Ihnen da gar nicht widersprechen. Was ich jedoch im Sinn habe, sind einfach zu nutzende Funktionen, mit deren Hilfe sich ein tristes Windows-Konsolenfenster (unter Windows Vista oder neuer) ohne großen Aufwand verschönen und an die jeweilen Programmanforderungen anpassen lässt. Mit den von Windows bereitgestellten Konsolen-API-Funktionen wäre es sogar problemlos möglich, die alten 2D-Spieleklassiker (Klötzchengrafik, 16 Farben) wieder zu neuem Leben zu erwecken!
Mit Hilfe der in den nachfolgenden Programmbeispielen zum Einsatz kommenden Helper-Klasse sollte es für Sie problemlos möglich sein, Ihre eigenen Konsolenanwendungen im Handumdrehen ein wenig aufzuhübschen. Schauen wir uns doch gleich einmal an, bei welchen Aufgaben uns die CWinConsoleHelperClass so alles behilflich sein kann:

  • Änderung der Fenstergröße.
  • Änderung des Titels.
  • Änderung der Schriftart, Schriftgröße und Schriftdicke.
  • Änderung der Hintergrundfarbe des kompletten Konsolenfensters (RGB-Farbschema).
  • Mehrfarbige Textausgabe (16 Schriftfarben + 16 Hintergrundfarben) an beliebigen Positionen.
  • Einzelne Zeichen, Pixel oder komplette Text-Strings (16 Schriftfarben + 16 Hintergrundfarben) lassen sich in einem sogenannten Back Buffer zwischenspeichern und zu einem späteren Zeitpunkt auf dem Bildschirm präsentieren (Double Buffering).
  • Abfrage von Keyboard- und Maus-Nachrichten.
  • Exakte Zeitmessung (mit Hilfe des Performance Counters) als Grundlage für die Implementierung eigener Ereignisschleifen (Event Loop).