{"id":19720874,"url":"https://github.com/hexaengine/hexaengine","last_synced_at":"2025-04-05T08:08:55.618Z","repository":{"id":48275313,"uuid":"512805808","full_name":"HexaEngine/HexaEngine","owner":"HexaEngine","description":"The official repo of the HexaEngine game engine","archived":false,"fork":false,"pushed_at":"2024-12-08T16:44:26.000Z","size":474821,"stargazers_count":85,"open_issues_count":14,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-11T09:15:29.473Z","etag":null,"topics":["csharp","d3d11","game-engine","graphics","high-fidelity","high-performance","pbr","windows"],"latest_commit_sha":null,"homepage":"https://hexaengine.github.io/HexaEngine/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HexaEngine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"junameinhold","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2022-07-11T15:12:06.000Z","updated_at":"2024-12-11T04:51:52.000Z","dependencies_parsed_at":"2024-12-25T01:19:05.866Z","dependency_job_id":null,"html_url":"https://github.com/HexaEngine/HexaEngine","commit_stats":null,"previous_names":["hexaengine/hexaengine"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HexaEngine%2FHexaEngine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HexaEngine%2FHexaEngine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HexaEngine%2FHexaEngine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HexaEngine%2FHexaEngine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HexaEngine","download_url":"https://codeload.github.com/HexaEngine/HexaEngine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247305935,"owners_count":20917208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","d3d11","game-engine","graphics","high-fidelity","high-performance","pbr","windows"],"created_at":"2024-11-11T23:12:48.255Z","updated_at":"2025-04-05T08:08:55.599Z","avatar_url":"https://github.com/HexaEngine.png","language":"C#","funding_links":["https://ko-fi.com/junameinhold"],"categories":[],"sub_categories":[],"readme":"# HexaEngine\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"300\" height=\"300\" src=\"https://raw.githubusercontent.com/JunaMeinhold/HexaEngine/master/icon.png\"\u003e\n\u003c/p\u003e\n\nA 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.\n\n## Community\n- Discord: [https://discord.gg/VawN5d8HMh](https://discord.gg/VawN5d8HMh)\n\n## Sub-Projects/Modules\n- [Hexa.NET.DebugDraw](https://github.com/HexaEngine/Hexa.NET.DebugDraw) A library for drawing basic 3D shapes in immediate-mode.\n- [Hexa.NET.Math](https://github.com/HexaEngine/Hexa.NET.Math) A math library for Game Engines (Vector math to Sky models).\n- [Hexa.NET.Utilities](https://github.com/HexaEngine/Hexa.NET.Utilities) A utility library for working with unmanaged memory and more.\n\n## Build\n- .NET SDK 8.0\n\n### Platforms\n| OS       | Supported          |\n| -------- | ------------------ |\n| Windows (10 \u0026 11)  | ✅ |\n| Linux    | 🚧 |\n| Android  | 🚧 |\n| macOS    | 🚧 |\n\n### Graphics Backends\n| API      | Supported          |\n| -------- | ------------------ |\n| D3D11    | ✅ |\n| D3D12    | 🚧 |\n| Vulkan   | 🚧 |\n| OpenGL   | ❌ | \n\n(For more info on OpenGL, see [#81](https://github.com/HexaEngine/HexaEngine/issues/81))\n\n### Audio Backends\n| API          | Supported          |\n| ------------ | ------------------ |\n| OpenAL Soft  | ✅ |\n| XAudio2      | 🚧 |\n\n# Features\n\n## Integrated Level Editor\n- Project Management\n- Package Manager\n- Plugin System\n- Advanced and flexible asset import pipeline supporting async\n- Git Integration\n- Performance Profiler (WIP)\n- Integrated text editor\n- Integrated image editor\n- Node-based material editor\n- Intuitive terrain editor with procedural generation\n- And much more...\n\n## Physics (PhysX 5.3.1)\n- Colliders:\n  - Box\n  - Capsule\n  - Convex Mesh\n  - Mesh\n  - Plane\n  - Sphere\n  - Terrain\n- Rigid Bodies (Static, Dynamic, Kinematic)\n- Character Controllers:\n  - Capsule\n  - Box\n- Joints:\n  - Ball\n  - D6\n  - Distance\n  - Fixed\n  - Hinge\n  - Slider\n\n## Engine Architecture\n- ECS-like Scene Architecture with support for data-driven and non-data-driven execution\n- Multi-threaded scene updates (Rendering and Scene ticks run in parallel for maximum performance)\n- Thread-Safe Resource Management via Factories with automatic cleanup\n- Abstraction layer for various Graphics and Audio APIs like D3D11, D3D12, Vulkan, OpenALSoft, and XAudio2 + X3DAudio\n- Asynchronous loading for meshes and more\n- Thread-safe caches with lazy disk writing\n\n## Scripting with C#\n- Unity-like Coroutines with reusable coroutines\n- Job-System with reusable jobs\n- Multithreaded script execution (coming soon)\n- Order of execution via DAG and Priorities (coming soon)\n- Scene-independent Global Scripts (coming soon)\n- Scene Queries for fast accessing a specific GameObject or Component depending on user-defined filters via events\n- Easy integration of editor variables using the [EditorProperty] Attribute\n- Unity-like Input System (offers maximum flexibility)\n\n## Rendering\n- Physically based Rendering (Roughness, Metallic, Reflectance, AO Workflow)\n- SDR (Gamma 2.2 Rec. 709) and HDR10 (SMPTE ST 2084 Rec. 2020) support with automatic switching.\n- Skinned Mesh Rendering\n- Multi-Layered Terrain rendering with optional GPU Tessellation\n- Level of detail:\n  - LOD Generator (Fast Quadric Mesh Simplification)\n- GPU Particle Systems:\n  - Render over thousands particles without performance impact\n- Lighting:\n  - Ambient Lights\n  - Directional Lights\n  - Point Lights\n  - Spotlights\n  - Global Illumination over IBL importance sampling, SSGI, and Voxel Global Illumination (coming soon)\n- Skybox Models:\n  - Environment Texture\n  - Hosek Wilkie\n  - Preetham\n  - Custom Sky\n- Shadow Mapping:\n  - Perspective Shadow Mapping (PSM)\n  - Omni Directional Shadow Mapping (OSM)\n  - Dual Parabolic Shadow Mapping (DPSM)\n  - Cascaded Shadow Mapping (CSM)\n  - A Shadow Atlas for OSM DPSM and PSM\n  - Percent Closer Filter, Variance Shadow Mapping, and more\n- Hybrid renderer (Clustered Forward and Clustered Deferred)\n- Many post-processing effects (including DoF, SSR, Tonemapping, LUT, Bloom, Motion blur)\n- Ambient Occlusion (SSAO, HBAO+, GTAO, and ASSAO are coming soon)\n- Frustum and Occlusion Culling (GPU based)\n\n## UI System (WIP)\n- XAML Support\n- Routed events\n- Automatic layouting\n- Controls:\n  - Button, TextBox, Image, Grid, StackPanel\n\n## Audio System\n- Playing Wav files\n- 3D-Spatial audio processing\n- Listeners\n- Emitters\n\n## Screenshots\n![image](https://github.com/user-attachments/assets/81428c20-44c6-4fcd-bd4a-b861cecf9851)\n\n# Credits\n- [imgui](https://github.com/ocornut/imgui)\n- [ImGuizmo](https://github.com/CedricGuillemet/ImGuizmo)\n- [imnodes](https://github.com/Nelarius/imnodes)\n- [implot](https://github.com/epezent/implot)\n- [Silk.NET](https://github.com/dotnet/Silk.NET)\n- [K4os.Compression.LZ4](https://github.com/MiloszKrajewski/K4os.Compression.LZ4)\n- [Newtonsoft.Json](https://www.newtonsoft.com/json)\n- [libgit2sharp](https://github.com/libgit2/libgit2sharp/)\n- [Hardware.Info](https://github.com/Jinjinov/Hardware.Info)\n- [MagicPhysX](https://github.com/Cysharp/MagicPhysX)\n- [octokit.net](https://github.com/octokit/octokit.net)\n- [YamlDotNet](https://github.com/aaubry/YamlDotNet)\n- [commandline](https://github.com/commandlineparser/commandline)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexaengine%2Fhexaengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhexaengine%2Fhexaengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexaengine%2Fhexaengine/lists"}