Well, I've been out for a while. There is a lot going on, my faculty exams are finished. Since I'm busy with faculty I simply don't have enough time to work on what I want - and even when I have I don't have enough motivation to do it.
Regarding faculty, this semester I have to write seminary - topic I managed to get is "Pathfinding algorithms". Fun fun.
For now, I didn't done much. I'm still working on the proper AI for the game. OK, not AI but pathfinding and pathfollowing. I've decided to work on A* algorithm, considering it's one of the easier and effective algorithms. However, I needed to rewrite it several times because... Code was a mess and it just didn't work. Current version is the closest to the what I want, but there are still several problems I'm trying to solve:
- AI is blind to the changes. Once it finds a route it will follow it no matter what. I've had to remove collision from enemy tanks in order for them to not get stuck.
- On several occasions, game stops for a little while AI calculates a route => inefficient pathfinding.
- If I limit pathfinding to only few steps but make it check for paths each cycle, AI goes crazy.
Definietly hardest piece of code yet I've had to write. And I feel it will need some time to write a satisfying solution.
Also, in addition to that, I've been doing some cleanups of the code. Nothing special nor visible - removing of useless structures, replacing parts of code violating "Rule of 3" to accomodate DRY concept etc. - but will at least give me more flexibility later at writing the code. One of those changes is removing structure I've been using to save all points and instead using Player class to store all data connected to the players.
Since I don't have any new pictures, I though I'd at least give a video of game in action.
Little related to the game, May's article contest theme is "Remake the classics". Maybe I join in, considering that original Battle City can be considered "classic"; however, I don't have any idea what to write about, especially considering that my game is unfinished.
Thanks for reading!