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


Rendering Backends & Supported Platforms

Renderer Backend Status
OpenGL 3.3 / OpenGLES 3.0 ✅ Fully supported
Metal 🚫 No ETA
Vulkan 🚫 No ETA
Direct3D 12 🚫 No ETA
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.

Key Features

3D Features

  • Model Loading
  • PBR (Physically Based Rendering) SIMPLIFIED
  • Blinn-Phong Shading Model
  • Skybox Reflections IBL (Image Based Lighting)
  • Culling
    • Frustum Culling
    • Occlusion Culling
  • Normal mapping (TBN calculated per fragment)
  • 3D Physics (Bullet Physics)
  • 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 (Animation)
    • Skeletal Animation CPU & GPU Skinning
    • Hierarchical Animation
  • Level of Detail (LOD) Support
  • Skybox Support (Cubemap -> 6 faces & Equirectangular)

2D Features

  • Tilemap Support (Orthogonal, Isometric)
  • 2D Physics (Box2D)

General Features

  • Sprite Rendering
  • Text/Shaping Rendering (TrueType fonts and Emojis)
  • Audio System
  • Particle System (CPU & GPU)
  • Cross-Platform Unified Rendering Pipeline by Design
  • Custom Shader Language based on GLSL
  • Web (WASM) Support
  • Native Support: Windows, Linux, macOS, Android, iOS and Web
  • GameObject / Entity Component System (ECS)
  • Scripting Support (Python)
  • UI Canvas System (SCREEN/WORLD space)
    • Text
    • Button
    • Image
    • Slider
    • Panel
  • Networking Module (ENET)
  • Batched Rendering

Supported File Formats

Asset Type Supported Formats
3D Models See Assimp Supported Formats
Images PNG, JPEG, BMP, TGA, DDS, ETC.
Fonts TTF & OTF.
Audio OGG, WAV, FLAC, MP3, ETC.
Scenes JSON

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

Library Description License
SDL3 Windowing, input/events handling, and cross-platform abstraction Zlib License
GLM Header-only mathematics library for graphics (vectors, matrices, quaternions) MIT License
Bullet Physics Real-time 3D physics simulation Zlib License
Assimp Open Asset Import Library for 3D model loading BSD License
stb_image Header-only image loading (PNG, JPG, TGA, etc.) Public Domain / MIT
miniaudio Header-only audio playback and capture library Public Domain / MIT
FreeType Font rasterization engine FreeType License (BSD-style)
nlohmann/json Modern C++ JSON serialization/deserialization MIT License
glad OpenGL / OpenGL ES function loader MIT License

All third-party libraries are vendored as git submodules or included directly in the thirdparty/ directory.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Releases

No releases published

Packages

 
 
 

Contributors

Languages