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 noEditorand one is unlikely to exist in the future.
Golias focuses on code-driven development, cross-platform compatibility, and learning.
| Renderer Backend | Status |
|---|---|
| OpenGL 3.3 / OpenGLES 3.0 | ✅ Fully supported |
| Metal | |
| 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.
- Model Loading
- PBR (Physically Based Rendering) — Cook-Torrance GGX BRDF
- Metallic-Roughness workflow
- Albedo, Normal, Metallic-Roughness, AO, Emissive maps
- Clear coat
- Subsurface scattering
- Parallax occlusion mapping
- Blinn-Phong Shading Model
- Skybox (Cubemap 6-face & Equirectangular)
- IBL (Image-Based Lighting) — diffuse irradiance + specular environment
- Culling
- Frustum Culling
- Occlusion Culling
- Normal Mapping (TBN calculated per fragment)
- 3D Physics (Bullet Physics)
- Rigid Bodies (Static, Dynamic, Kinematic)
- Collision Shapes (Box, Sphere, Capsule, Convex Hull, Triangle Mesh)
- Character Controller (capsule-based kinematic with stepping & jumping)
- Soft Body Physics
- Joints & Constraints
- Lighting System
- Directional Light
- Point Light
- Spot Light
- Area Light
- Light Probes
- Volumetric Lighting / Fog
- Shadow Mapping
- CSM (Cascaded Shadow Maps) — 4 cascades, PCF 3×3 soft shadows
- Screen Space Reflections (SSR) — Simplified binary screen-space ray marching (noisy)
- Screen Space Ambient Occlusion (SSAO) — hemisphere kernel, 32 samples, blur pass
- Depth pre-pass - reduce overdraw
- Post-Processing Pipeline
- Bloom — without up/downsampling (single-pass threshold + blur)
- SSAO — hemisphere kernel, 32 samples, blur pass
- FXAA — fast approximate anti-aliasing
- Tone Mapping — Reinhard, ACES, Uncharted2, AGX
- HDR Rendering — R16G16B16A16_FLOAT render targets, GLES3 fallback
- Gamma Correction
- Color Grading
- Depth of Field
- Chromatic Aberration
- Vignetting
- Motion Blur
- Temporal Anti-Aliasing (TAA)
- Animation System
- Skeletal Animation — CPU & GPU skinning
- Hierarchical Animation
- Blend Trees
- Inverse Kinematics (IK)
- Level of Detail (LOD) Support
- Decal System
- Global Illumination
- Terrain System
- Sprite Rendering
- Text Rendering
- Truetype Font Support (FreeType)
- Bitmap Font Support
- Rich Text Support (color, size, font, etc.)
- Text Layout Engine (line breaking, alignment, kerning)
- Multilingual Text Support (Unicode, RTL languages)
- Emoji Support
- Audio System (spatial & non-spatial, OGG/WAV/FLAC/MP3)
- Particle System (CPU & GPU)
- Cross-Platform Unified Rendering Pipeline by design
- Web (WASM) Support
- Native Support: Windows, Linux, macOS, Android, iOS and Web
- Entity Component System (ECS) (EnTT)
- Scene serialization / deserialization (Yaml)
- Prefab system
- Custom Shader Language based on
GLSL - Scripting Support - [x] Native Scripting (c++) - [ ] Python Scripting (pocketpy)
- UI Canvas System (SCREEN / WORLD space)
- Text
- Button
- Image
- Slider
- Panel
- Dropdown
- Nine-Patch
- 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
| 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 |
⚠️ Note: This diagram is a work in progress and may not reflect the current state of the engine.
Please refer to the BUILDING.md file for detailed instructions on how to build Golias Engine from source on various platforms.
All third-party libraries are vendored as git submodules or included directly in the
thirdparty/directory, check their respective licenses for more details.
This project is licensed under the MIT License - see the 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.
