Untitled Project Part 9 - AI and Tesselation!

Huge improvements and additions to the game today.
First off, the voxel engine now uses tessellation for much much higher quality surfaces.
Generated surfaces no longer look blocky and have smooth curves. The map generation at the moment is still blocky but that's just the generation, the voxels now support the mentioned smooth meshes.
There were some additional problems when I first implemented this. Like Minecraft, the game uses chunks to separate groups of voxels for performance. When mesh smoothing was applied (tessellation), there were discontinuities at the chunk borders:
The solution (though not entirely solved yet), was to find the edges and prevent tessellation at these edges. This was all done in the vertex shader.
Now for the second development piece, AI has begun!
It has been a while since I wrote AI modules since Viva, but I've had a huge itch to go back and program AI like the old days, just with a different project. Anyways, there were some big things I had to do to have AI path its way around this destructible environment. Of course the map can be modified by bombs, bullet holes, and building (soon). Therefore the game has to recalculate the navigation mesh whenever there is a voxel change. This can be costly but I've done my best to try to optimize it. The great thing about this is that it works VERY well. Here is a visualized example of me digging into the ground and the navigation mesh (the blue floor) finding its way to me.
Using this new navigation system I was able to hook it up to the existing AI module, a dummy that just walks over to me. It can now walk to me from any location and crouch regardless of the terrain (unless it's impossible).
Eventually these little minions will run, jump, and of course, shoot. Though I have planned some interesting behaviors such as babysitting areas to protect an objective. This will take start after Thanksgiving. It will be fun.

Stay tuned! And Happy Thanksgiving.