Divine Voxel Engine - Voxel Engine Made With Babylon.js - Alpha 1.0 Out Now

So, I have been busing working on a game that I hope to have out in the next month or so.

This is just a video of 4 computer players vs each other. They are little dumb right now but I am working on making them smarter.
The game is multi player over WebRTC too.
It has full controller support and I am finally using the babylon GUI for the HUD display.

It takes place in the Dream Space Infinite universe. As Dream Space Infinite grows and evolves so will this game.
I just realized it is going to literally take me years to finish Dream Space Infinite and I still have a lot to learn in terms of actually releasing a game.
So, I am considering this to be my “the hobbit” and dream space infinite is the full “lord of the rings”.

It of course is using DVE. The levels though are pre-generated and only the mesh data is loaded in.

Also I am using thin instances/voxel entities for all the crystals and event tokens.

If you are curious this how I was able to rotate the thin instances only using the world matrix:

  this._matrix.position.x = -this.piviotPoint.x;
  this._matrix.position.y = -this.piviotPoint.y;
  this._matrix.position.z = -this.piviotPoint.z;

  
  if (this.rotation.x) {
   xRotationMatrix.rows[1].y = Math.cos(this._rotation.x);
   xRotationMatrix.rows[1].z = -Math.sin(this._rotation.x);
   xRotationMatrix.rows[2].y = Math.sin(this._rotation.x);
   xRotationMatrix.rows[2].z = Math.cos(this._rotation.x);
   this._matrix.multiply(xRotationMatrix);
  }
  if (this.rotation.y) {
   yRotationMatrix.rows[0].x = Math.cos(this._rotation.y);
   yRotationMatrix.rows[0].z = Math.sin(this._rotation.y);
   yRotationMatrix.rows[2].x = -1 * Math.sin(this._rotation.y);
   yRotationMatrix.rows[2].z = Math.cos(this._rotation.y);
   this._matrix.multiply(yRotationMatrix);
  }
  if (this.rotation.z) {
   zRotationMatrix.rows[0].x = Math.cos(this._rotation.z);
   zRotationMatrix.rows[0].y = -Math.sin(this._rotation.z);

   zRotationMatrix.rows[1].x = Math.sin(this._rotation.z);
   zRotationMatrix.rows[1].y = Math.cos(this._rotation.z);
   this._matrix.multiply(zRotationMatrix);
  }

  this._matrix.position.x += this.position.x + this.piviotPoint.x;
  this._matrix.position.y += this.position.y + this.piviotPoint.y;
  this._matrix.position.z += this.position.z + this.piviotPoint.z;

But anyway I will be making two threads soon. One asking if anyone wants to beta test the game and the next will be for the official release of it.

Thanks again everyone!

5 Likes