Golias Engine
A C++ 20 'game engine' built with SDL3 with wide platform support.
Golias Engine Build and Test docs C++ 20 License

Platforms

Golias Engine is a lightweight and modular 2D/3D game engine/framework written in C/C++, designed to be * *simple yet powerful**.

⚠️ Note: Currently there is no Editor and one is unlikely to exist in the future.
Golias focuses on code-driven development, cross-platform compatibility, and learning.

</blockquote>

Rendering Backends & Supported Platforms

Renderer Backend Status
OpenGL 3.3 / OpenGLES 3.0 ✅ Fully supported
Metal ⚠️ In Progress
Vulkan ✅ Fully supported
Direct3D 12 ✅ Fully supported
Proprietary APIs 🚫 No ETA
Platform Category Notes Status
Windows Desktop
Linux Desktop
macOS Desktop
Android Mobile
iOS Mobile
Web Web WebAssembly / WebGL
Xbox Console This platform requires NDA 🚫
PlayStation Console This platform requires NDA 🚫
Nintendo Console This platform requires NDA 🚫

⚠️ Note: Proprietary APIs for consoles are not publicly available and thus cannot be implemented or tested.

Features

  • [x] Model Loading
  • [x] PBR (Physically Based Rendering) — Cook-Torrance GGX BRDF
    • [x] Metallic-Roughness workflow
    • [x] Albedo, Normal, Metallic-Roughness, AO, Emissive maps
    • [ ] Clear coat
    • [ ] Subsurface scattering
    • [ ] Parallax occlusion mapping
  • [x] Blinn-Phong Shading Model
  • [x] Skybox (Cubemap 6-face & Equirectangular)
  • [x] IBL (Image-Based Lighting) — diffuse irradiance + specular environment
  • [ ] Culling
    • [x] Frustum Culling
    • [ ] Occlusion Culling
  • [x] Normal Mapping (TBN calculated per fragment)
  • [x] 3D Physics (Bullet Physics)
    • [x] Rigid Bodies (Static, Dynamic, Kinematic)
    • [x] Collision Shapes (Box, Sphere, Capsule, Convex Hull, Triangle Mesh)
    • [x] Character Controller (capsule-based kinematic with stepping & jumping)
    • [ ] Soft Body Physics
    • [ ] Joints & Constraints
  • [x] Lighting System
    • [x] Directional Light
    • [x] Point Light
    • [x] Spot Light
    • [ ] Area Light
    • [ ] Light Probes
    • [ ] Volumetric Lighting / Fog
  • [x] Shadow Mapping
    • [x] CSM (Cascaded Shadow Maps) — 4 cascades, PCF 3×3 soft shadows
  • [x] Screen Space Reflections (SSR) — Simplified binary screen-space ray marching (noisy)
  • [x] Screen Space Ambient Occlusion (SSAO) — hemisphere kernel, 32 samples, blur pass
  • [ ] Depth pre-pass - reduce overdraw
  • [x] Post-Processing Pipeline
    • [x] Bloomwithout up/downsampling (single-pass threshold + blur)
    • [x] SSAO — hemisphere kernel, 32 samples, blur pass
    • [x] FXAA — fast approximate anti-aliasing
    • [x] Tone Mapping — Reinhard, ACES, Uncharted2, AGX
    • [x] HDR Rendering — R16G16B16A16_FLOAT render targets, GLES3 fallback
    • [x] Gamma Correction
    • [ ] Color Grading
    • [ ] Depth of Field
    • [ ] Chromatic Aberration
    • [ ] Vignetting
    • [ ] Motion Blur
    • [ ] Temporal Anti-Aliasing (TAA)
  • [x] Animation System
    • [x] Skeletal Animation — CPU & GPU skinning
    • [x] Hierarchical Animation
    • [ ] Blend Trees
    • [ ] Inverse Kinematics (IK)
  • [ ] Level of Detail (LOD) Support
  • [ ] Decal System
  • [ ] Global Illumination
  • [ ] Terrain System

General Features

  • [x] Sprite Rendering
  • [x] Text Rendering
    • [x] Truetype Font Support (FreeType)
    • [x] Bitmap Font Support
    • [x] Rich Text Support (color, size, font, etc.)
    • [x] Text Layout Engine (line breaking, alignment, kerning)
    • [ ] Multilingual Text Support (Unicode, RTL languages)
    • [ ] Emoji Support
  • [x] Audio System (spatial & non-spatial, OGG/WAV/FLAC/MP3)
  • [ ] Particle System (CPU & GPU)
  • [x] Cross-Platform Unified Rendering Pipeline by design
  • [x] Web (WASM) Support
  • [x] Native Support: Windows, Linux, macOS, Android, iOS and Web
  • [x] Entity Component System (ECS) (EnTT)
    • [x] Scene serialization / deserialization (Yaml)
    • [x] Prefab system
  • [x] Custom Shader Language based on GLSL
  • [ ] Scripting Support
    • [x] Native Scripting (c++)
    • [ ] Python Scripting (pocketpy)
  • [x] UI Canvas System (SCREEN / WORLD space)
    • [x] Text
    • [x] Button
    • [x] Image
    • [x] Slider
    • [x] Panel
    • [x] Dropdown
    • [ ] Nine-Patch
    • [x] Rich Text
    • [ ] Layout Groups (Horizontal, Vertical, Grid)
    • [ ] InputTextField
  • [ ] Networking Module
    • [ ] Client / Server architecture (ENet)
    • [ ] State synchronization
    • [ ] RPC (Remote Procedure Calls)
    • [ ] HTTP/s Requests (libcurl)
    • [ ] WebSocket Support (?)
  • [ ] Instanced Rendering
  • [ ] Job System / Multithreading

Supported File Formats

Asset Type Supported Formats
3D Models See Assimp Supported Formats
Images PNG, JPEG, BMP, TGA, DDS (Unsupported), ETC.
Fonts TTF & OTF.
Audio OGG, WAV, FLAC, MP3, ETC.
Serialization Json & Yaml
Shaders Custom GLSL-based shader language
UI Layouts Custom XML format
Scenes Custom YAML format

Engine Core Architecture

⚠️ Note: This diagram is a work in progress and may not reflect the current state of the engine.

Engine Architecture


📚 Documentation & Examples


Building from Source

Please refer to the BUILDING.md file for detailed instructions on how to build Golias Engine from source on various platforms.

Third-Party Libraries Used

All third-party libraries are vendored as git submodules or included directly in the thirdparty/ directory, check their respective licenses for more details.

License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

⚠️ Disclaimer: This project is a personal endeavor and is not affiliated with any company or organization. It is intended for educational and experimental purposes only.