Divine Voxel Engine

Table Of Contents

About

This is a voxel engine that I am developing. A voxel engine is way to render what seems to be on the surface millions or more of 3d models. The way it works is by building custom meshes from voxel data in a worker thread then sending over to the main thread to be rendered.

Current Features
  • Multi threaded mesh building.
  • Adding/breaking voxels.
  • Infinite world generation.
  • Chunk based rendering.
  • Transparent blocks.
  • Shader effects for water and flora.
  • Animated textures.
  • Ambient occlusion shadows.

Development

The voxel engine is written all in TypeScript and uses Babylon.Js to render the models. Everything could be just done through WebGL but I decided to use Babylon.Js. Babylon.Js has many good features and is planning on adding WebGPU suppourt.

Full List Of Technology Used
  • TypeScript
    • Used to write all of the source code
  • Babylon.JS
    • Used to provide the 3D rendering onto the canvas element.

Design

The entire program follows OOP and the MVC design pattern. The world's data is in Web Worker that sends and request compressed JSON that represent that worlds data. The overall feature set is to be minimal so that anyone that uses can create their own world. It is meant to only provide a good starting point to develop either a voxel game or something that uses voxels.

Notes

I decided to develop this because I have several projects that need this type of rendering. The first being my infinite runner game and the second being my level creator application.

Screenshots

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

Video