Skip to content

JamesTKhan/Mundus

Repository files navigation

Mundus Java CI workflow

Mundus is a platform independent 3D world editor, built with Java, Kotlin and LibGDX + VisUI. You can create your scenes in Mundus and then use the Mundus runtime to render and interact with those scenes in a libGDX project. See runtime usage for an example. You can see current milestones for releases on the milestones page.

Screenshot

This project is at a very early stage in development and APIs may be missing basic features. Create an issue if you notice something important that is missing.

Current features

Below are some of the more interesting features, that already work

  • Creation of multiple terrains
  • Height map loader for terrains
  • Procedural terrain generation
  • Texture splatting for the terrain texture (max 5 textures per terrain)
  • A complete terrain editing system with texture & height brushes
  • 4 different brushes (brush form can be an arbitrary image, like in Blender or Gimp)
  • 3 brush modes for each brush: Raise/Lower, Flatten & texture paint
  • Custom implementation of gdx-gltf PBR shader for model rendering
  • Water quads with reflections, refractions, foam, and customizable ripples
  • Static Skyboxes with support for multiple skyboxes
  • Loading of g3db/gltf/glb files. GLTF is the recommended format.
  • Loading of obj/fbx/dae files (note, that the fbx-conv binary must be set in the settings)
  • Visual translation, rotation tool, and scaling tools
  • Multiple scenes in one project
  • Full screen preview mode
  • A component based scene graph (not fully implemented yet)
  • Basic export of the project into a json format + asset (not needed for libGDX runtime)
  • Undo/Redo system for most operations
  • Highly accurate game object picking system, based on id color coding & offscreen framebuffer rendering. Basic concept: http://www.opengl-tutorial.org/miscellaneous/clicking-on-objects/picking-with-an-opengl-hack/

Latest Release Video

Release video

Discord Channel

If you need help with Mundus you can check out the Mundus discord here or alternatively in the libGDX discord go to libraries/Mundus thread under the SPECIFIC TOPICS section.

Things to consider

  • Mundus is constantly changing. Especially the internal representation of save files. At this stage of the project backwards compatability is kept between minor changes, and I keep backwards compatability in mind for major version changes, but it is not guaranteed as the APIs are still being developed.
  • Depending on your keyboard layout some key shortcuts might be twisted (especially CTRL+Z and CTRL+Y for QWERTZ and QWERTY layouts) because of the default GLFW keycode mapping. You can change the layout mapping in the settings dialog under Window -> Settings.

Runtime

The only runtime being developed is for libGDX, which is included in this repository. See runtime usage for an example. Runtimes for other engines/frameworks are not planned in the near futures.

Made with Mundus

Listed from newest to oldest:

Created by: AntzGames

gif


Created by: JamesTKhan santa

Created by: AntzGames image


Created by: AntzGames image


Created by: JamesTKhan image

Contributing

Contributions are greatly appreciated. To make the process as easy as possible please follow the Contribution Guide. To get an overview over the project you might also want to check out the Project overview & architecture article. I label issues that are good for first time contributes as "good first issue."

Working from source

See this wiki article.

Mundus origin

This started as a fork of Mundus. Mundus is no longer developed so this standalone repository was created. Special thanks to mbrlabs and the original contributors of Mundus for all the work they did.

Mundus was licensed under the Apache-2.0 license.

Credits

Logo design: Franziska Böhm / noxmoon.de (CC-BY-SA 4.0)