
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] Bloom — without 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.

📚 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.