EDIT: I uploaded an HD version of the video which can be found here.
More screenshots are located here.
I am happy to present the first peek at the Voxel Quest engine.
For those who don't already know, Voxel Quest is a RPG that attempts to simulate a world without bounds or artificial constructs. It's also my billionth attempt at making a game, let's hope it works out. :)
Obviously it is still early in development and there is much room for improvement, but I am already thrilled with the progress that has been made (especially given the majority of this engine was built in the past month, outside of the editor / GUI shown previously). The engine is one hundred percent procedurally generated (amazingly one single algorithm generates the rocks, bricks, dirt, etc). Everything is generated in real time - nothing you see here is pre-rendered, cached, pre-computed, or otherwise generated by an outside program. Of course, caching would improve performance greatly and will be implemented in the future.
It features solid voxel models -- the cut-away areas are black for now just because I have not come up with a good way to calculate lighting while still having the chunks be seamless, but I can think of a few potential ways. Each chunk/page is generated via pathtracing (an interesting optimization I use renders volumes inside of a hexagon rather than a back-faced cube, requiring only one vertex lookup rather than two texture lookups). Every single pixel you see is a voxel. It generates billions of voxels in seconds. Every single voxel is unique, there are no repeated patterns. It uses some fairly clever (if I dare say) methods for reducing memory usage (not sparse voxel octrees though). If every voxel were one byte and it used a naive storage solution, it would consume over 20 gigabytes of memory in under one minute of runtime. But that is not the case. :) In terms of system requirements, so far everything is pretty good: system memory usage is 512 MB to 1 GB on average, and GPU memory operates under a fixed pool that is user configurable, but should probably be a minimum of 512 MB, although requirements could be scaled by a factor of 8 just by halving the output resolution (which still looks good). Nothing is cached yet but once that is implemented performance should increase dramatically (as it is chunks start re-rendering once the memory pool reaches its end).
To put this accomplishment in perspective, this is what a Minecraft map would look if every voxel were about one pixel large. Of course, having a static isometric perspective lends many performance benefits, but nonetheless the sheer work that goes into the generation of the volumetric patterns and lighting is noteworthy.
Every voxel (or page/chunk of voxels) can have a unique set of properties that determines how the rocks are formed and how much dirt, grass, sand, or snow is on top of it. If you look through the screenshots you can see that the rocks are able to take the shape of bricks, or stones that are flat on one side, or angular rocks (which can also be smoothed to and flattened to form more cobblestone-like patterns). The grass is rendered in screen space - there are literally a million blades of grass in this scene, although it can be lowered for better performance without much visual deterioration.
You can place solid chunks of terrain, or use a "soft" brush to grow and shrink the terrain, or smooth it out. Although many of these functions will be used in the game engine, the player probably won't have direct access to them except in a special sandbox/editor mode.
I also demonstrate moving around the light. For right now there is only one light but lighting already operates in screen space as well so I could put in hundreds of lights with little performance hit. All shadows are ray-traced right now, and even though the shadows are also in screenspace, I still think they look good.
I think this technology could open up some interesting gameplay elements. I think it would be really cool to crack open a stone and see what's inside it (geological accuracy be damned, it would be great if it showered out gems and gold). I am really looking forward to implementing the more complex structural shapes (round towers, slanted roofing, etc). Also I will soon be working on particles and water.
I am pretty tired at the moment so I can't write much today but I wanted to get this release out. I will let the screenshots and video speak for themselves, and I would be happy to answer any questions if you have them. Let me know what you think as well!