
I know, I know, focusing is the most important part of finishing a project.
But... in level 7, the pattern just didn't look right anymore, and I wanted to use the shot in the new trailer. And it only appeared off like this in the build version, not in the editor. This has been bugging me a lot.
Isn't this absolutely horrible? I definitely had to fix it.
What was the issue? Well, I debugged it for about 2 hours, and... this is a bit complicated, so bear with me.
A "creator" has 8 "claws", these little things that get highlighted before shooting. And it always calculates how long it needs to wait for each claw to highlight before reaching the total interval seconds between shots. So, for 2 seconds, it needs to call WaitForSeconds(0.25f) a total of 8 times.
It sounds horrible in hindsight, but that's how it worked. :D In the build version, this caused issues because a WaitForSeconds() caused additional delays, since it was limited to 60 fps. WaitForSeconds() does not wait exactly, but at least the value that it was given.
Plus, the first creator at the bottom had an initial delay of 0, but because of the fps difference, it shot at the same time as the second one.
So, I changed it to my own function called WaitForSecondsWithPause(). It counts the deltaTime until the total required interval between shots has been reached. I also separated the claw animation and the interval counter between shots, so it is more accurate.
And, it now also halts correctly while pausing the game and even when a slowdown occurs. Look at it:
Much better!
The next thing that was bugging me was that some squares from the menu remained when going back to the title screen.
Fortunately, that was an easy fix! I had called a function to unpause the game after every scene change, which called the animation for the squares a second time. I made sure to not do that, and the transition was now clean.
With that out of the way, work could resume on the trailer. I made a first version using captured gameplay on top of a track that was created by KAON specifically for the trailer and sent it to SaimizZ with a lot of info.
Then it was finally time for...
Challenge Mode
I spent a whole Friday finishing all remaining levels in challenge mode. After testing it for a while, I added the new mode to the splash screen. It required me to split up the menu for Campaign a bit with a small popup, that now also has a "Continue" button.
I've got to say, making these challenge maps was really fun, especially trying to win them. I hope players will enjoy the challenge as well. I've made it so that the best times are also kept and displayed.
Here they are, 30 maps that will probably not be finished by a lot of players. :D
There was a problem with the way I handled the json files: You can't just put them in the Resource folder and be done with it. I had to assign them in a TextAsset[] array, and then read the byte value of the current level. I almost thought that it wouldn't work, but thankfully it did.
And with that... I consider the game feature complete.
Now it's time for the remaining 80% of the development cycle! *cracks knuckles*
Steam Page
I updated the Steam page with new screenshots, as well as new images and text in the description.
I think this should help in telling players what the game is about.
Transitions Performance
Even though I managed to improve the performance of transitions by quite a lot, it was still lagging on systems without a dedicated GPU. And on Monday (of all days!), I had an idea: What if I baked all of the shaders into the texture?
I wanted to check if that worked, turned off all shaders, exported it to a Linux build, and ran it on my laptop.
By total accident, the shaders weren't turned off, but instead, it used a different material where everything was turned on EXCEPT the overall color of the shader.
And... it ran absolutely smoothly. Turns out, the real performance hog is the overall color setting, everything else is perfectly fine.
I made a screenshot of the whole moon with the "Main Color" setting and Inner Outline and turned it into a texture. I called it the Moon of Doom:
I turned on Glow, Grass Movement and Round Wave again (I'm using AllIn1SpriteShader), exported another Linux build, ran it on my laptop, and lo and behold, the performance was excellent, while looking exactly like before.
Baking the effects into the texture sounds so obvious in hindsight, but I wouldn't have thought that the overall Main Color would be the culprit.
I'm so happy that the transitions are fluid now. This has been a long journey with lots of learnings. :D
Japanese Translation
My friend Toyoch has finished translating the game to Japanese! Thanks to I2Localization it was done within a few minutes, and then I just needed to adjust a few text objects here and there, in case the words were too long.
The store page has also been translated to Japanese, as well as Russian (by Djigallag), so now it looks quite dapper and professional~ :D
Roadmap
So, with all the main features complete, what does the updated roadmap look like? Well, it's actually pretty small now.
More music: I'd like to add at least one more track. Then I need to name every track and upload all music as soundtrack DLC.
More translations: Three additional translations are in progress (Swedish, French, German), more will come later.
Player feedback: Still a few things left to go through that were brought up by testers, looking forward to eliminating all remaining issues.
Quality of life: Lots of tiny improvements (i.e. display actions at bottom of the screen, display a run history in endless mode, etc.)
Looks like I will be able to announce the release date very soon.
To be continued... 💎