Go to file
Marc Gilleron 2f64e019b7 Fix missing block updates causing ambient occlusion to linger 2017-03-31 01:45:06 +02:00
screenshots Added screenshot and feature list 2016-05-04 14:52:41 +02:00
.gitignore Added project: first working prototype, but lots of TODOs 2016-05-01 15:00:02 +02:00
LICENSE.md Added license 2016-07-28 00:21:21 +02:00
README.md Annoying detail about the name of the module 2016-10-13 01:46:13 +02:00
SCsub Removed useless line in SCsub 2016-05-05 21:09:13 +02:00
config.py Added project: first working prototype, but lots of TODOs 2016-05-01 15:00:02 +02:00
register_types.cpp Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
register_types.h Added project: first working prototype, but lots of TODOs 2016-05-01 15:00:02 +02:00
vector3i.h Blocks updates can be sorted by distance to viewer 2017-03-28 00:56:01 +02:00
voxel.cpp Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
voxel.h Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
voxel_buffer.cpp Make it easier to edit voxels one by one + a few fixes for that 2017-03-29 22:36:42 +02:00
voxel_buffer.h Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
voxel_library.cpp Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
voxel_library.h Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
voxel_map.cpp Make it easier to edit voxels one by one + a few fixes for that 2017-03-29 22:36:42 +02:00
voxel_map.h Make it easier to edit voxels one by one + a few fixes for that 2017-03-29 22:36:42 +02:00
voxel_mesher.cpp Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
voxel_mesher.h Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
voxel_provider.cpp Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
voxel_provider.h Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
voxel_provider_test.cpp Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
voxel_provider_test.h Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
voxel_raycast.cpp Added simple voxel raycast 2017-03-26 20:07:01 +02:00
voxel_raycast.h Added simple voxel raycast 2017-03-26 20:07:01 +02:00
voxel_terrain.cpp Fix missing block updates causing ambient occlusion to linger 2017-03-31 01:45:06 +02:00
voxel_terrain.h Make it easier to edit voxels one by one + a few fixes for that 2017-03-29 22:36:42 +02:00

README.md

Voxel Tools for Godot

C++ module for creating cube-esque voxel worlds in Godot Engine.

Example screenshot

Setup

Install the contents of the repo in a folder under "modules/", named "voxel".

IMPORTANT: if you clone the repo, Git will create the folder as the repo name, "godot_voxel". But because Godot SCons scripts consider the folder name as the module's name, it will generate wrong function calls, so you must rename the folder "voxel".

Features

  • Compact voxel storage using 8-bit channels like images
  • Calculates meshes based on grid of voxels. Only visible faces are generated.
  • Vertex-based ambient occlusion (comes for free at the cost of slower mesh generation)
  • Voxels can be of any shape, not just cubes (not fully accessible yet but present in code)

Ideas TODO

  • VoxelMap node for infinite voxel terrain
  • VoxelStreamer node to put on players so terrains know which voxels to load around them
  • Physics!
  • Make voxels editable
  • Support internal threading
  • Support saving and loading
  • Promote classes to Node and Resource for better editor experience
  • Interface for terrain generation modules (I don't plan to integrate a noise library in this module, unless it's integrated in Godot core)
  • Support structure generation (anything that is bigger than one voxel)
  • Convert any imported meshes to Voxel-compatible meshes (to comply with a few optimizations)
  • Generate Mesh resources from voxels so they can be used in the editor as MeshInstances
  • Import resources from other editors like Magicka-voxel
  • Volumetric grid algorithms: fluids, pathfinding, lighting...