MoltenEngine icon indicating copy to clipboard operation
MoltenEngine copied to clipboard

A spare-time C# .NET 8 game engine project. Cross-platform, multi-threaded.

Molten Engine

Build Status Build Android Build Windows

Molten is a engine project I'm working on in my spare time as a means to eventually produce my own games without using a third party engine or framework such as Unity3D or MonoGame.

In the past I've used MonoGame, XNA and Unity3D to produce a game but never felt quite satisfied with the fact that I didn't actually create the foundations myself, as well as feeling frustrated at times by the limitations of third-party frameworks.

While parts of this project will inevitably be a classic case of re-inventing the wheel, I'm teating it as a chance to gain more experience in the area of game engine development.

Current Status

See the following table for the per-platform support and status of each feature.

✔️ Functional/Complete
🚧 Work in progres
Blank - Not Started
🚫 Not-applicable

Feature Windows Android Linux Mac
Renderer - OpenGL 🚫
Renderer - OpenES 🚫 🚫
Renderer - Vulkan
Renderer - DirectX 11 🚧 🚫 🚫 🚫
Renderer - DirectX 12 🚫 🚫 🚫
Audio - OpenAL
Audio - XAudio 2 🚫 🚫 🚫
Keyboard support ✔️
Mouse support ✔️
Touch support 🚧
Game pad support ✔️
Entity component system ✔️ ✔️ ✔️ ✔️
Example projects 🚧
Networking
2D Physics engine
3D Physics engine
Google Analytics
Google AdMob
Google Firebase
Tool - Content editor
Tool - Scene editor

Renderer Feature Support

See the following table for the per-renderer support and status of each feature.

✔️ Functional/Complete
🚧 Work in progres
Blank - Not Started
🚫 Not-supported

Feature DX11 DX12 OpenGL OpenGL ES Vulkan
Deferrend rendering 🚧
Geometry Shaders ✔️
Tessellation
Hull & Domain Shaders ✔️
Compute 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 🚫 🚫 🚫
HLSL Shader Compiler 🚧 🚫 🚫 🚫 🚫
GLSL Shader Compiler
SPIR-V Shader Compiler

Android

Molten has recently been upgraded to .NET 6. To build for Android you will need to install the Android workloads by running
dotnet workload install android in command prompt or powershell.

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

Licensing

MIT - You can do what you want with Molten. Fork it, chop it up and consume it for dinner. You get the idea!