Divine Voxel Engine

About

Divine Voxel Engine is an open-source voxel library written in TypeScript that I have been working on for a few years. Recently, I have used it to build games and release them either online or on Steam. I feel the engine will always be a work in progress, but I truly enjoy working on it due to the numerous challenges and optimization opportunities it presents. It has also been thrilling to push the boundaries of what most people think is possible with JavaScript, while also coming to understand the real limitations of JavaScript and finding ways to overcome them.

Packages

@divinevoxel/core

This is the core of the engine. It doesn't handle aspects like world generation. It's basic in the sense that it allows you to build what you want with it.

Features:

  • Easy way to register voxels and textures.
  • Automatically syncs data between threads.
  • Minecraft-style sunlight and multi-colored voxel light.
  • Minecraft-style water flow.
  • Multi-threaded light and world updates.
  • Sets of tools for easy data access, voxel painting, chunk building, and chunk unloading.
  • Custom voxel shapes.
  • Overlayed and connected textures.
  • Shader effects for water and plants.
  • Custom voxel substances and rules.
  • Custom materials and shader overrides.
  • Custom voxel data tags, chunk data tags, column tags, and region data tags.
  • Voxel entities using thin instances.
  • Texture to 3D model conversion.
@divinevoxel/iwg

This library handles infinite world generation. You just need to register the dimensions you want and the build function in the required threads. It will then build and load/unload the world around the player as they move.

@divinevoxel/data

This is usually used with @divinevoxel/iwg as it handles the default implementation of storing chunks in the browser with IndexedDB and storing them on a Node server.

@divinevoxel/ecs

This library handles entities and physics. It makes it easy to create entities that will interact and collide with the voxel world data.

@divinevoxel/react

This is a simple library to make the Divine Voxel Engine easier to use with React.

Technology Used
  • TypeScript
  • Babylon.JS

Screenshots

No alt provided.
No alt provided.
No alt provided.
No alt provided.

Video