
I decided to start with broken fields. 🐌
I wanted to make it possible to place objects directly in the editor, so that there is a clear visual way of building the level. To do this, I needed to add a check that when the grid is built, it looks up the coordinates of the broken fields and then it sets the settings accordingly.
In the gif above, you see the editor mode, then it goes into play mode and turns on all the broken fields based on the placement that i did in the editor.
The broken fields just randomly set the sprite color to various alpha ranges. And when trying to move a seeker to a broken fields, the process gets denied. Same with trying to turn it.
Fun fact time! 💀 In the flash version of the game, I had ALL of the level objects in arrays. It looked like this:
The array index was the level number (0-31), and in the string were the coordinates and settings, separated by semicolons. And there were similar arrays for projectiles, creators, crystals, seekers, shields, backgrounds, and maximum energy levels. That's 200 lines of code like this!
It was not a good way to design levels, I tell you. It involved a lot of guessing and restarting the game. With the Unity port, I want to make sure that every level is a separate scene in which I can move objects around, so that I can design them a lot faster (just like Catty & Batty).
Indestructible projectiles were next - and it was pretty simple: set alpha channel of the SpriteRenderer to a low amount, and set the "ignore_fields" flag to true. I already had that variable set up for seekers and creators, so that was almost free!
Creators are also already able to create indestructible projectiles (in the gif it's the one on the left).
Next on my list were the repair seekers! These have several special attributes:
* They need at least 1 energy (you get energy for collecting crystals)
* They look different, so they need a different sprite
* They can target broken fields (if you have at least 1 energy)
* If they are exactly at their target destination and if they're standing on a broken field, the field gets repaired, the repair seeker gets sacrificed, and you lose 1 energy
And here it is in action (with some cuts to save on gif size):
There definitely need to be some improvements for the repair seekers though: I want some kind of "confirmation", so you can't accidentally repair a field. But for now, I'm just replicating the original game.
Next, I added a mode for projectiles to move around freely (it was called "free_will" in the old flash). I know that it was sometimes too random in the old version, where sometimes they didn't move at all, because the target selection was completely random. I copied over the spirit AI from Catty & Batty, so that it now checks the surrounding fields and decides accordingly. It moves a LOT faster now, to the point where I think it might get very difficult to play. I actually believe that I'll have to add some pauses every now and then. But we'll see. Here it is in action (in the bottom right corner):
For now, I'm happy (once again) that I was able to re-use old code! A big difference is that they now don't walk diagonally, but I think it's for the better. I remember players getting confused as to why a free-will-seeker would escape the turned fields diagonally, so maybe this is actually better. Although some of the levels built on the fact that they could move diagonally, so either I will change the puzzles, or I will just add the diagonal fields to the code as well. I will decide once I rebuild the levels.
There was one final gameplay mechanic to implement, which is for the last level. Basically a winning condition if a seeker touches a free-will-seeker. It was as easy as adding a new boolean variable to Gamemaster, and checking it when a seeker collides with another one.
And that was it - all gameplay mechanics are now in the game!
What's next? Let's see! 👀
Add old sounds: This should be fairly easy, since i can already use the SoundManager that I wrote for Catty & Batty. I'm also able to add them with a higher quality now. For Flash it was customary to use low quality settings for mp3s to make sure the project has a small download size. (The old Flash file only had 1.7MB!) There are 17 sounds in total (for now), so it should be done quick.
Add music: Although I will make new music, it can't hurt to add the three old music loops as well for now. I can change it later for specific levels or just in general. Again, I'm going to use higher quality for this.
Add dialogue: I need to start turning Catty & Batty's dialogue system into Turnament's dialogue system and will just remake the first cutscene for that. I'll be able to copy the sentences into the localization table from the I2 Localization plugin, because the dialogue system already works with that.
Menu: The menu needs to be changed to not use Catty & Batty sprites anymore. I'll start this by removing all animations, and just have the menus on screen all the time or something like that, so that I can easily swap out the sprites. I will have to make new sprites for this in Flash, so that it fits with the rest of the game. I'm actually looking forward to this!
Transitions: I need to connect levels with cutscenes. There is no overworld in Turnament, so it will just transition between cutscenes and levels. I'm not sure what kind of transitions I'm going to make, but I want them to be quick and awesome. :D And they should also mask the loading sequence.
Rebuild levels: If all the above is done, I think it's time to rebuild all the levels and cutscenes. This will be a lot of fun, figuring out what works and what needs to be improved. Technically, I could already start doing that, but we'll see!
Splash screen: Of course, it also needs the old splash screen with some fancy animations. I love making these, so I hope I can create something really fun to look at.
After that it's more music, (maybe) more sounds, achievements, and finally... upgrading art and adding effects.
To be continued... 💎