State of the Game #92 : Divergent Development

Hey everyone, welcome to the state of the game! This week, I have to be honest, I am a little sad. You see, I had hoped to have an awesome new feature to talk about and release today but…. I don’t. Things happened, stuff changed, and here I am with empty hands.

So, I thought, hey, maybe I can redeem myself a little bit by explaining exactly why I feel like I missed my ‘deadline’ and give you a bit deeper look into the making of games. So, let’s dive right in.

First of all, the feature that I wanted to be ready was the generators and the spacers. I wanted to have a first pass on them, have a little bit of balancing in place, and generally have them be playable. I got to the point of having both generators and spacers modeled, in game, all coded up and even had a bit of balancing done. Sounds like I was done, right? I thought so as well, but I forgot a minor detail. The AI had no idea how to handle the new parts! And that is when I ran into a huge wall of Technical Debt!

What is Technical Debt? 

Technical debt has been explained by many others, but it basically occurs when you build something knowing it will need to change in the future, but it’s ‘good enough’ right now. With that, you have incurred debt, because at sometime in the future you will have to rework what you have created.

So, The AI system had some serious debt. I had reworked it once before, to give it a speed increase, but the biggest source of the issue was the fact that I was building the AI M.A.V.’s in real time. Every time an AI spawned, they would design and build a MAV from scratch. This is an incredible complicated process and it started to get slower the more parts I added to the game. I did all the optimizations I could to continue, but with the addition of both spacers and generators it all came crashing down. There was just way too much complexity to try and do it in realtime, which meant I needed to rewrite the system, from the ground up, to solve the issue in a different way.

So what does this mean? 

Well, for you as a user, you should not be affected at all! You will still be able auto generate a MAV and play against a huge variety of AI builds. It just means I have to spend time ‘baking out’ all the variations and saving them to the disk before a build.

It also means, this list of AI units can be expanded in the future, and even include some hand built variations. I particularly like this idea because it allows the AI to adapt the changing landscape of the player base, making sure they are always relevant.

Debt is bad 

This hurdle was something I knew I would have to take care of eventually, it’s just unfortunate that it came at this time. That is the nature of game development though. While I strive to have out updates a quickly as possible, sometimes you just hit a problem that can’t be solved in an afternoon (At least I can’t!). Normally I try to give a heads up if there will be a slowdown in the builds but, this one caught me with my pants down. With that said, I made great progress on the issue and there WILL be a new snapshot build before next week’s state of the game!

See you next week!

 

Leave a Reply