Turnament Devlog Nr. 28 - A New Build


As I mentioned previously, I needed to release a new build, so I could send it around for betatesters.

I've switched to updating the demo and the full game simultaneously, for that I added a flag "is_demo" in the UniverseMaster, which ends the game at level 13 and locks the Unlockables (and other differences). For Catty & Batty, I had two separate Unity projects and it was a hassle to get new fixes into the demo, so I've decided that I'm doing it differently this time.

A new build is kind of like a soft launch for me, so I wanted it to feel good to play. Here's what I did:

Adding New Music

I took stock of the new music I already made, and I now have 8 full tracks, including the old one. Only two were already in the game, so I sat down, finished the other 6, mastered them, and made special in-game loops out of them, each with one variation that starts in the middle of the song.

I added all those songs to the game, and ... I was really happy with how the game felt! For years, the music was kind of lacking of this game, but now it's quite varied. I also added a few new options, including one that allowed me to start music in the cutscene and keep playing in the following level. That's totally inspired from the old Final Fantasy games, where a boss fight song would start in a dialogue and keep playing throughout the fight transition. I always loved those moments. :D

Application Name Change

I changed the application name from "Turnament Remastered" to "Turnament", because I've already had people asking me about the "Remastered", and I wanted to avoid confusing people unnecessarily. However, this meant that existing savegames wouldn't work anymore (ApplicationPath in Unity uses the application name). I got around that by actively looking for savefiles and created levels in the old path and copying those over. Only like 4 people are affected by this, but still, it was important to me. :D

Performance

Once again, I took a look at improving performance, because I wasn't happy with the FPS I got. I checked the profiler and even the frame debugger.

Based on my findings, here's what I did:

  • I replaced the white lines that fly in from all directions with a particle effect, this saves a few frames because the old grid lines were using around a dozen Animators.
  • I deactivated inactive grid sprites everywhere, saving another 10fps or so on my laptop. This saves a lot of meshes from having to be rendered all the time.
  • I turned off "Auto sync transforms" in Project settings > Physics. This shouldn't be on anymore, according to Unity docs, and improves performance a tiny bit.
  • I enabled "static" for a lot of static objects (like the grid sprites), didn't notice any improvements though. Still, it can't hurt!
  • I used "crunch compression" for background images, which saves some disk space.
  • I've learned that for a 2D game, keeping tris and verts low isn't that important, but rather something called Overdraw. If you have a transparent sprite, the gpu has to check pixels behind the sprite, causing overdraw. You can make a custom mesh for sprites to improve this, but Unity does some optimizations by default. If you check the wireframe view, you can fix some messy meshes, which I did.
  • I replaced the old field cursor with a new one. The old one had 8 separate sprites and gameobjects for absolutely no reason, now it's just one sprite. I added a little animation to it to make it feel a bit more reactive.

Overall, I think I improved the performance of the game by a significant amount, which should help on older systems.

Side note: Performance is usually worse inside the editor, so actual FPS in the final build will always be better.

(Improving performance is quite addicting to me, sometimes I have to force myself to stop. :D There's always more that you can do.)

Statistics

I implemented all 16 statistics for the unlockables scene, here's a teaser:

Unlockables are still not 100% done, I need to record commentary and sounds, and work a bit more on the Halfquake skin, but it's getting there. Statistics are fun though, it's interesting seeing the numbers go up. :D

Transitions

I've already used a transition I really liked in endless mode, and I had the idea to spice that one up and then use it in the whole game.

I've added a background that fades in just as all sprites are fully unveiled, and added a cool shader to it (using AllIn1SpriteShader). Performance should be fine, as I'm reusing the same square sprites and animating it all in code, but the background could be an issue on lower end systems, that's something I have to check.

Changes and Bug Fixes

I fixed a bunch of bugs that were still open from the demo, and also squashed some new ones. Here's the full list:

  • Fixed noise in cutscenes 13-15, it now plays longer and feels better overall.
  • Fixed bug where a seeker the square behind a seeker would turn when selecting it (thanks Hobo).
  • Fixed bug that caused a line of squares to be turned when selecting Menu > Continue.
  • Fixed a bunch of UI bugs concerning the super secret tips. Also added the new message popup sound for it and made sure it pauses the game.
  • Fixed cross-shaped turning of squares that was possible when the game was paused.
  • Fixed not being able to draw objects in editor with fast mouse movements.
  • Fixed bug that didn't reset background rotation speed when exiting a level via pause menu on the mission success/failure screen.
  • Fixed bug with two music tracks playing at the same time when exiting level editor and going into level 2.

And more changes:

  • Added a key to hide the menu button ("M")
  • Added a subtle level border to splash screen
  • Added Unlockables button to splash screen
  • Split up splash screen menu into two columns

Entering Betatesting Phase

With this build, I'm now ready for betatesting. Of course, the game is not done just yet, so some of you might want to wait for the full experience. Let's take a quick look:

  • Unlockables: Record voice for Commentary, Perfect Sound, improve Halfquake skin
  • Achievements / Database: This will be a separate scene.
  • Challenge mode: Not sure if there needs to be on a separate scene to select them, or if I can use the existing level select. But I'll figure it out.
  • Translations: I think I will need a bit more text for database and challenge mode, but then I think the text is complete. Probably still safer to wait for after launch with translations. Would it be better for launch? Definitely. But people will surely find errors in the existing text, so it will have to wait.
  • More music: I think I want to add 2-3 more tracks, a remix for challenge mode, a calm one for the editor, and maybe a unique one for endless mode. Then I'd have 11 tracks for the soundtrack, which is okay. (12 would be better...)
  • Lots of smaller tasks: I want to add some control hints, new energy display, show which unlockable abilities are active, ... and I'll surely get new bugs to squish from betatests.

I'm super motivated at this point though because I can almost taste the finish line. (I know it tastes like strawberry icecream.)

Let me know if you want to help test the full game by sending a mail with subject "Turnament Betatest" to: muddasheep@gmail.com

Every new pair of hands, eyes, and ears helps.

To be continued... 💎