A voxel engine for godot. I'ts a c++ engine module.
Go to file
Relintai 2d2b7c8c3e Started reworking the way props are handled. Removed every old PropData related classes. Props are now just normal PackedScenes. Spawning conveniences/network synchronization will come later. 2020-04-04 17:22:07 +02:00
areas Updated the license for 2020, and added it to the top of my cpp files. 2020-01-31 19:52:37 +01:00
data Updated the license for 2020, and added it to the top of my cpp files. 2020-01-31 19:52:37 +01:00
doc_classes Sync classref with the current source. 2020-04-03 09:35:45 +02:00
docs Clang format. 2020-01-09 04:29:05 +01:00
level_generator VoxelChunk now inherits from Resource instead of from Spatial. This is to make the scene cleaner (especially after I implement the world editor plugin). As a small bonus this should also make multithreading-related crashes harder to create, as manipulating the Scenetree from a thread by accident is now a lot harder. 2020-04-02 21:28:19 +02:00
library Started reworking the way props are handled. Removed every old PropData related classes. Props are now just normal PackedScenes. Spawning conveniences/network synchronization will come later. 2020-04-04 17:22:07 +02:00
meshers VoxelChunk now inherits from Resource instead of from Spatial. This is to make the scene cleaner (especially after I implement the world editor plugin). As a small bonus this should also make multithreading-related crashes harder to create, as manipulating the Scenetree from a thread by accident is now a lot harder. 2020-04-02 21:28:19 +02:00
thirdparty/lz4 Added lz4. It will be used to compress chunk data. The choice of the algorithm was inspired by Zylann's godot_voxel. 2020-03-31 12:27:29 +02:00
world Started reworking the way props are handled. Removed every old PropData related classes. Props are now just normal PackedScenes. Spawning conveniences/network synchronization will come later. 2020-04-04 17:22:07 +02:00
.gitignore Now this module can be built as shared. 2020-01-03 16:44:53 +01:00
LICENSE Updated the license for 2020, and added it to the top of my cpp files. 2020-01-31 19:52:37 +01:00
README.md Removed warning about apis, its not that relevant anymore. Also added link to the mentioned main game. 2019-12-25 14:30:20 +01:00
SCsub Fix compile. 2020-04-03 09:32:34 +02:00
config.py Moved everything that is prop related to a new repository (props). It is required for this to compile for a short wile, while I rework things. 2020-04-03 09:25:07 +02:00
register_types.cpp Fix compile. 2020-04-03 09:32:34 +02:00
register_types.h Updated the license for 2020, and added it to the top of my cpp files. 2020-01-31 19:52:37 +01:00

README.md

voxelman

A voxel engine module for godot, focusing on editor integration, rapid prototyping, gameplay-related features, speed, and extendability (even from gdscript).

This module have dependencies to some of my other engine modules, these will be made optional later, for now you will need to install them as well.

For now, my main game project (https://github.com/Relintai/broken_seals -> voxelman folder) has the implementation of the transvoxel mesher. The cubic mesher should be usable out of the box.

The cubic mesher is just an algorithm that I made up, to have voxel cubes, that can use the actual 3d fill values from the chunk.

Multi threading is really new, it still has a bunch of crashes, for now I don't recommend turning it on (unless you know what you are doing ofc).

The module supports baking lights into vertex colors, it can also merge texture atlases, and meshes.

It has also Props, these are combinations of lights, meshes, and scenes. The addon that can create these these are in a separate repository.

In gles2 the mesh data isn't accessible, so mergeable meshes has to be in a different format (MeshDataResource). They have an import plugin. You have to set mergeable meshes to this format in godot's import tab.

Note, that this module was created for my game, at the moment only the things that I directly needed (or thought I needed) are implemented!

This will change over time!