Implementation of the game

Autor: Jacob Rose

Wie ein Spiel unter der Haube aussieht

Für mich bestand die erste Herausforderung bei der Entwicklung eines Videospiels darin, die grundlegende Struktur hinter dem Spiel zu verstehen. Obwohl ich in der Vergangenheit viele Spiele gespielt hatte, habe ich mich nie gefragt, wie sie tatsächlich funktionieren. Ich habe es einfach als selbstverständlich hingenommen. Deshalb möchte ich zunächst erklären, wie ein Spiel tatsächlich funktioniert, wobei es verschiedene Aspekte zu beachten gibt:


Game-Loops
Wenn man ein Spiel spielt, passiert im Grunde genommen Folgendes: Es gibt zwei Schleifenfunktionen, die die gleichen Anweisungen immer wieder wiederholen, bis man das Spiel beendet. Die erste Funktion ist für die gesamte Logik des Spiels verantwortlich. Hier werden die Positionen des Spielers, der Gegner und der Geschosse berechnet, Kollisionen überprüft, die Gesundheit des Spielers und der Gegner angepasst und so weiter. Die zweite Funktion wird ausgeführt, nachdem die gesamte Logik berechnet wurde, und ist dafür verantwortlich, alle Elemente auf dem Bildschirm anzuzeigen . Dazu gibt es zwei Buffer: den front buffer und den back-buffer . Der front buffer enthält die Elemente die derzeit auf dem Bildschirm zu sehen sind. Der Hintergrundpuffer ist der Ort, an dem alle Elemente nacheinander gezeichnet werden. Nachdem alle Elemente auf den back buffer gezeichnet wurden, werden die beiden Puffer ausgetauscht. Der Vorteil dieses Prozesses besteht darin, dass das neue Bild erst gezeigt wird, nachdem alles vollständig gezeichnet wurde, anstatt dass alle Elemente nacheinander auf den Bildschirm gezeichnet werden. Bilddatei konnte nicht geladen werden


Game Engine
Die Game Engine ist die wichtigste Software, die beim Erstellen eines Spiels verwendet wird, und dient als Abstraktion von den Low-Level-Funktionen des Betriebssystems. Man kann sich das Ganze als eine große Bibliothek vorstellen, die Funktionen bereitstellt, um Elemente leicht auf dem Bildschirm darzustellen, Benutzereingaben zu lesen und zu verarbeiten, Audio zu handhaben, sich um die Speicherverwaltung zu kümmern und vieles mehr. Beliebte Game Engines sind zum Beispiel Unity, Godot oder die Unreal Engine. Für dieses Projekt hat unser Gruppenmitglied Mika Herrmann seine eigene Game Engine von Grund auf entwickelt und dabei verschiedene Bibliotheken wie OpenGL oder SDL verwendet. Mehr über seinen Beitrag kannst du hier erfahren.
Du kannst dir jedoch vorstellen, dass dies die Entwicklung für mich etwas schwieriger gemacht hat, da es keine Ressourcen im Internet gab. Ich musste Mikas Code verstehen und engen Kontakt zu ihm halten, um in der Lage zu sein, das Spiel umzusetzen.

Bilddatei konnte nicht geladen werden Bilddatei konnte nicht geladen werden Bilddatei konnte nicht geladen werden


Objekt orientierte Programmierung (OOP)
Der letzte Teil, der den Großteil meiner Zeit in Anspruch genommen hat, war die objektorientierte Programmierung (OOP). Alles, was im Spiel zu sehen ist, wird mithilfe von Klassen realisiert. Der Spieler, Gegner, Geschosse, die Spielwelt... sind alle selbst definierte Klassen, die oft aus kleineren Unterklassen bestehen. Was all diese Klassen gemeinsam haben, sind mehrere Methoden (onInit, onLoop, onRender, onClose), die entweder in den beiden Haupt-Schleifen des Spiels aufgerufen werden oder wenn das Spiel geöffnet oder geschlossen wird. Weitere Informationen zu den Hauptklassen findest du hier:
Spieler, Gegner und Schusssystem

Zurück