Skip to content

Latest commit

Β 

History

463 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HexaEngine

A work in progress Game Engine written in C#, aiming for high performance and cross-platform compatibility (currently only Windows). It incorporates SIMD optimizations and multithreading throughout. The engine adopts an ECS-like approach but with unique twists to enhance flexibility and performance.

Community

Sub-Projects/Modules

Build

  • .NET SDK 9.0+ (some sub-projects target .NET 10.0)

Platforms

OS Supported
Windows (10 & 11) βœ…
Linux 🚧
Android 🚧
macOS 🚧

Graphics Backends

API Supported
D3D11 βœ…
D3D12 🚧
Vulkan 🚧
OpenGL ❌

(For more info on OpenGL, see #81)

Audio Backends

API Supported
MiniAudio βœ…
OpenAL Soft 🚧 (legacy, not wired into the engine)
XAudio2 🚧 (legacy, not wired into the engine)

Features

Integrated Level Editor

  • Project Management
  • Package Manager
  • Plugin System
  • Advanced and flexible asset import pipeline supporting async
  • Git Integration
  • Performance Profiler (WIP)
  • Integrated text editor
  • Integrated image editor
  • Node-based material editor
  • Intuitive terrain editor with procedural generation
  • And much more...

Physics (PhysX 5.3.1)

  • Colliders:
    • Box
    • Capsule
    • Convex Mesh
    • Mesh
    • Plane
    • Sphere
    • Terrain
  • Rigid Bodies (Static, Dynamic, Kinematic)
  • Character Controllers:
    • Capsule
    • Box
  • Joints:
    • Ball
    • D6
    • Distance
    • Fixed
    • Hinge
    • Slider

Engine Architecture

  • ECS-like Scene Architecture with support for data-driven and non-data-driven execution
  • Multi-threaded scene updates (Rendering and Scene ticks run in parallel for maximum performance)
  • Thread-Safe Resource Management via Factories with automatic cleanup
  • Abstraction layer for various Graphics and Audio APIs like D3D11, D3D12, Vulkan, and MiniAudio
  • Asynchronous loading for meshes and more
  • Thread-safe caches with lazy disk writing

Scripting with C#

  • Unity-like Coroutines with reusable coroutines
  • Job-System with reusable jobs
  • Multithreaded script execution (coming soon)
  • Order of execution via DAG and Priorities (coming soon)
  • Scene-independent Global Scripts (coming soon)
  • Scene Queries for fast accessing a specific GameObject or Component depending on user-defined filters via events
  • Easy integration of editor variables using the [EditorProperty] Attribute
  • Unity-like Input System (offers maximum flexibility)

Rendering

  • Physically based Rendering (Roughness, Metallic, Reflectance, AO Workflow)
  • SDR (Gamma 2.2 Rec. 709) and HDR10 (SMPTE ST 2084 Rec. 2020) support with automatic switching.
  • Skinned Mesh Rendering
  • Multi-Layered Terrain rendering with optional GPU Tessellation
  • Level of detail:
    • LOD Generator (Fast Quadric Mesh Simplification)
  • GPU Particle Systems:
    • Render over thousands particles without performance impact
  • Lighting:
    • Ambient Lights
    • Directional Lights
    • Point Lights
    • Spotlights
    • Global Illumination over IBL importance sampling, SSGI, and Voxel Global Illumination (coming soon)
  • Skybox Models:
    • Environment Texture
    • Hosek Wilkie
    • Preetham
    • Custom Sky
  • Shadow Mapping:
    • Perspective Shadow Mapping (PSM)
    • Omni Directional Shadow Mapping (OSM)
    • Dual Parabolic Shadow Mapping (DPSM)
    • Cascaded Shadow Mapping (CSM)
    • A Shadow Atlas for OSM DPSM and PSM
    • Percent Closer Filter, Variance Shadow Mapping, and more
  • Hybrid renderer (Clustered Forward and Clustered Deferred)
  • Many post-processing effects (including DoF, SSR, Tonemapping, LUT, Bloom, Motion blur)
  • Ambient Occlusion (SSAO, HBAO+, GTAO, and ASSAO are coming soon)
  • Frustum and Occlusion Culling (GPU based)

UI System (WIP)

  • XAML Support
  • Routed events
  • Automatic layouting
  • Controls:
    • Button, TextBox, Image, Grid, StackPanel

Audio System

  • Powered by MiniAudio
  • Playback of common audio formats (via MiniAudio decoders)
  • 3D-Spatial audio processing
  • Listeners
  • Emitters
  • Buffer and scripting support for audio playback

Screenshots

image

Credits

Releases

Sponsor this project

Used by

Contributors

Languages