Very early WIP. Nonfunctional.
What is it?
- Voxen is an MIT-licensed, cross platform, multi-threaded voxel engine.
- It is written in C and works on windows, OSX, Linux, and BSD.
- It uses vulkan to render.
What is it not?
- Voxen does not provide a way to texture voxels. (Use another engine that supports non-voxel voxels.)
- Voxen does not store speed or rotational speed of objects. (Use the *data field)
- Voxen does not figure out how many threads are available. ()
- Voxen does not provide UI or other 2d rendering. (nanovg vvg, skia, nuklear?)
- Voxen does not provide texture loading. (stb_image, devIL)
- Voxen does not provide a way to load materials from disk. (ScrumbleDataFormat, Json, )
- Voxen does not provide a way to create a window, context, or take keyboard input. (glfw, SDL)
- Voxen does not provide network code (use Exp/Imp functions alongside compression and tcp/IP)
- Voxen does not provide collision detection (Use bullet or other physics engine using voxenObj sizes and locations)
- Voxen does not output errors to stdout, stderr, or a logfile. (Provide it a voxen_debug callback, then use your own preferred logging solution)
- Voxen does not provide a way to do textured skyboxes.(Write your own textured skybox in vulkan, or throw up a few voxels for stars, sun, moon, etc.)
- The build script will automatically grab this
- Eventually Threading (Of some sort)
- Vulkan SDK
- The build script will help you install this.
- It includes Shaderc/glslc
- Python 2
Example Binary Dependencies
How to build
To build the library and example:
To build just the library:
./build -r libvoxen.a
./build -r libvoxen.so
Building as a .dll is intended, but not yet implemented. It may work on windows anyway.
Many languages bind much more readily to C than C++. Ideally, I’d like Voxen to be accessible in Zig, C, Rust, and C++, and others if you have to. Also I know C.