Took some time to figure out the best approach to do this but I've got it now.
To start with I created components that are all the same size. I am using 16x16x16 components. The voxel terrain is 128^3 so dividing that evenly is 8^3 components. In this image there is 512 of them. The red are inactive and the green are active (they have a model the represents the surface). This posed a problem for very large terrains. I would need a component size small enough so that LOD and real-time
After months of work on various base classes I have finally started to re-build my game in Ultra. There is still a lot of work to do to these classes (voxel terrain especially) but my aim is to keep the ball rolling by getting them to a workable state so I can build a playable game and then work on fine tuning later. Plus, I find it more fun to fine tune classes when there is a working game at your finger tips rather than just a bland test project.
I started off with voxel terrain. Basic
Instead of settling for one way only to voxelize a terrain I decide to make it possible to select between a few of them depending on what was required. They're are basically just two methods, forward or backward.
enum VoxelMethod {
VOXEL_METHOD_FORWARD,
VOXEL_METHOD_FORWARD_CONTOUR,
VOXEL_METHOD_BACKWARD,
VOXEL_METHOD_BACKWARD_CONTOUR
};
Forward starts with a parent node and checks each corner against some function that says if the corner is above or below some user defined surface.
For the past few months I've been working on Voxel Terrain for Ultra. I started by creating an octree whose parent node encapsulates the bounds for the entire terrain and must be a perfect cube with dimensions that are a power of two. This ensures all child nodes can be neatly subdivided. If a more rectangular terrain is required the octree creates more than one parent node to make up the rectangle.
The next step was to subdivide the parent node to a level where each node would represent
For the last for years I've been lurking in the forums waiting patiently for the release of Ultra. I thought I'd be a good time to start up my blogs again about The Seventh World. The game that has been in the works for over a decade! I started this game in the Leadwerks 2 days. It started off as a very simple game but as I'm sure you're all aware, simple ideas can quickly grow into monsters of an undertaking if you let them!
A few years ago, as I started fleshing out gameplay I
The Seventh World
Lately I have been hard at work implementing all the basic classes in Leadwerks 5. My aim is to get the game playable by the end of the year. Once I've achieved that I'll slowly hack away at bugs and visual quality before release. These are what are planned for the first release;
Menus
Main
Pause
Gravity
Multiple Sources
Edge of the World
Foliage
Pine Tree
Thought I'd show off what I've been working on this weekend. I have implemented procedural grass as found here at Outerra. There is still more work to be done on it but so far it looks promising.
After three weeks of work, Pre-Alpha v1.1 is ready.
Terrain
The terrain has seen some behind the scenes improvements with speed as well as visual improvements to geometry and texturing. When I manage to get Texture Arrays working I will be able to finish of the new texturing shader that will include Tessellation and over 16 different texture maps as well as various masks that will paint according to erosion and forest locations.
An image of one of the mountains randomly pl
The Seventh World is a Medieval Fantasy Survival game, inspired by the likes of Skyrim and ARK Survival Evolved.
It's been under development for the last two years but only in the last eight months has a real commitment been made to it. Spending every night after work and every other day working on it I've achieved a base from which to build on.
The cuboid landmasses are called fragments. They are arranged as a sphere to make up a planet. Game-play will eventually include mov