C++20 · SFML · OPEN SOURCE

Kleine Bausteine.
Möglichkeiten in Bewegung.

Awesome Engine ist eine in Szenen organisierte 2D-Engine. Ein gemeinsamer Kontext bündelt die Systeme jedes Spiels, von der Eingabe bis zum letzten Frame.

Geprüften Code erkunden ↗
Über das Projekt

Eine Grundlage, die du
verstehen kannst.

Awesome Engine wurde von Carlos Cortina entwickelt und verbindet C++-Spiellogik mit wiederverwendbaren Diensten auf SFML. Die sieben enthaltenen Szenen zeigen, wie Grafik, Eingabe, Sound und Oberfläche in kleinen vollständigen Spielen zusammenwirken.

Der Aufbau setzt auf Komposition: Szenen erhalten einen EngineContext und nutzen Manager mit klaren Aufgaben. Der MIT-lizenzierte Code erlaubt es, diese Basis zu untersuchen, zu ändern und zu erweitern.

Das Repository veröffentlicht noch keine Entstehungsgeschichte oder formalen Ziele. Hier beschreiben wir den erkennbaren Aufbau und die verifizierten Fähigkeiten.

Allgemeine Architektur

Ein Kontext.
Verbundene Systeme.

Die Manager sind als Werte in EngineContext enthalten. SceneFactory erstellt und besitzt die Szenen über unique_ptr.

EINSTIEGSPUNKTmain() → EngineProcessEvent → Update → Render
GEMEINSAMER KONTEXT

EngineContext

RenderResourceAudioInputParticleTimeSceneGuiCursorSaveRandomScreenshotClipboard
LEBENSZYKLUS

SceneFactory → Scene

Bounce · Clicker · MemoryCard · TicTacToe · MineSweeper · Runner · Tetris

StartUpdateRenderOnEventOnPauseOnCleanup
Konzeptansicht des implementierten Codes · Referenzen und Aufgaben ansehen ↗

Der Weg eines Frames

01SzeneScene::Render()
02RenderTextureZeichnen außerhalb des Bildschirms
03Bloom + MonitorGLSL-Nachbearbeitung
04FensterGUI + Cursor + Anzeige

Oberfläche und Cursor werden nach der Nachbearbeitung der Szene gezeichnet. Glitch und Invertierung existieren im Code, sind in der geprüften Kette aber nicht aktiv.

Technologien der Engine

Konkrete Werkzeuge.
Klare Versionsangaben.

CMakeLists.txt ansehen ↗
C++20

Sprache der Engine und der Spielszenen.

Entwurf des Standards
SFML3.1.0

Fenster, Ereignisse, 2D-Grafik, Eingabe und Audio.

Repository ansehen
TGUI1.13.0

Grafische Oberfläche mit dem Backend SFML_GRAPHICS.

Repository ansehen
CMake3.28+

Konfiguration, Kompilierung und Herunterladen von Abhängigkeiten mit FetchContent.

Repository ansehen
nlohmann/json3.12.0

Konfiguration und Persistenz in JSON-Dateien.

Repository ansehen
spdlog1.16.0

Ereignisprotokollierung und Diagnose.

Repository ansehen
magic_enum0.9.8

Reflexionswerkzeuge für C++-Aufzählungen.

Repository ansehen
GLSLShader

Bloom-, Glitch-, Farbinvertierungs- und Monitoreffekte.

Spezifikation
Aktueller Umfang

Wichtig ist auch,
die Grenzen zu kennen.

Die vorgefundene Entwicklungsumgebung ist Windows mit MinGW, Ninja und GDB. Linux und macOS sind nicht verifiziert; Unterschiede bei der Großschreibung in Pfaden müssen geprüft werden.

Die Engine enthält keinen visuellen Editor, kein ECS, keine allgemeine Physik-Engine, kein Scripting und keinen Web- oder Mobile-Export. Kollisionen und Spielphysik sind szenenspezifisch.

Eine bekannte Einschränkung: Das Overlay fordert eine nicht registrierte Szene „Menu“ an. Die Dokumentation erläutert diesen Fall und weitere bestätigte Probleme.
Einschränkungen und Lösungen ansehen →