Beginnings of combat with Questing and AI Overhaul
Our primary focus of the last sprint was finishing up some functionality for the inventory system. We now have the ability to drop items in the game world and pick them up again. We're using a basic barrel model that got from the Unity Asset Store as a placeholder for testing, and it will be replaced with more representative objects later.
Near the end of our sprint we also started working on the combat system. Combat is going to be a big part of Lost Haven, so we are taking the time to get it right. Our goal is snappy, combo-based fighting that is easy to pick up but leaves room for more skilled players to learn and grow. We are taking inspiration from games like Dynasty Warriors, with fast-paced, responsive combat. This, of course, means we must do research by playing such games ;)
Right now, we have a few of the different combat pieces done and we will be fitting them together and building up the combat system throughout our next development sprint. Our characters are set up to use some basic combat animations that are hooked to input:
We also have already started on detecting hits between two fighting characters, and we'll have more on that in our next Dev Blog.
In Art news, we have also made progress on the customizable player character we mentioned in our previous Dev Blog post. You can see that we've gotten a lot closer to the 3D anime style that we want.
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 and other units 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 in changing the game world, by placing buildings and unlocking new portions of the map, without breaking the pathfinding and AI. We think Apex Path supports our goal of having an organic, lifelike cast of NPCs.
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 extra 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. However, that should change soon and then 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 easy to learn, 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 the 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 transitions between scenes we'll need to save parts of the state of the game and load it again later, which means we're progressing on our save/load system simultaneously.