mirror of
https://github.com/MadeOfJelly/MushMachine.git
synced 2024-12-05 03:33:27 +01:00
ENGINE..... vrooooommm
cmake | ||
docs | ||
external | ||
framework | ||
res | ||
screens | ||
systems | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
LICENSE | ||
mm_options_and_defines.cmake | ||
README.md |
MushMachine
This is a Game Engine/Framework, originally developed for GHdeducted (a 2D game), but has since expanded its scope to be more generic. For example it also includes 3D stuff, instead of just 2D. Furthermore it got stripped of some dependency heavy dependencies (yea that's a thing).
The initial Developers are Erik Scholz and Felix Richter. Currently developed and maintained by Erik Scholz.
The private repo had over 900 commits, before the first public release.
Links
- Gitlab
- Github
- Setup
- Example Game Setup
- The Docs Directory contains Documentation loosly based on the Source structure.
Platforms
- PC (Linux, Windows and maybe APPLE(untested))
- Android (untested)
- Web (huh? yea! via Emscripten, wasm and WebGL2)
- anything if you put your mind to it....
- Rendering wise, only Opengl3.3/ES3 is included in the Engine
Roadmap
- Rewrite the Input service (the code was ported in and is older than the Engine (2017))
- Extend the SDL service with Vulkan support (it's 2020 so yea)
- Filesystem refactor (like a proper file type, with destructor and stuff)
- l10n support
- ImGui integration refactor (for making it usable as a game ui, not just for debugging)
- more service interfaces (with focus on networking)
- multithreading updates (maybe a jobsystem idk)
Limitations
- Features in general. It's more of a Personal Framework than something I want everyone to use ;).
- Only ships where OpenGL 3.3 or OpenGL ES 3 are available (includes web via emsripten's ES3 emu)
- not optimized for performance
- no multithreading in the Engine itself
- basically most of the Roadmap fits here too
License
MIT you bet
Source Structure
- framework (where most of the code lives)
- systems (some prepackaged ecs-systems )
- screens (some prepackaged
MM::Screen
s )
Libraries Used
- EnTT
- glad
- GLM
- googletest
- IconFontCppHeaders
- Dear ImGui
- ImGuiColorTextEdit
- nlohmann::json
- OpenGLSky (fast_sky)
- PhysFS
- SDL2
- SoLoud
- spdlog
- stb
- Tracy
- Emscripten
- others I might have forgotten... should be cedited in the code. (make a issue/pr if a credit is missing)
Thanks
- The GHdeducted-Team, the reason this exists.
- ...and to all the developers of the libraries used in this project. <3