What I did
Well, one thing I certainly managed to do was get heavily sidetracked by “researching” other games like XCOM for several weeks. As you can probably tell, that didn’t end so well, not for this game’s progress or for the people of planet Earth. Some progress was made, but it wasn’t exactly what you’d call stellar. I read through a number of different articles on basic AI theory, and everything points towards it being as complex a topic as the rest of the game itself. With that in mind I decided to for something simple which I could get working in the remaining time I have, rather than something more ideal which would be too complicated for now. While it might not look like much, I did successfully write an A* pathfinder prototype. I haven’t got any weightings added to the different items on Trello, but that was by far the biggest and most complex one. From the research I did, I also rewrote the tasks I’d assigned for the movement prototypes as they didn’t quite work with what I knew I’d have to implement.
What I didn’t do
The movement prototype I have only works on a single vertical level. I need to update it to detect ladders and scan across multiple levels. Additionally, the movement prototype I have at the moment uses the A* algorithm which finds the best path to a specific point, but what I really need is closer to the Dijsktra algorithm which will find paths to a number of different points and take the one with the highest value. I also haven’t started on the combat prototype yet, but I suspect it will be significantly easier to do than the movement one. The tricky part will be deciding where best to move the AI player to take a shot without “cheating” by having them calculate shot percentages ahead of time.
What I will do next time
For my final sprint, I will be updating the movement prototype to work on multiple levels, and have it pick the highest value spot out of those it can reach. I will then start work on the combat prototype and have it ultimately select the target based on the chance to hit, and whether they would kill it this turn. I will need to do some weighting based on the amount of remaining health to reduce overkill, so they don’t eagerly take a shot with a 20% chance of hitting which would kill someone with 2 health remaining, instead of shooting the guy with full health and a 90% hit chance. Then finally I will need to implement all of this into the game itself. That’s not going to be super easy, so I will need to finish off the other tasks as quickly as possible in order to leave as much time for this as I can. As I mentioned earlier, this will be the final sprint for this year, and for this game, but I’ll talk more about that closer to the end of the month.
For the final time, you can track my progress for this sprint on my Trello board.