[Dynamic Realistic Voxel Terrain] MoleEngine.Unity

UPDATE: MoleEngine arrived at the Unity Store.

Hello everyone!

I’m happy and quite excited to present you the first preview of our new and unique voxel engine, MoleEngine!
You may be asking yourself what’s so special about it, so let’s discuss the features:

Features

  • Dynamic, fully editable, voxel-based terrain!
  • Marching Cubes and Dual Contouring included!
  • Not just 3 or 4 Textures as most voxel engines support, but as many as your Shader Model supports!
  • Triplanar textured meshes - no more ugly stretches!
  • Dynamic paging - save and load terrain on the fly (including automatic LZMA compression)
  • Automatic and extensible terrain generation (including floating rocks generation)
  • Extensible terrain edit system - edit in any shape you specify!
  • High Detail - change even very small details!
  • Configurable smoothness - whether you want a second Minecraft or realistic looking terrain - it’s all included!
  • Multi-Material System - Textures are applied based on the voxel material.
  • High speed - works even on weaker graphics cards (e.g. integrated Intel Graphics Chips)!
  • Realistic lighting - Self shadowing fully supported!
  • Optional tangent generation for normal mapping!

Demos
Flat Terrain: https://unity.entro-p.com/PagingDemo/PagingDemo.html
Endless Procedural Terrain: https://unity.entro-p.com/TerrainGeneratorDemo/TerrainGeneratorDemo.html
Floating Rock: https://unity.entro-p.com/FloatingRockDemo/FloatingRockDemo.html
Blocky Terrain: https://unity.entro-p.com/CubicalTerrainGeneratorDemo/CubicalTerrainGeneratorDemo.html
Normal Mapping: https://unity.entro-p.com/AdvancedShaderDemo/AdvancedShaderDemo.html

Screenshots

Multiple Materials:

Different Edit Shapes:

Smooth Meshes:

Realistic Lighting:

Tangent Generation for Normal Mapping:

Configurable Smoothness (Blocky Terrain):

Extensible Terrain Generation:

About
We are a small team aiming to provide an entirely new experience for voxel based games.
Our package provides everything you need to create a game with fully destructible environment.
We will release a few demonstration videos soon, so stay tuned!

Future Plans

  • Networking / Multiplayer support
  • Procedural vegetation (Plants Trees)
  • Optional: Water (Depends on the impact on performance)

Release Information
Depending on the feedback we will release the package within the next few weeks in the unity store.
As of now we do not have a price set, but MoleEngine will be in the same price class as other similar packages.
If you want to suggest a price feel free to send us a message!

Feedback
We would love to hear some feedback! Please try the demos, view the screenshots and
tell us how you like it! If you have any suggestions, feel free to tell us!

Looking good

I managed to make a few “holes” and fall out of the world, but otherwise the demo was great. Nice work!

What’s the performance like with double/triple the render distance?

As far as I’ve tested it there are two methods to fall out of the world: a) dig further than the loading distance (can easily be fixed by adapting the digging range, should not happen in a real world application) b) modify the world right below you causing the collider to ignore you (we already have a setting for this, it is not yet in the demos).
Did you do one of those two or is it something new?

The performance does not really suffer when increasing the render distance, but the memory footprint does.
For example, the standalone mountain terrain demo uses about 50mb with the current view distance, but if we double it we get over 200mb.

Both I think. First I dug a huge hole directly beneath me and promptly fell into the pit. The pit had a couple of faces missing opposite the direction I was facing. I didn’t notice it until I was heading back from a tunnel dig, so it’s possible it could also have been from wandering too far then coming back. I also found the issue when digging a long tunnel before moving into it. Good to see its already solved. :slight_smile:

Thanks a lot, so no new bugs to fix :wink:
We’ll release some more and updated demos as soon as multiplayer support is integrated.

Very interested in this, looks really promising!

Including Dual Contouring as an iso surface extraction algorithm is a big plus compared to all the other similar assets on the store

Can this engine create large spherical objects like planets?

That depends on the size of the planet. Generally speaking, yes, however if you wanted to recreate the earth 1:1 you would need one very big hard disc to store all the data.

loading heightmaps possible? for finite terrains…
can rtp shaders be used?
i can see that network synchronization as one of the future plans?

Can you perhaps upload the documentation somewhere? That way we could see what options are available for terrain generation :wink:

Loading heightmaps is not included in the package, however it can easily be added ( We have two examples for terrain generation, to add height maps you basically only have to somehow translate the height into a 3 dimensional array (-> you need to somehow define the materials like stone and grass and so on)), if you decide to use the package we would be happy to help you!

RTP shaders cannot used be directly, they have to be modified (the problem is that the shaders have to apply different textures based on the material, so you would have to take that selection method from our included shaders). If you however do not need multiple materials you should be able to use RTP directly.

Yes, we are currently working on network synchronization (among others). This will, however, be a different package, as for network we need to redesign the whole process and somehow reduce the amount of data transferred.

The documentation contained in the package can be found here.
However, we only included 3 options for generation: A flat terrain, a terrain based on procedural noise (much like minecraft) and a terrain based on procedural noise combined with some simple math (floating islands). Additionally it is possible to implement custom terrain generators, if you need that we will provide you with example code and any assistance you need.

UPDATE: MoleEngine arrived at the Unity Store.

Congrats - best of luck - looks really awesome

Thanks!

looks interesting, i will check it out at a later date.

I have been looking at all the various voxel packages in the store and this seems to offer the mos fine-grained approach while still being actively developed (Others havent been updated in months which is huge discouragement for a purchase)

Having vegetation and detail objects even being placed procedurally would be a great priority for me…depending on how you implemented water that could be very interesting too, although networking might be needed in a general sense i’m not sure wether this package should need to implement it itself unless it was the most central aspect of a product

Do you know when abouts you could say vegetation/object placement might be approached? That would definitely be a big motivation for a purchase.

Looks great! c:

Looks great, I will certainly follow this thread.

Some questions to compare this system to other voxel systems.

Does it contain a lod system for the terrain?
Can someone confirm that RTP3 works as described further above?
What’s the performance with realy large terrains like 2x2 km or above?

Greetings
Chillersanim

There is no LOD implemented for the terrain (for now at least), because in the first tests the LOD switching
proved to be problematic sometimes (holes appearing in the terrain). We will probably add a LOD system based on mesh simplification instead of voxel simplification later on, if required. The size of the terrain does not affect the performance, only the required disk space (as long as you use automatic paging or implement your own paging logic!).
Like all external shaders, RTP work if adapted to the system (texture selection based on material index must be performed in the shader, there are examples provided).

Cheers,
Entro-P