The last few weeks working on the game, it feels like we have made no progress at all, it’s both depressing and frustrating. I have been working on the game constantly during this time, though much of this has been spent on making things better for the long term. I feel like it was time well spent though. It was better to tackle these things sooner in production:
One issue that came up was inconsistencies when using Unity’s variable timestep. Bullet patterns and projectiles spawning would have been an issue at lower framerates for example. Instead, we made our own update manager in Unity, keeping the update consistent at 30 FPS. In order to still have a nice smooth experience we lerp the graphics during the frames when the logic is not updated. I was skeptical at first about delay in input but I’m surprised myself how good it still feels to play.
We have also reworked the weapon system in the game. It’s now more of an attachment system where you can switch any weapon/ability to a slot on your ship to be used in the game before a level. We still don’t have an UI for letting the player do this in the game but the idea is to have this feature in the final game.
I also did some experiments with a simpler way of setting up the abilities. My idea was for each Ability to have Actions that would be triggered with specific behaviours when the ability is activated or attached. One such action would be to delay another action. I thought of keeping a database of these abilities in a Json file, but in the end, I think it proved too complex and an editor script would have been needed in order to set this up in a nice way. In the end too much work for not much benefit over the system we are using now, an editor script letting us edit all scriptable object at once in a nice table. (See picture below)