To start of this series of posts, I will talk about my role in the project as well as what the project actually is.
During the coming weeks i will primarily take the role as lead programmer in the project Rune Mages which is a turn based strategy game that is played from a top-down perspective. You take control of a couple of Rune Mages that combine elemental runes to cast different spells such as fireballs, earth walls and water sprays. As a lead programmer my job is to keep the other programmers on the right track and try to aim them in the right direction if they start deviating from what should be the focus right now.
On to what I have done so far! This first period started out with a lot of back-end systems that would be the base for the game and my part of that was setting up a grid that the characters would move on as well as making an algorithm called A* (Pronounced A-Star) which would act as our method for path-finding on the grid. These systems were pretty easy to create but I then started working on one of the behemoths of this project. The AI.
The AI was a challenge for two main reasons. The first being that it will have to be interesting and appear smart to the player which is something I will continue to iterate during the rest of the project. The other is how it should be structured. When creating an AI you have several things to consider.
Should each unit be controlled by a controller that makes decisions based on the entire playing field or should each unit handle themselves?
If the units handle their own logic should they communicate to a manager or should they directly communicate with the other aspects of the game?
I had worked on behavior trees just before this project and wanted to apply that knowledge on this project as well but quickly realized that i would have to change it because of the way that we had structured the other code as well as the fact that the trees would have been to shallow to really reap the benefit of that design pattern so i fell back on the state machine which is more suited for this game.