godot_voxel/README.md

47 lines
2.0 KiB
Markdown
Raw Normal View History

2016-05-01 14:45:54 -07:00
Voxel Tools for Godot
=========================
C++ module for creating cube-esque voxel worlds in Godot Engine.
2016-05-04 05:52:41 -07:00
![Example screenshot](screenshots/2016_05_04_0319_w800.png)
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".
2016-05-04 05:52:41 -07:00
Features
---------
2017-04-01 11:34:44 -07:00
- Fully editable terrain (see demo: https://github.com/Zylann/voxelgame)
2016-05-04 05:52:41 -07:00
- Compact voxel storage using 8-bit channels like images
2017-04-01 11:34:44 -07:00
- Data segmentation using blocks of 16x16x16 voxels (so the world can be theoretically infinite)
2016-05-04 05:52:41 -07:00
- Calculates meshes based on grid of voxels. Only visible faces are generated.
2017-04-01 11:34:44 -07:00
- Vertex-based ambient occlusion on voxel edges (comes for free at the cost of slower mesh generation)
- Mesh-based physics based on Godot (high generation cost but works at decent speed)
- Simple interface for deferred terrain generators (block by block)
- Optional profiling information
2016-05-04 05:52:41 -07:00
Ideas TODO
-----------
2017-04-01 11:34:44 -07:00
- Automatic terrain generation (currently not automatic)
- Voxels can be of any shape, not just cubes (not fully accessible yet but present in code)
2016-05-04 05:52:41 -07:00
- VoxelStreamer node to put on players so terrains know which voxels to load around them
- Support internal threading
2017-04-01 11:34:44 -07:00
- Support saving and loading through helper classes
2016-05-04 05:52:41 -07:00
- Promote classes to Node and Resource for better editor experience
2017-04-01 11:34:44 -07:00
- Helpers for structure generation (anything that is bigger than one voxel)
- Convert any imported meshes to Voxel-ready meshes (to comply with a few optimizations)
2016-05-04 05:52:41 -07:00
- 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...
2017-04-01 11:34:44 -07:00
- Smooth meshes with the Transvoxel algorithm
- Seam-free level of detail (LOD)
- Ability to bake terrains if we don't want them to be editable in game
2016-05-04 05:52:41 -07:00