The begin of a new year is a time to look back and draw conclusions. Daniele and I started this project around May 2014, knowing that we would have little time to work on it but not knowing how far we would make it. Now I have a more complete picture in mind, but there is still lots to do.
I have to say that I am somewhat impressed. Even if it is taking more time than we anticipated (like is often the case with these kind of endeavors), we kept working, little by little, and what little time we could spare served to build some pretty solid foundations for our little game.
Last week I was working on something unassuming, something that should have been a piece of cake, instead it proven of moderate complexity ad its ramifications are still a problem to overcome: Idle Animations.
Since Wizards’ Duel has turns based on initiative (that is, the player’s and enemies’ turns do not alternate, but each actor has its own speed so that fast actors will be given more turns than slower ones), I needed to find a way to only elaborate human inputs when on the player’s turn. The easiest way, at the time, was to check if any actors were “animating” and discard inputs if there are movements on the screen. Everything worked fine until I added Idle Animations, animations that looped when a game entity is not acting.
The two parts of the code, Idle Animations and Turn Tracking, were separated by almost three months of development: it was almost by luck that I managed to remember exactly what part was dedicated to stopping player’s turns from happening so that I was able to add a check for Generic Animations against Idle Animations. This made me think about the complexity of our project.
I am usually the one that pushes to keep everything simple and stupid, and I try to keep coupling at a minimum, but videogames are tough: they are both complex and complicated beasts, they are large, even when small, they sport a lot of different intertwined subsystems inside of them, with multiple layers of abstraction in between. It is frightening but, in a way, it is also exhilarating when you look back and think that, little by little, you are still moving forward.
I am now working on adding computer controlled characters to the world. Needless to say, it immediately collided with the turn-plus-animation mechanism and now I am stuck, not exactly knowing where to look for bugs. I believe that this part, managing the activities turn by turn, will be the most problematic one of the game, but fortunately, looking back, I feel motivated and not depressed.
It will take time, but I believe that focusing on moving forward by taking little steps will help us in the upcoming months.
Thanks for reading and enjoy this new year.