Community Showcase: Mundus Editor
Hey everybody! As announced last year, we want to give creators of interesting community projects the opportunity to present their exciting libraries or tools on the official blog. In this Community Showcase, JamesTKhan is going to present his Mundus library!
If you are interested in other cool community projects, be sure to check out the libGDX Awesome List as well. To participate in future showcases, take a look here.
What is Mundus
Mundus is a 3D level editor built with libGDX and provides a libGDX runtime. Mundus was originally created by mbrlabs on GitHub from 2016 to 2018. Development halted on Mundus around 2018. I started working on Mundus in February 2022. I originally started working on a fork from the original repository. Soon after that I detached my fork into its own repository.
Why use it?
So, what sets Mundus apart? The majority of libGDX users appreciate a code-first approach, prompting some to question the need for a 3D editor for libGDX. In the realm of 2D, libGDX enthusiasts have numerous tools at their disposal, including Tiled and Hyperlap2D, to craft their unique worlds. However, when venturing into the 3D space, the options for fully-functional editors are somewhat limited. There are several 3D editors in various states of development.
This is where Mundus steps in, filling this gap by providing tools for 3D object placement, terrain creation and editing, water rendering, fog, and model rendering. It allows all game logic to be coded as usual within a libGDX runtime application, thus offering a smoother transition into 3D game development.
Features
- A complete terrain editing system.
- Splat map painting as well as sculpting tools.
- Terrain noise and heightmap generation with more improvements in development.
- gdx-gltf integration for PBR rendering of models and terrains with UI for editing materials with live preview.
- Water rendering with reflections, refractions, foam and lots of options for customizing.
- Skybox rendering with easy setup via UI.
- Projects can have multiple scenes.
- Component based scenegraph with parent to child relationships.
- GWT support.
- Asset cleanup system.
- Asynchronous project loading.
Motivations and Future
My personal motivation for working on Mundus stems from a combination of my enjoyment of the project and my goals to make 3D development more accessible for the libGDX community. It is my hope that Mundus will inspire more people to contribute to libGDX 3D APIs and Mundus.
Mundus version 0.5.0 was just released on June 30th, 2023 and several features are already in development for 0.6.0.
I do not work on Mundus alone though. Making an editor like this is a challenge and requires herculean effort. We encourage contributions and I mark issues with “good first issue” to encourage new contributors. DGZT contributes fixes and features and Antz has been invaluable in testing Mundus and suggesting enhancements.
You can check out other games made with Mundus in our “Made with Mundus” section!