
After finishing the Halfquake skin and the "Entertained" unlockable, I got some samples by my friend TaskBeenden. I've had an idea for a slower song for a while and his samples were the perfect starting point.
The song was almost done, when I had another idea. KAON had made the track for the upcoming launch trailer, and I thought that we should also turn this into a full track, so I could release it along with the rest of the soundtrack. KAON quickly made the first version, and I spent 4-5 hours on it with my own samples, which was a lot of fun! I got goosebumps from the new ending :D
Then, when I sent KAON one additional sample, by total accident I played around on a midi keyboard of the synth plugin and I stumbled upon an interesting melody. I was so inspired to make a track out of this, that I sampled KAON's drums, bitcrushed them and recorded the melody. I absolutely love this track, and it has made me feel so much better. Auri saw me after making this track and she said that I look tired, but also like I just saw something absolutely beautiful (and she didn't even know I was making music XD).
Now there are 11 tracks in total (for a runtime of 33 minutes), but I think I want to create one more, we'll see.
Meanwhile, the game was waiting patiently for me to return to work on it.
Transitions
You would think that transitions were a thing of the past at this point, right? But no, I discovered that sometimes the transitions would end too soon, meaning that the "red moon" would fade away, and you could still see the old level, before switching to the new level. It felt like looking behind the curtain while the stage was being set up.
So, I debugged it and it was quite strange. I set the transition to wait until the level loading process was done, but then the coroutine wouldn't work anymore, it would simply stop at a certain point. After an hour of headache inducing debugging, I reverted my changes in git and then...
Unity exploded.
For some reason the revert caused Unity to think that the class UniverseMaster didn't exist anymore. This class is used everywhere, so starting the game would cause 999+ errors almost immediately. The gameobject "Universemaster" simply said, hey, that script you're using doesn't export the class UniverseMaster.
I knew I had a backup from the previous day on my other machine, so I almost gave up. But after googling around, I realized... the solution was to look exactly what class it was looking for: Universemaster instead of UniverseMaster (lowercase m). I renamed the class and... it worked again. For whatever reason. It changed across the entire project, so this definitely wasn't like that before.
Anyway, with that fixed, the project worked again and I went to bed.
Next day, I thought to myself, alright, today I will figure out why the transitions don't work. I debugged further, at one point causing an endless loop and Unity hanging itself and not starting again until I manually killed every running UnityEditor task. But then I finally found the solution.
Here it is:
A coroutine dies when the monobehavior that started it gets destroyed.
Even when the coroutine is on an entirely different object.
How did I start the transitions?
Example: DialogueManager says StartCoroutine(LoadOverworld());
Meaning that the whole transition coroutine would die as soon as the DialogueManager got destroyed because it was only part of the previous scene.
I now changed it so that DialogueManager only calls LoadOverworld() as a function, which sits on a monobehavior that doesn't get destroyed when loading a new scene.
And it finally worked. It now actually waits for the level to load. A positive side effect of this is that transitions can now be at least 0.3 seconds faster.
ALRIGHT, BACK TO THE FUN PART!
THE FUN PART
I created a dynamic glyph detection system for controller types (and mouse and keyboard) using a helper function of Rewired. Now, depending on what you're currently using, it will switch to mouse, keyboard, or controller display. I even added different glyphs and detection for Switch, Xbox, PS4, PS5 and Steam Deck. I still need to add it to the options/controls display, to finally make that screen a bit prettier.
It will not be there all the time, just the first few levels (I think). This was on my todo list for a while but it got also mentioned in the very good feedback by FindTheStrawberry, who tested the game for me and who also previously mentioned Catty & Batty in an article.
In the feedback she also wrote that controls are a bit confusing, and that's unfortunately true. The turning of grid squares and seeker commanding collides a bit. I think you get used to it after a while, but it will be a rough landing for some players. I could make the left mouse click handle selecting and sending seekers, and right mouse click turning grid squares on/off. Then it would be strictly divided.
Another control change close to launch? Maybe as a setting? I'll give it a try at least.
Road to Launch
I have less than three weeks, so I definitely need to focus. This week I want to wrap up German translation and finish the new songs. Once I have the finished songs, I can send the Soundtrack DLC to Valve for verification.
I also want to just play the game from a fresh save. This usually results in a lot of new todo entries, but I'm actually looking forward to it.
To be continued... 💎