Spellwrath concists of an entire continent made up of billions and billions of Voxels. Placing each by hand would be crazy... Obviously, I'll need some little programmatic helpers. So, here is a quick overview of the 3 techniques I use:
The probably most basic tool to creating large landscapes are heightmaps. It's pretty easy and fast to create entire worlds using photoshop and have them generated by an engine. As a matter of fact, there are entire tools out there that can help with that!
For Spellwrath at the moment, Photoshop is the tool of choice. However, the problem with standard monochromatic heightmaps is that there is no color/material information - only height. Therefore, I decided to use each of the 3 color channels for different things:
- Red - Heightmap
- Green - Material / Color
- Blue - Special markings, like buildable areas.
In total I use a 8192 x 8192 Image file. I would love to have an even bigger image, but I didn't want to split the image and going larger destroys my Computer. Therefore the mapping isn't 1 to 1, but rather each Pixel of that map translates into at least 128 Voxels. Yes, that's at least 8.589.934.592 Voxels. But the Engine I wrote for Spellwrath can handle rendering all of them on screen using a technique called Sparse Voxel Octrees.
What does the heightmap look like at the moment? Well, it's very very boring:
The next step in the process of creating the world for Spellwrath is placing larger Objects. You may have seen that in the Game you can build buildings. I use this same technique to place other things inside the World. For example, below I've started working on a small Editor and tested it out by placing Trees:
It's not a very complex process in itself, but took a very long while to get working from a programming perspective.
And in the final step, I can always manipulate individual Voxels. This is obviously a last resort method for touching up certain areas or adding a tiny bit more detail. Editing billions of voxel by hand would be insane!
This is all still an early look at the world building aspect of the Game. I am yet to reach the phase of actually generating content, as the Game Mechanics themselves are not yet fully implemented.
But I thought it would fun to share :)