DAY 11 & 12
So since I missed a devlog yesterday (I was incredibly tired so went to bed earlier) I decided to summarise both days in 1 devlog as to keep you all up to date with the latest developments on the MusiKitty demo.
First off since the deadline has been approaching at a steady pace it's become increasingly harder to keep going as the creative juices have tended to slow down and I've faced a big challenge when it comes to level design. This creative slump started yesterday as during the design process of the level in the editor I ran into a glitch that erased about 90% of the progress I made. And since the notes I made on paper were just that, notes, and not sketches. I was left with only a very fundamental memory of what I wanted the level to look like. I placed back some elements from memory as best as I could. I finished up the few elements that survived the glitch, namely a little "puzzle" (although that's a big word) that I'll let you all discover for yourself and went to bed feeling a little defeated. Side note: that puzzle let me run into some...very big errors (a.k.a. full crash) and taught me a very valuable lesson for programming in GDS: avoid using words to name self-made functions that start with the same couple of letters, even accross entirely different scripts referencing entirely different functions. GDS apparently only looks at the few first letters as far as I could take away from this gamebreakinig accident. It took me about an hour to finally find and solve the bug but hey, the more you know.
Today I wanted to expand upon this idea but my creativity was even more stuck. Literally nothing would pop up in my head. So following some advice I'd given other jammers when they got stuck as well as some very kind and motivating words from the people on the Discord channel, I started work on something totally different. It was something I had postponed for quite a while now so I decided to act upon it. Namely a way of attacking enemies. I opened Asesprite first as to give me a little break from the Godot interface and went to work on a simple idea for a projectile: a sound wave as the game is all about music.
(the little rainbow musical note is meant to represent harmony as you are the protagonist in a music based world and story, or at least that's the idea for when I expand upon the idea after the jam)
After making a very simple two frame animation for this projectile (to make it a little more interesting) I went ahead and programmed it into the game. First starting with coding it's behaviour on it's own. Followed by using a new type of node I had to install on the player so when the corresponding attacking key is pressed the projectile doesn't come flying from the origin position of the axis but from the player's current position. To achieve this I had to attach a "Position 2D" node and place it in front of the player. And after altering some code to the projectile fire behaviour in the player script our little projectile went flying off from the player's current position at all times !
(back with the good old low visibility gifs haha)
As you can see on the gif above I also programmed the enemy and projectile behaviour when they hit each other: simply destroy each other. I also added some code so the projectile gets destroyed upon hitting walls.
The last thing I did for today was try to integrate a very simple idea that popped up as soon as I stumbled across a certain node by pure coincidence: the Area2DNode. This allows you to define an area of choice (by using a hit detection area) on your scene and by adding different child nodes to it and some code you can literally make it do anything you want. From using it as a trigger area for automated turrets to start attacking the player as soon as he/she enters in a top down game to playing cutscenes and events and so on. It can literally serve as a classic trigger zone for anything. The possibilities are almost endless. In my case I used it for...you guessed it, music. But how I will leave up to you all to discover in the final prototype demo. (as not all my ideas with this node have been implemented yet so I'm staying a bit mysterious on that one. Wouldn't want to spoil everything. ;D)
What I can be finally reveal to you all though is the mysterious level soundtrack I worked on for quite a while during this jam (as mentioned in multiple previous devlogs). For any of you who want to go take a listen to it, here's the Soundcloud link: https://soundcloud.com/just_gilloo/jazzing-encounter (of course those of you who don't want it spoiled can wait until the jam is over and the demo is up and finished)
So all in all these were 2 difficult days and even if my development hit a bit of a slump at the moment I'm still confident I'll be able to deliver something nice and playable. (no matter if it's short) I have set my sights on finishing one level for the demo and I'm going to stick to that. And even though I accomplished less than what I hoped I would, I still learned a whole lot of new stuff about Godot and it's different nodes and signals, improved my GDScript coding skills even more as I have coded in many of my very own functions by now,... And what I did get to implement are, in my personal opinion, meaningful additions to this little demo.
I don't know how much time I'll be able to put into the game tomorrow as I have a job application meeting to go to but anyway, that's it for me today ! I hoped you enjoyed this little summary of the past 2 days and I'll see you all tomorrow !