I’ve done a lot this past week!
Most my time was spent on the interface and making things very intuitive and quick to build with. I had a bunch of people around the office at StartX as well as my roommates try out some of my builds and got some great feedback.
- Nice looking skybox
- Procedurally generated terrains
- Saving and loading worlds
- A pie menu
- A color mixer
- A painting mode
- Multiple brushes
- A teleport mode for controlerless navigation
- Construction planes now match the normal of the last block face selected
- Fixed a bunch of bugs
In addition to some of these new features I also tried doing endless procedural terrain. While this worked pretty well on the PC, this did not work well on the GearVR.
To to endless terrain you basically create new chunks of blocks at a certain distance as the player moves and remove old ones that are too far away. If blocks were modified, you save the chunks info before deleting it, and whenever you load a new chunk you also load any saved chunks. This all equates to a lot of memory allocations as well as hard drive read and writes. To make things run fast you break up the function so it is only creating or deleting a couple chunks every few frames. Unfortunately in order to get it fast enough to run well on the GearVR I had to stagger this out a lot, meaning once you got to the edge of your map, it would take upwards a minute till the new chunks were all loaded. To load the chunks any faster would cause drops in framerate which luckily aren’t terrible thanks to Carmack’s timewarp, but that’s not acceptable.
So instead of having endless terrain that slowly creates itself I made a design choice to limit the starting map size and create it quickly. While it’s loading there’s a slight framerate drop, but I split the operation accross multiple frames so it’s not too bad. Once the world is loaded though, it’s quite smooth.
Anyways, I’m pretty happy with how VR Vox is turning out, and I’m really excited to actually use the app to build some awesome worlds and see what things other people create!