MoltenEngine
A spare-time C# .NET 8 game engine project. Cross-platform, multi-threaded.
Install / Use
/learn @Syncaidius/MoltenEngineREADME
Molten started as spare-time engine project, which I eventually intend to use to develop my own games without relying on other engines. Hopefully you'll find a use for it too!
While parts of this project will inevitably be a classic case of re-inventing the wheel, I'm treating it as a chance to gain more experience in the area of game engine development.
Build Status
| Pathway | Status | Download |
| :--------- | :---- | -: |
| Dev (nightly) | |
|
| Release |
|
|
Core Feature Status
See the following table for the per-platform support and status of each feature.
| Key | Description | | :--- | :--- | | ✔️ | Functional/Complete | | 🚧 | Work in progres | | | Not Started | | 🚫 | Not-supported |
| Feature | Windows | Android | Linux | Mac | iOS |
| :--- | :-------: | :-----: | :---: | :-: | :-: |
| Renderer - Vulkan | 🚧 | | | | |
| Renderer - DirectX 12 | 🚧 | 🚫 | 🚫 | 🚫 | |
| Networking - MNet | | | | | |
| Audio Engine | 🚧 | | | | |
| Keyboard support | ✔️ | | | | |
| Mouse support | ✔️ | | | | |
| Touch support | 🚧 | 🚧 | | | |
| Game pad support | ✔️ | | | | |
| Entity component system | ✔️ | ✔️ | ✔️ | ✔️ | |
| Content Management System | ✔️ | | | | |
| Example projects | 🚧 | | | | |
| 2D Physics engine | | | | | |
| 3D Physics engine | | | | | |
| Tooling - Scene editor | | | | | |
| Tooling - Shader editor | | | | | |
| Tooling - Sprite editor | | | | | |
| Project templates | | | | | |
Renderer Feature Status
See the following table for the per-renderer support and status of each feature.
| Feature | DX12 | Vulkan | | :--- | :-----: | :-: | | Multi-GPU Support | 🚧 | 🚧 | | Deferrend rendering | | | | Physically-Based (PBR) | | | | Geometry Shaders | | | | Tessellation | | | | Hull & Domain Shaders | | | | Compute Shaders | | | | Mesh Shaders | | | | 2D Spite batching | | | | 2D Primitive batching | | | | Compressed textures | | | | Hardware instancing | | | | Occlusion culling | | | | Frustrum culling | | | | Portal culling | | | | Level of Detail (LoD) | | | | HDR support | | | | 2D Texture arrays | | | | 3D Texture arrays | | | | 3D/volume textures | | | | static skyboxes | | | | real-time skyboxes | | | | multi-window support | | | | Render into WinForms | | | | Render into WPF | | | | Render into UWP | | 🚫 | |Render into MAUI | | | | Render into Android UI | 🚫 | | | Raytracing | | | | Shader Compiler (HLSL/SPIR-V) | ✔️ | 🚧 |
Android
To build for Android you will need to install the Android workloads by running
dotnet workload install android in command prompt or powershell.
If you're upgrading from a previous .NET version, you may also need to run this command again to update the android workload.
Sponsors
A massive thank you to some of our sponsors:
Third-Party Libraries
A special thanks to each of these great libraries, without which Molten wouldn't exist in it's current form:
- Silk.NET - C# Bindings for DirectX 11/12, OpenGL, Vulkan, Assimp, OpenCL, OpenAL and OpenXR
- SharpDX - Source for some Molten.Math types
- Magick.NET - Extensive image library for .NET
- JSON.NET - JSON serialization
