I didn’t get a whole lot done in the last couple of weeks, but I did finally get something I should’ve had from the start: the player controller!
The player character/controller was much more frustrating to add than I thought it would be. This tutorial was very helpful.
I fixed some problems with the chunk system that you can see in the .Gif (overlapping chunks, non-grid-aligned placement), but despite this, I still get gaps and tears between voxels.
I’m thinking I might discard the voxel system and instead use a traditional height map terrain. Terrain modification was never a part of the design for Galavant and neither was three-dimensional terrain (i.e. cliffs, overhangs aren’t essential to the vision, although I am going to have to do something special if I want caves in the game).
Building will still be a part of the game, though I am not sure what tech I will use to facilitate that (whether it be voxels, tile-based, model-based, or the really awesome Dreams type approach).
I’ve made it my goal to finish the design for my macro AI system by the end of October 2016. It’s the most critical part of Galavant, so it’s very important that I get it right.
Galavant has a very ambitious goal: simulate hundreds (or maybe thousands) of agents continuously, making its world a truly dynamic place. The entirety of Galavant’s gameplay is based on emergent behaviors that result from this. Agents will start wars, cannibalize each other, spread plagues, build cities, and fall in love. The player is just another person in the chaotic world (though there will be weights etc. to make agents involve the player in some way).
I’ve been looking at methods like Goal-Oriented Action Planning and Hierarchal Task Networks to accomplish this task. I plan on posting my technical design documents at the end of the month, and begin writing the code in November.
Once the macro AI system is in, things are really going to pick up. I’m excited to finally be at this exciting point in development.
In case you weren’t aware, I’ve been streaming development of Galavant on Livecoding.tv. As of writing this post I’ve logged forty-two hours. My stream tends to be pretty quiet, but I enjoy having some company during long days of coding. It also helps to keep me productive, because if I’m streaming live I can’t just watch YouTube all day.