Genesis Game Engine
Was ist die „Genesis Game Engine“?
Die Genesis Game Engine ist ein auf C# basierendes Framework zum Erstellen von 2D- und 3D-Spielen. Dabei liegt der Fokus auf einer einfachen Implementierung und Verwaltung von Szenen, Spielelementen und deren Komponenten. Trotzdem wurde darauf geachtet, Funktionen wie das Rendern, die Physik und die Komponenten so abstrakt wie möglich zu gestalten, um eigene Anpassungen leicht umsetzbar zu machen.
Wie funktioniert die Game Engine?
Die Funktionsweise der Engine ist leicht verständlich. Es wird immer nur eine Szene aktiv gerendert. Jede Szene kann eine beliebige Anzahl von Layern haben, zu denen dann Spielelemente hinzugefügt werden können. Diese können Sprites, 3D-Objekte oder auch leere Elemente sein. Jedes dieser Spielelemente nimmt wiederum Komponenten auf, die als "GameBehaviors" bezeichnet werden und mit denen die Logik des Spiels implementiert werden kann. Wie auch bei anderen Klassen in der Engine können eigene GameBehaviors oder sogar ganze Spielelemente mithilfe abstrakter Klassen erstellt werden. Genesis wird standardmäßig mit einer Sammlung der wichtigsten Elemente geliefert.
Wie wird die aktive Szene gerendert?
Derzeit gibt es ein Renderer, OpenGL 4.5, das mit DirectX 11 vergleichbar ist. Es können jedoch auch eigene Renderer erstellt werden. Die Integration von Vulkan und DirectX 12 ist für die Zukunft geplant. Als 3D-Format werden derzeit Wavefront-Dateien unterstützt. Dank der Game-Klasse, die Initialisierung, Rendern und Laden der Szene übernimmt, musst du dir keine weiteren Gedanken über das Rendern machen, sofern du dies nicht möchtest.
Wie wird die Physik des Spiels behandelt?
Die Physik wird über sogenannte PhysicHandler übernommen. Derzeit gibt es einen PhysicHandler3D und einen PhysicHandler2D, der mit BulletSharp, einem Bullet Physics Wrapper, die Physik innerhalb der Spielwelt simuliert. Wie auch bei den Renderern und Spielelementen können eigene PhysikHandler erstellt werden.
Welche Arten von Spielen können mit Genesis gemacht werden?
Derzeit können sehr gut 2D-Spiele aller Genres erstellt werden. 3D wird zum aktuellen Zeitpunkt noch nicht vollständig unterstützt; es fehlen Animationen, das Laden von FBX-Objekten sowie eine effiziente Möglichkeit, Schatten zu implementieren. Bei Letzterem gibt es bereits mehrere Ansätze, und es wird eines der nächsten Features sein.
Welche 3D-Funktionen existieren bereits?
Im 3D-Bereich funktioniert bereits das Laden und Rendern von Wavefront (.obj) Dateien sowie die Grundlagen der Physiksimulation (Kollisionen, Raycasts).
Wie werden Assets ins Spiel geladen?
Texturen und Schriftarten können einfach in den Ressourcenordner gelegt werden, der dann automatisch geladen wird. Beachte bitte, dass du, wenn du sie in den Ressourcenordner in Visual Studio kopierst, einstellen musst, dass sie beim Build kopiert werden. Mithilfe des Asset Managers kannst du dann darauf zugreifen oder auch die Texturen als Archiv verpacken, sodass du die RAR-Dateien nicht mit dem Projekt mitliefern musst.
Welche externen Libraries benutzt Genesis?
Genesis selbst verwendet Open-Source-Bibliotheken wie glmSharp, bulletSharp, NetGL und den OpenObjectLoader. Die einzelnen Lizenzen kannst du im License-Ordner einsehen.
Roadmap:
Verwendete Programmiersprache(n) und IDE(s):
Visual Studio 2022 | C++ / C#
Systemanforderungen:
.Net Framework 4.5
Systemveränderungen:
Keine Veränderungen
Download(s):
github.com/Andy16823/GFX/tree/main/GFX/GFX 0.1.0.0
Beispiele:
github.com/Andy16823/GFX/tree/main/Examples
Lizenz/Weitergabe:
MIT Lizenz
Was ist die „Genesis Game Engine“?
Die Genesis Game Engine ist ein auf C# basierendes Framework zum Erstellen von 2D- und 3D-Spielen. Dabei liegt der Fokus auf einer einfachen Implementierung und Verwaltung von Szenen, Spielelementen und deren Komponenten. Trotzdem wurde darauf geachtet, Funktionen wie das Rendern, die Physik und die Komponenten so abstrakt wie möglich zu gestalten, um eigene Anpassungen leicht umsetzbar zu machen.
Wie funktioniert die Game Engine?
Die Funktionsweise der Engine ist leicht verständlich. Es wird immer nur eine Szene aktiv gerendert. Jede Szene kann eine beliebige Anzahl von Layern haben, zu denen dann Spielelemente hinzugefügt werden können. Diese können Sprites, 3D-Objekte oder auch leere Elemente sein. Jedes dieser Spielelemente nimmt wiederum Komponenten auf, die als "GameBehaviors" bezeichnet werden und mit denen die Logik des Spiels implementiert werden kann. Wie auch bei anderen Klassen in der Engine können eigene GameBehaviors oder sogar ganze Spielelemente mithilfe abstrakter Klassen erstellt werden. Genesis wird standardmäßig mit einer Sammlung der wichtigsten Elemente geliefert.
Wie wird die aktive Szene gerendert?
Derzeit gibt es ein Renderer, OpenGL 4.5, das mit DirectX 11 vergleichbar ist. Es können jedoch auch eigene Renderer erstellt werden. Die Integration von Vulkan und DirectX 12 ist für die Zukunft geplant. Als 3D-Format werden derzeit Wavefront-Dateien unterstützt. Dank der Game-Klasse, die Initialisierung, Rendern und Laden der Szene übernimmt, musst du dir keine weiteren Gedanken über das Rendern machen, sofern du dies nicht möchtest.
Wie wird die Physik des Spiels behandelt?
Die Physik wird über sogenannte PhysicHandler übernommen. Derzeit gibt es einen PhysicHandler3D und einen PhysicHandler2D, der mit BulletSharp, einem Bullet Physics Wrapper, die Physik innerhalb der Spielwelt simuliert. Wie auch bei den Renderern und Spielelementen können eigene PhysikHandler erstellt werden.
Welche Arten von Spielen können mit Genesis gemacht werden?
Derzeit können sehr gut 2D-Spiele aller Genres erstellt werden. 3D wird zum aktuellen Zeitpunkt noch nicht vollständig unterstützt; es fehlen Animationen, das Laden von FBX-Objekten sowie eine effiziente Möglichkeit, Schatten zu implementieren. Bei Letzterem gibt es bereits mehrere Ansätze, und es wird eines der nächsten Features sein.
Welche 3D-Funktionen existieren bereits?
Im 3D-Bereich funktioniert bereits das Laden und Rendern von Wavefront (.obj) Dateien sowie die Grundlagen der Physiksimulation (Kollisionen, Raycasts).
Wie werden Assets ins Spiel geladen?
Texturen und Schriftarten können einfach in den Ressourcenordner gelegt werden, der dann automatisch geladen wird. Beachte bitte, dass du, wenn du sie in den Ressourcenordner in Visual Studio kopierst, einstellen musst, dass sie beim Build kopiert werden. Mithilfe des Asset Managers kannst du dann darauf zugreifen oder auch die Texturen als Archiv verpacken, sodass du die RAR-Dateien nicht mit dem Projekt mitliefern musst.
Welche externen Libraries benutzt Genesis?
Genesis selbst verwendet Open-Source-Bibliotheken wie glmSharp, bulletSharp, NetGL und den OpenObjectLoader. Die einzelnen Lizenzen kannst du im License-Ordner einsehen.
Roadmap:
- Implementieren von Schatten (3D)
Implementieren von Animationen (3D)Implementiert mit v. 1.1.2- Hinzufügen von weiteren UI Elementen (2D/3D)
- Hinzufügen von OpenAL (Sound)
- Bug Fixes
- 2D Szenen Editor
- 3D Szenen Editor
Verwendete Programmiersprache(n) und IDE(s):
Visual Studio 2022 | C++ / C#
Systemanforderungen:
.Net Framework 4.5
Systemveränderungen:
Keine Veränderungen
Download(s):
github.com/Andy16823/GFX/tree/main/GFX/GFX 0.1.0.0
Beispiele:
github.com/Andy16823/GFX/tree/main/Examples
Lizenz/Weitergabe:
MIT Lizenz
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Andy“ ()