rvandoosselaer / Blocks

A block (voxel) engine for jMonkeyEngine
BSD 3-Clause "New" or "Revised" License
42 stars 14 forks source link
jmonkeyengine voxel

Blocks Blocks

Blocks is a voxel engine created for jMonkeyEngine.

Build Status Codacy Badge

Features

Multiple shapes

Next to the default cube shape, Blocks also supports more complicated shapes like pyramids, rounded blocks, wedges, slabs, stairs, ... This will make your creations feel even more vibrant!

Theming and PBR support

Don't like the look and feel of the blocks? You can easily change the default textures by creating and using a different theme. You can even supply your own custom jMonkeyEngine material files. Even physically based rendering (or PBR) of blocks is supported by default.

Endless terrain

Blocks comes with a fully fledged pager implementation that will load the blocks around the player, blocks that are out of sight will be unloaded to save resources.

Physics support

Add the generated collision meshes to the physics space of your application to create and simulate solid environments. Blocks uses the Minie physics library for real-time physics simulation.

Optimized for performance

Using multithreading, high demanding tasks like chunk generation and mesh creation can be run in parallel to maximize the CPU time.

Designed for customization

Blocks is build with modularity and reuse in mind. If a part of the framework doesn't match your requirements you can easily swap it out and replace it with something else.

Built using jMonkeyEngine best practices

The lifecycle of the Blocks framework is managed by AppState objects. This way the Blocks framework can easily and safely be plugged into the StateManager of jMonkeyEngine.

Documentation

General documentation can be found on the wiki. The javadoc of the latest stable version can be found at the gh-pages. Documentation can only take you so far, so make sure to take a look at the different examples.

Getting help

Make sure to check out the FAQ page on the wiki. There is also a Blocks topic on the jMonkeyEngine forum. Or just create your own topic.

Contributing

If you have a bug or an idea, you can create a ticket for it here. See the CONTRIBUTING file for more details.

License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details

Acknowledgements