Code Monkey home page Code Monkey logo

moltenengine's Introduction

Molten Engine

Build Status

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.

Why Open-Source?

I've previously attempted a game engine back in 2015 using SharpDX and while it inevitably ended in failure, I learned a great deal in terms of game engine architecture and the way a GPU works under the hood, as well as other high-performance elements, such as multi-threading.

This is my second attempt at such an engine, so being able to share the code for others to learn from and perhaps even contribute to, seems like the right thing to do. Hopefully you'll find something useful around here!

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

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 ๐Ÿšซ ๐Ÿšซ ๐Ÿšซ

Third-Party Libraries

A special thanks to each of these great libraries, without which Molten wouldn't exist in it's current form:

  • SharpDX - DirectX bindings for C#
  • Magick.NET - Extensive image library for .NET
  • JSON.NET - JSON serialization
  • OpenTK - OpenGL, OpenAL and input bindings for C#

Licensing

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

moltenengine's People

Contributors

syncaidius avatar zeracronius avatar azure-pipelines[bot] avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.