Spherical voxel engine demo. Version 2

Note : Latest version is playable at this url https://svenfrankson.github.io/PlanetBuilder2022/index.html

Hi fellow coders,

Here (first version) is my take at babylon-based Voxel Engine. Like the title says, it’s “spherical”, which means it renders a Planet made of “nearly cubic” voxels, where each voxel has a flat surface from the point of view of an observer standing on the planet.

It also uses a method similar to marching cube to render slightly smoothed cubes.

A demo is available here, while it works on mobile, it requires decent hardware.

(there’s some occurences of “double tap for ground view” not working on some locations on the planet, just try another one, I suspect it’s due to meshes being frozen and bounding box not being up to date…)

Link to GitHub project : GitHub - SvenFrankson/planet-builder-web: BabylonJS version of PlanetBuilder algorithms

Thanks a lot for your attention and have a nice day !

13 Likes

Wow its really smooth on a 2020 macbook pro, solid 60 FPS. The chunks do load in slower than I can spin around though

There are so many cool game mechanics you could make with this, congrats

This is really cool, congrats !!!

This is seriously impressive! As br-matt said it runs super smooth, the ground movement is also very pleasing and the simple shading + outlines suits the look really well :smiley:
While exploring around I even found some subterranean caves, how cool is that!

@PirateJC I feel this would be a super cool tweet :slight_smile:

2 Likes

Thanks for the kind words :slight_smile:

@br-matt Yes, the issue with my chuncks of voxels is that I could not find a way to easily render degraded LOD versions of them, so I’m currently experimenting a solution with patches of “heightmap based” meshes to fill the voids, hopefully it will do the trick.

2 Likes

Hey @SvenFrankson this is awesome! Are you on twitter? I’d love to tweet about this from the official Babylon twitter account!

1 Like

Thanks, I’m no longer on Twitter, but feel free to tweet about this, it would be a pleasure :slight_smile:

1 Like

Hi, I’m back with an updated version of PlanetBuilderWeb !

You can test it here ! Planet Builder

Main changes

  • PlanetBuilderWeb now supports having multiple planets, and far planets are rendered with a heightmap-based mesh.
  • Mesh generation is improved with tri-planar(ish) texture mapping and a better normal computation.
  • Ingame UI with 3D proceduraly animated arms.
  • Mobile friendly movement with tutorial.

Again, thanks for your interest in this project and have a nice day !

6 Likes

Wow its come quite a ways ! Runs quite well for me.

I hope you are considering turning WebXR VR / wire hand tracking to that mesh ! Going to be pretty cool in there at scale :astonished:

1 Like

This is stunning !!!

1 Like

Looks fantastic and performs great!

I did have a little trouble though:

  • In the tutorial when it got to the step to press “2” to open the planet selection menu, it didn’t work (maybe I misread the key I was supposed to press?) and therefore couldn’t progress beyond this step
  • Sometimes button clicks didn’t do anything i.e. I could see the button state change but it didn’t trigger anything
  • There seemed no way to escape back to start or main menu - esc key didn’t do anything
1 Like

Hi, thanks inteja :slight_smile:

Opening MainMenu panel is mapped to ², not 2. Now that you say that, I’m not sure ² exists on all keyboards, so I’ve mapped it to M as well.

In performance page, picking “Low”, “Medium” or “High” changes the range at which chuncks are generated, and the resolution of the screen. But because the planet is very small, it’s always rendered fully and no new chuncks are generated when switching from “Low” to “High”.

1 Like

This is CRAZY COOL! Love the menu interface with the robot hand :slight_smile:

2 Likes

WoW. :stuck_out_tongue: :stuck_out_tongue: This is very impressive and works beautifully already. Kudos to you :heart_eyes:

2 Likes

Looks amazing man! Good job on that ui also! :slightly_smiling_face:

1 Like