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
OS |
Supported |
Windows (10 & 11) |
✅ |
Linux |
🚧 |
Android |
🚧 |
macOS |
🚧 |
API |
Supported |
D3D11 |
✅ |
D3D12 |
🚧 |
Vulkan |
🚧 |
OpenGL |
🚧 |
API |
Supported |
OpenAL Soft |
✅ |
XAudio2 |
🚧 |
- 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...
- Colliders:
- Box
- Capsule
- Convex Mesh
- Mesh
- Plane
- Sphere
- Terrain
- Rigid Bodies (Static, Dynamic, Kinematic)
- Character Controllers:
- Joints:
- Ball
- D6
- Distance
- Fixed
- Hinge
- Slider
- 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, OpenALSoft, and XAudio2 + X3DAudio
- Asynchronous loading for meshes and more
- Thread-safe caches with lazy disk writing
- 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)
- Physically based Rendering (Roughness, Metallic, Reflectance, AO Workflow)
- 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)
- XAML Support
- Routed events
- Automatic layouting
- Controls:
- Button, TextBox, Image, Grid, StackPanel
- Playing Wav files
- 3D-Spatial audio processing
- Listeners
- Emitters
![image](https://private-user-images.githubusercontent.com/46632782/350955088-81428c20-44c6-4fcd-bd4a-b861cecf9851.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyNzQxNDksIm5iZiI6MTcyNDI3Mzg0OSwicGF0aCI6Ii80NjYzMjc4Mi8zNTA5NTUwODgtODE0MjhjMjAtNDRjNi00ZmNkLWJkNGEtYjg2MWNlY2Y5ODUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDIwNTcyOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWExM2M1ZjlhZmIzYjdkNDM4OTU4MjE4MTFkODg1M2MzMWY4ZmI3MTA4ZTUxY2RhYzg5ZGRiNWM5ZTgxODQ4MDYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.EFGt19AjGPQSbAgLl38YLQEJPS2CMM9Ay8odnfnwUlM)