FULL DAY 4 UPDATE
So day 4 is officially over for my little corner of the world, and that of course means another devlog about my experiences.
In an unexpected turn of events today turned out to be a little bit of a bummer in terms of what I actually wanted to accomplish but that's not to say I didn't learn or gain anything from it. As I mentioned before in the early update above I added a little flying object that can be made to be a lot of things in the actual game prototype. And since my other goal of making enemies valid for interaction didn't work out as I wanted it to be at first (as in, jumping on them kills them like in Super Mario Bros. But get killed by any other way of collision with them) I decided to make some design changes on my game. In all honesty, this design change is one that suits better with the theme of the world and general game I have in my head. I will be changing the way of dealing damage to enemies to a projectile-like attack (not exactly like a classical projectile. But of course that's subject to change since this might not currently be realistic to actually implement exactly like I envision it in my head since my coding skill is still limited).
Since it was already quite late by the time I decided to change the mechanic I came to the conclusion that it was wiser to research/theorise the necessary code tomorrow and try to improve/change an existing script I had with the new knowledge I gained. So with that I decided to expand upon my moving object script. Through some simple experimentation and discovering a new section in the official Godot documents I learned where so called node signals are situated. These are similar in concept to alarms from GameMaker. As in, you give the alarm a certain trait (in my case choose one from a list since I'm not advanced enough to program my own signals) that you can then use in a function to achieve something. Even if it ended up not being that complicated I added in a function to the bat that makes it destroy itself once it's no longer visible on screen the screen, piece of know-how I will be able to carry over to my projectile-like attack.
To achieve this you implement a node signal on the object you want it to signal to, make sure to check the "make function" option as it saves you a whole deal of typing a function related to that specific node signal and then add this very simple line of code underneath that function:
queue_free()
(for those of you who use GameMaker, queue_free() is essentially the same thing as instance_destroy(); in GMS)
This is mainly for performance reasons since if you don't add something like this to an object and it leaves the screen it will keep going on forever in the infinite space of your game world or scene. This means your hardware, be it console, computer,... has to keep using RAM and processing power to track the object. If that only includes one object it's not that much of a big deal but imagine a full game/level. Filled with things constantly coming into screen view and leaving again... That would most definitely lead to lag and possibly even crashes. So all in all, even if I didn't achieve what I set out to, still learned a lot of really useful knowledge I can use for the rest of this jam and in future projects.
Other than this little programming progress, on a musical side of things, I finished up a song that's meant to be the main title screen theme before the player enters the game (of course this title screen will be simple for this jam, I just see this as an opportunity to learn about the fundamentals of coding UI in games). Coding that very UI is a goal for another day though, probably at the end of the roadmap for this jam. I can also confirm I've started working on a level theme for the prototype level/game I have as end goal for this jam. But I'm keeping both of these musical creations a bit secretive for now. ;)
As a final progress note to add for today, I can also happily tell that my controllable character ideas are coming onto paper in rough sketch form quite nicely ! And I also got some inspiration for enemy designs thanks to drawing for such a long time today. Not only that but working on the music for this prototype has also helped in fleshing out the theme of the world I envision.
So in conclusion, even if today was a bit of a letdown in some aspects. The unexpected small amounts of progress on different gamedesign aspects far outweigh that negative feeling I had earlier today when running into roadblocks as I coded away.
With that I can still go to bed with a nice positive feeling of accomplishment, with as goals for tomorrow: working out the attack concept for the player (both as mechanic as in coding ) as well as refining the character designs and music a little more (as I try to do every day, in small steps).
As always thank you all for reading this and I'm looking forward to reading your experiences, thoughts and feedback ! See you tomorrow !