DAY 5
Another day gone by, another devlog !
So today a lot of progress was achieved with minimal codings done to achieve it. As I said yesterday the goal for today was refine character concept as well as write out and brainstorm about the player's available attack for the game. Since I felt a little sick today I decided I'd avoid coding as much as possible and purely work on the world I want to build. Ever since the theme inspiration for my prototype level struck while making the music for it (that flash of inspiration itself changed the soundtracks I've been working on) I've also had a clear world concept and atmosphere envisioned, as I already mentioned yesterday. Today I fleshed out enemy concepts in spirit of the theme I'm going for. A theme I can finally confidently share with you all (the reason for my earlier secrecy was the fact I was still hesitating between different world concepts). The theme for this platformer will be all about music.
So with that in mind I started work on a music inspired enemy. Specifically a flying enemy I could implement into the accidental neutral enemy success of yesterday. All sprite work as shown underneath was made in Asesprite. A program I have been messing around in for a few days before buying the full version. (and I can highly recommend this program as it is really easy to use and get the hang of, even for sprite art beginners like myself.)
Some early body shape defining
Let's give it wings !
After this the concept really started taking form and I decided to make bat-like enemy with wings resembling musical notes. So about half an hour of experimenting and adding/changing/removing elements later this was the final result of the base sprite:
(coincidentally the body of the bat has a shape very similar shape to the base of a note)
With that finished I went to work on a flying animation, finished it and added it to my game "Bat_enemy" node. To do this I had to change the current node from "Sprite2D" to "AnimatedSprite", add each frame of the animation as a separate .png file in the animation control window of Godot and add one simple line of code to my exist script under the _physics_process(delta): function (for those of you who don't remember, this function is the same as a "Step Event" in GameMaker. The game checks these lines of codes every frame):
$AnimatedSprite.play("Flying")
The $ sign in Godot means you grant access to the current script you're editing to a node within it to execute whatever it is you want it to do. So in this case I granted the general "Bat_enemy" node access to the animation I had just created for my enemy. The . in between means you ask Godot to do something or want to apply the code you're writing to something specific (like in my earlier scripts I used velocity.x or velocity.y to add different formulas using velocity to each axis separately). In this case I tell Godot: "Hey Godot, access the animated sprite I just attached to this KinematicBody earlier and play this animation." The animation is specified between brackets (also known as a string), in this case flying since this is the name I gave the animation.
After saving my script I immediately went to run the game and...
there it goes flying calmly into infinity !
(apologies about the bad image quality, I tried to export the animation to a gif with Asesprite but kept running into a visual glitch that applied in Godot as well. I was able to fix it there in the .png file but not the .gif file so I can only show it as recording from the scene with OBS transformed into gif (zoomed in on the bat as much as possible))
This was definitely a big achievement as now that I have at least one finished game object in there and not a lovely placeholder Godot robot (as charming as he is) it feels much more like a "game" if that makes sense.
So today was a day of not a lot of coding but big steps towards a playable prototype. Plans for tomorrow include working on the playable character base sprite and animate the idle animation. If I have time I might even be able to animate the walking and jumping animation but we'll see. I'll set my goal to making the sprite and idle animation for now. I will also probably use the bat enemy's body as a base of inspiration for other enemies when the time comes to make those (probably around 2 or so for this prototype, a little visual diversity never hurt anyone. Even if it's just a colour swap). And as usual, work on the level's soundtrack in between when inspiration strikes.
Thanks so much for sticking with me and reading these logs every day, the support means the world to me and I've had a lovely time with this jam so far ! It's great to read your feedback and your own personal experiences ! With that I'll conclude this devlog and see you all again tomorrow !