Faulve Corps OPC. — 2025
Genesis Game Engine is a cross-platform, high-performance, modular C++ game engine designed to let developers build and publish games on Windows, Linux, and macOS, with support planned for additional platforms.
It supports multiple graphics, audio, and compute APIs, allows developers to expose game logic for modding, and can be built with or without an editor — offering full control over performance, architecture, and distribution.
- Graphics APIs: DirectX (WinAPI, Windows-only), OpenGL, Vulkan
- Compute APIs: OpenCL for heavy computation
- XR Support: OpenXR
- Abstract API Layer: Enables runtime selection or graceful fallback between backends
- Audio: OpenAL
- 3D Assets: Assimp for model importing
- Custom Asset Pipeline: Optimized formats for fast loading and runtime efficiency
- Expose selective game files, classes, methods, and variables for modding
- Embed or interoperate with Lua, Python, or other scripting languages
- Provide optional language bindings for C# or Java
- Use static linking (
.lib/.a) for engine and game libraries instead of many DLLs - Integrate projects in one Visual Studio solution
- Output a single executable with minimal external dependencies
- Optional editor; engine can be compiled headless
- Pure native C++ for maximum speed and low-level control
- Explicit memory management and optional multithreading
- Supports cross-language interop for custom or external game code
/Engine
/Core
- Windowing & Input (SDL3)
- Rendering (DirectX / OpenGL / Vulkan abstraction)
- Audio (OpenAL)
- Physics (BulletPhysics)
- ECS (EnTT)
- Scripting API (Lua/Python/C# interop hooks)
- Asset Management (Assimp + optimized formats)
/Utils
- Math (vec/mat/quat)
- Logging & Debugging
- Profiling Tools
/Game
- Game Logic (static lib / dynamic module)
- Levels / Scenes
- Exposed Modding API
/Launcher
- Game Loader / Bootstrapper
- Optional Editor
- Build & Export Tools
/Tools
- Shader Compiler / Preprocessor
- Asset Converter / Packer
- Packaging Scripts (single-exe or installer)
- Interface:
IGraphicsAPIbool Init(WindowHandle, GraphicsConfig)void SetViewport(...),SetShader(...),DrawMesh(...),SwapBuffers()
- Backends:
DirectXRenderer(Windows-only)VulkanRenderer(cross-platform)OpenGLRenderer(compatibility)
- Keeps backend-specific code isolated behind a unified interface.
- Load game logic as
.dll/.somodules during development for hot-swapping - Static linking for release builds
- Provide versioned C/C++ plugin interface and SDK headers for modders
- ImGui integration for runtime overlays (FPS, memory, draw calls, GPU timings)
- Lightweight logging and performance counters
- Use static linking where practical
- Create
.pakor.ggpakbinary asset containers - Optionally embed small assets (shaders, icons) directly into executables
- SDL3 for windowing and input
- CMake for builds (Visual Studio, Makefiles, Xcode)
- Conditional compilation:
#ifdef _WIN32→ DirectX- macOS → MoltenVK / Metal (future)
- Linux → Vulkan / OpenGL
| Phase | Focus | Description |
|---|---|---|
| 1 | Core Systems | Windowing, Input (SDL3), Renderer (Vulkan/OpenGL), Audio, ECS |
| 2 | Backends | Add DirectX, OpenCL, and OpenXR support |
| 3 | Modding & Editor | Plugin/mod system, editor prototype, single-exe export |
| 4 | Scripting & Runtime | Cross-language scripting, hot-reload, documentation, samples |
/root
/Engine
/Core (static lib)
/Renderers
/VulkanRenderer
/OpenGLRenderer
/DirectXRenderer (Windows-only)
/ThirdParty (Assimp, SDL3, OpenAL, Bullet, EnTT, ImGui)
/Utils
/GameProjects
/SampleGame (links Engine libs)
/Launcher (executable)
/Editor (optional)
/Tools
- asset_packer
- shader_compiler
CMakeLists.txt
docs/
LICENSE
README.md
- CMake as the main build system (generate Visual Studio, Xcode, or Makefile projects)
- Use
find_package()for third-party dependencies (SDL3, Assimp, Bullet, etc.) - CI Integration: GitHub Actions or Azure Pipelines for cross-platform builds
- Provide prebuilt Engine SDK (headers + static libs) for quick setup
- Use RAII and custom allocators in performance-critical systems
- Provide safe defaults: debug assertions, release optimizations
- Offer profiling markers (CPU/GPU timing) via renderer hooks
- Minimize ABI issues by versioning plugin interfaces
- Set up repository & CI with LICENSE and README
- Build minimal Core: SDL3 window + input, Vulkan/OpenGL renderer
- Integrate Assimp for model loading and rendering
- Implement ECS (EnTT) and simple scene with one moving entity
- Add ImGui overlay for debugging
- Prototype asset packing tool (pack/unpack shaders & textures)
- Scope Creep: Focus on minimal viable core before expanding
- ABI Stability vs Convenience: Maintain versioned plugin SDK
- Platform Specifics: DirectX and Metal require dedicated handling
© 2025 Faulve Corps OPC.
All rights reserved.
Future releases may adopt a custom license such as GENESIS-SA-NC-2.0 or similar.
The Genesis Game Engine strives to be:
“A truly modern, modular, and moddable game engine — unifying performance, portability, and creative freedom in one C++ ecosystem.”