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.
- Model Loading (OBJ, FBX, GLTF/GLB)
- PBR (Physically Based Rendering)
SIMPLIFIED - Blinn-Phong Shading Model
- Skybox Reflections IBL (Image Based Lighting)
- Frustum Culling
- Normal mapping (TBN calculated per fragment)
- 3D Physics (Jolt Physics Engine)
- Lighting System
- Directional Light
- Point Light
- Spotlight
- Shadow Mapping
- CSM (Cascaded Shadow Maps) for Directional Lights
- Post-Processing Effects (Bloom, HDR, SSAO, Motion Blur, etc.)
- Animation System (Skeletal Animation)
- GPU Skinning
- Level of Detail (LOD) Support
- Skybox Support (Cubemap -> 6 faces or Equirectangular)
- 2D Sprite Rendering
- Text/Shaping Rendering (TrueType fonts and Emojis)
- Text Shaping (SDL_TTF + HarfBuzz)
- Tilemap Support (Orthogonal, Isometric)
- 2D Physics
- Audio System
- Particle System
- Cross-Platform Rendering and API by Design
- Web (WASM) Support
- Native Support: Windows, Linux, macOS, Android, iOS
- ECS (Entity Component System) Based
- Scripting Support (Lua)
- UI System (Buttons, Inputs, Checkboxes, etc.)
- Using Custom Shaders (not implemented yet)
- Forward Rendering
| Asset Type | Supported Formats |
|---|---|
| 3D Models | See https://www.assimp.org/ supported formats. |
| Images | PNG, JPEG, BMP, TGA, DDS, ETC. |
| Fonts | TTF & OTF. |
| Audio | OGG, WAV, FLAC, MP3, ETC. |
| Scenes | JSON |
⚠️ Note: Proprietary APIs for consoles are not publicly available and thus cannot be implemented or tested.
| Platform | Type | Backend | Status |
|---|---|---|---|
| Windows, Linux, macOS, Android, iOS, Web. | 2D/3D | OpenGL/ES Compatibility | ✅ Fully supported |
| Windows, Linux, macOS, Android, iOS, Web, Nintendo, Playstation, Xbox. | 2D | SDL_Renderer | ✅ Fully supported |
| macOS, iOS. | 3D | Metal | 🚧 Coming soon |
| Windows, Linux, macOS, Android. | 2D/3D | Vulkan | 🚫 No ETA |
| Windows, Xbox. | 2D/3D | DirectX 12 | 🚫 No ETA |
| Nintendo, Playstation, Xbox. | 2D/3D | Proprietary APIs | 🚫 No ETA |
⚠️ Note: This diagram is a work in progress and may not reflect the current state of the engine.
- Official Documentation
- Examples (coming soon)
- Tests
To build the Web version of the engine, you need Emscripten installed and activated.
⚠️ Note: Make sure to source theemsdk_env.shscript to set up the environment variables before building.
Then, run the following commands in your terminal:
git clone https://github.com/vsaint1/golias-engine.git
cd Golias_engine
git submodule update --init --recursive
emcmake cmake --preset=web-debug
emmake cmake --build build/webgl/debug- SDL3 - Windowing, Events, Platform Abstraction.
- GLM - Mathematics Library
- Assimp - 3D Model Importing
- stb_image - Image Loading
- mini_audio - Audio Playback
- SDL_TTF - TrueType Font Rendering
- Jolt Physics - 3D Physics Engine
- sol2 - Lua Scripting Language Binding
- flecs - Entity Component System (ECS) Framework
- tinyxml - XML Parsing
- nlohmann_json - JSON Parsing
- glad - OpenGL/ES function loader
All third-party libraries are vendored as git submodules or included directly in the
vendor/directory.
This project is licensed under the MIT License - see the LICENSE file for details.







