Dev Blog #3: Questing and AI Overhaul
We've had a rather turbulent development sprint these past few weeks. We made the decision to switch from using Behavior Designer for our AI to Apex Utility AI.
This set us back a little, as we'll have to redo some of the AI that we've already finished, but overall we believe that a Utility AI will allow for more lifelike and flexible NPC behavior than a behavior tree will, and once we get it set up it will be easier to expand the AI system.
The AI change also includes using Apex Path and Apex Steer instead of the built-in Unity NavMesh and pathfinding. Given the size of our game world and the number of NPCs that we're going to have in the world at one time, pathfinding is something we really need to pay attention to.
Apex Path uses a grid for pathfinding that allows for both static and dynamic obstacles, as well as easily generating new grids and heightmaps at runtime. This offers a lot of flexibility for us, letting us place buildings and unlock new portions of the map without breaking the pathfinding and AI.
We have also finished our first prototype of the questing system. We rolled our own system for questing, rather than using an asset from the Unity store, so that we could get the functionality we needed without any added bulk.
The UI for the questing system is largely incomplete at the moment -- as we've mentioned, we're focusing on coding functionality right now rather than polishing up the interface and having art assets finished. Be patient; soon we'll have something for you to feast your eyes on.
We also finished a redesign of the character controller. We had all the movement functionality that we needed before, but something was missing. It took a few iterations to figure out how we wanted the character movement to feel, but we've made it much more responsive and smooth.
As we mentioned, we want combat to be fast-paced, and the new character controller supports that. We've also added the option for "precision movement". If you hold down the 'walk' key, you can more carefully position your character while locking rotation. This will make it easy to target specific farm plots and other interactables.
For dialogue, we've decided to use Dialogue System for Unity. We've implemented our first
prototype for that as well, and will have more on that in the coming weeks.
Our main concern for this next sprint is integrating Apex Utility AI into our game. We've started work on this already and once we get past the learning curve, future AI implementation should be a breeze.
We're also doing a big chunk of refactoring during this sprint, as well as working on scene transitions. It doesn't sound like much, but in order to transition between scenes we'll need to save parts of game and load it up again, which means we're also working on our save/load system.
Thanks for reading! For more updates, don't forget to follow us on our Twitter.