Skip to content

vsaint1/golias-engine

Repository files navigation

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.


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

  • 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
    • Bloomwithout 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

General Features

  • 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

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

Releases

No releases published

Packages

 
 
 

Contributors