Final Livestream - Win a copy of Catty & Batty 😸🦇


This is the last game developing livestream of the year!

At the end of the 2 hours, I will give away a physical copy of Catty & Batty: The Spirit Guide.

Join the stream: https://www.twitch.tv/muddasheep 

See you there!

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... 💎

Video essay about Halfquake Trilogy by SaimizZ


New video essay about Halfquake Trilogy by SaimizZ is out now! This video definitely hits me different.

Turnament Devlog Nr. 27 - What The Font


When Hobo recently tested the game and uploaded a map, there were a few issues with Chinese characters. For a while, this had me stumped, because I figured I would need to generate a font for every glyph there is, which is a bit much.

But then I saw SuperDungeonMaker. They let players create maps, and add titles and descriptions. When I saw this screen, I had to download and play it myself. I checked out the upload popup, and I was able to write text in ANY language.

I was like... how??

I contacted one of the developers, in this case Julian (but he didn't respond fast enough, i can't wait!!! 😂), so i asked devs in the Acegikmo discord. And one of the nice people there told me about...

✨ Dynamic Atlassing

After watching two YouTube videos about it, here's how it works...

  • Download a font, i.e. for simplified chinese 
  • Drag font into unity
  • Highlight imported font and press CTRL+SHIFT+F12 to create a dynamic font
  • Go to your default font's settings, and add this as fallback font
  • DONE 🎉

Julian later replied and confirmed that it's exactly what they're doing as well.

So yeah, now I was finally able to display any characters from different types of names.

Not sure if it will cause troubles with translation, but it shouldn't actually. Fallback should just work. We'll see if it causes any issues further down the line, but for now I'm happy.

Apart from that, I have implemented 10 of the 15 unlockables in a rather long working session of about 12 hours. 😁

Here you can see the Shield Bomb:

And here you can see the abilities "Empire Survivor" and "Chain Reaction":

I've also started creating the Halfquake skin, right now it looks like this:

Still needs a few more adjustments, but I like it already. :D

And finally, something I've talked about previously, I changed the font to Saira and updated the dialogue layout:

I think it looks much better now!

Next, I will work on statistics, commentary and the rest of the unlockables. This should be fun.

P.S.: Catty & Batty and Behind The Death Scenes are on sale right now in the Steam Autumn sale (75% and 50% off, respectively)!

To be continued... 💎

Turnament Devlog Nr. 26 - Unlockables


When publishing the level editor, I apparently hadn't set the correct build for the demo in the Steam backend. Thanks to Hobo, I finally noticed that almost a day later. 😸

Auri, Hobo and SaimizZ then tested the level editor and noticed a bunch of bugs. The critical ones were fixed soon afterwards in a hot fix.

They also submitted their levels, here they are:

Auri:

Hobo:

SaimizZ:

Watch the video for the last two levels here: https://www.youtube.com/watch?v=eJLnjwJXakw 

Roadmap

With November looming, it was time to try and finish this game. I updated my roadmap and added rough estimations:

  • October: L̶e̶v̶e̶l̶ ̶e̶d̶i̶t̶o̶r̶, Credits
  • November: Unlockables
  • December: Achievements/Database, finish soundtrack, add challenge mode
  • January: Testing, Translations
  • February: Release 🎉

After fixing more things that came up in the editor testing round, the roadmap dictated that credits were the next task to tackle. There is no finished game without a cool credits sequence, so I spent two days just working on that. I also made a new song just for the credits based on the old looping sample that was playing in the original flash version.

With the credits out of the way, the next feature to be implemented would be... 

Unlockables

Every time you collect a crystal, you gain money. This money can then be exchanged for new abilities/cosmetics.

I started by planning 15 unlockables, 10 of those are gameplay abilities, 5 are "cosmetics" like skins and commentary mode. Once planning was done, I asked Khimitsu for some feedback. Like back in the old days of the flash version of Turnament, I got some amazing notes back, which improved my plan (thanks Khimitsu!).

Here's the full table (don't read this if you don't want to be spoiled):

I got to work on the Unlockables scene and realized that the unlocking sequence needed to be awesome, so here's what it looks like now.

With sound: https://www.youtube.com/watch?v=kenddudjNRg 

Working on the Desdemona video with lots of different particle effects was really paying off right now. :D After that unlocking animation was done, I made sure that unlockables can be unlocked and toggled on/off, and it saves everything in the game's save file. And just before I could actually implement the first ability, my body said, stop.

A Short Break

At around this point I actually got ill for a week. Not Covid again, thankfully, just some regular coughs and sneezes.

On the first day that I felt better again, I took a walk through Vienna with Auri and we stumbled upon this street:

I thought that looked really cool, and if you see flying umbrellas in my next game, now you know why. (Yes, I'm always thinking about my next game at this point.)

Back on Track

After that little excursion, I decided to do some smaller things to get back into the groove.

First, the "turned square" needed to be spiced up a bit, so I decided to add a separate shader for it.

Second, I've always wanted to add a music/sound visualization to add some detail to the whole screen, and I added it to the bottom of the screen. I'm not sure yet if this is too distracting, but I think I'll leave it in for now. You can barely see it in this gif (it's more noticeable in the game):

Third, I've updated the dialog of the first few cutscenes to make them shorter and clearer. This was a feedback from a review back in 2006, and it has been repeated by players of the demo, so this was important. I also updated the layout of the first 5 levels just a bit to make them more interesting.

And now... it's time to actually implement all of the unlockables. I'm not sure I can make it all in the remaining two weeks, but I'll try my best. Once that is done, the game will feel almost complete, and I can't wait.

Demo Update?

The demo will be updated one more time before release, but unlockables will not be a part of it. I'll now slowly transition to private beta tests with the full game. If you'd like to be a part of it, let me know via email: muddasheep@gmail.com

Tell your friends to wishlist Turnament on Steam! Every bit helps.

To close off this post, here's one more photo of last Sunday's adventure.

To be continued... 💎