Well, premature optimization is the root of all evil, as they say.
It seems that I am not in the "premature" state in the game, as gameplay combat mechanics are already in place. The game seems to be pretty playable but there were significant performance issues - clearly visible FPS drops were happening at given moments. Now, this is not a real-time action game as it is turn-based, but the stutter was real.
Thanks to this YouTube video on Unity performance improvement I was able to find the source of the problem.
The issue was related to the way in which the AI was calculating the shoot/flanking possibilities - basically I was creating helper GameObject instances over and over again, forcing the garbage collection to perform a lot of stuff inside a single frame.
Man, you really do not have this kind of performance issues when dealing with business software development (which I do for a living)..
Anyways, long story short: the game is now able to maintain more or less stable 60 FPS rate. At least at my machine, that is. I really have to test in on some low-end PC as well.
But let's jump to some stuff that is actually interesting - the visuals!
There is a new evac animation (as usual, all this stuff is created by Kurt Prieto, an amazing pixel artist that I am working with) - meaning that there is finally a visual representation of a character leaving the level:
I also replaced the old "overwatch" indicator icon (which was actually using the same old free asset that I used back when working on the "Twin Demon Slayers" game) with something that makes more sense (an "eye" icon).
See this crystal icon? Well I was previolsly using it as overwatch indicator.
Here's that new "eye" image:
There were also numerous smaller quality of life improvements, like behaviour of the camera in certain cases (it was moving too much) or hiding the action points display of enemies as it did not make any sense to show it anyway.
As the game gets more and more finished, testing all the changes takes more time. I have to perform at least a single test combat run (which can take up to 15 minutes) to see how the changes influenced the overall experience. Luckily, I have others to help me! My son (8 years old), who is a big xcom fan as me, happily playtests the game. This allows me to observe the gameplay from another perspective - so I am just sitting in the back and taking notes of the stuff that needs to be altered/fixed. This is so awesome!
Anyways, the game seems to be getting better and better. At least me and my son are having a blast when playing it, so there's already two satisfied gamers - now that's something! ;)
There's still a long way before the demo is ready. I need more graphics, sound and music (spoiler: all of these are already in production), and of course - a lot of more testing and polish.
But hopefully we will get there, and I will be able to give you some stuff to play with. That would already be a huge success for me - actually finishing something playable.
And here's some more gameplay gifs for you:
Flanked shotgun shot
That's it for this week - take care, and have a great weekend everyone!