Hey there, it's been a bit.
What is Betrayed Fists?
Now if you still don't know what Betrayed Fists is, either you didn't read Devlog 1 or I did really bad job at explaining.
And it's probably the latter, so Betrayed Fists is a Yakuza-inspired Beat Em Up about Aidan being involved in an Arms Deal goes wrong, afterwards he is sentenced to stay within Town and his friend is then kidnapped.
What have I done so far?
Since the last time I've uploaded a devlog, there have been a ton of changes, I'll list them out starting off with combat.
Boxer Style
Aidan now has a new fighting style, Boxer.
It deals half of the damage usually done and can stun enemies.
Unlike it's counterpart, Afro Style (OG Style) it has one attack speed that does not change, with or without Flow or Upgrades and is not affected by damage falloff.
Though to encourage players to switch between Boxer and Afro, Afro can no longer stun enemies.
Enemy Tweaks, Fixes and Additions
Enemies have been tweaked and fixed, like this really stupid oversight where I forgot to add hurt markers for all but one of their attacks.
Enemies do have some knockback, but it was not tied to Damage nor could it be disabled, which for reasons like you being in Flow Mode, making beating them up pretty annoying due to how much faster you are in that mode and how fast they get knocked back.
All of these combined made combat feel a lot more better.
But to not be super unfair, Bigger Enemies/Bosses can't be stunned by a perfect guard unless you damage them enough, this is to also make sure that you're not just spamming the Block button hoping that you stun them; also the damage you do to get to the threshold for Enemies to actually fall down when you uppercut them will decrease a lot more faster.
Added ONE basic combo
Before you crucify me, I did try my best on making this combo at least worth doing as on the final hit it does 4x damage.
Eitherway it is Light Light Light Light Heavy (or Left Right Left Right Uppercut) While it is a little jank, I did make the lefts and rights separate so I could add more combos in the future.
betrayed fists basic combo showcase
Misc., Bug Fixes, Player Nerfs/Buffs
Just going to list these changes out quickly
- Enraged (aka: Fed Up) (That are not stunned or have fallen) Enemies will gradually turn towards every hit.
- Flow Mode negates all Damage to player.
- Flow Gain has been decreased (5 --> 2) (Upgraded: 10 --> 6)
- Enemies can no longer hit you within a 200 degree angle
Story Progress
So as you can see, I've been focusing on gameplay instead of story.
Which is a new workflow as usually I'll work on the story and add more gameplay along the way.
By work on the story, I mean actually implement it into the game, I always write down the entire Story first and have some idea of the gameplay while writing. (Mostly so I can have motivation to work to that one really cool moment I've written that I think would be enhanced a lot more by the gameplay.)
Eitherway, I've done total of 5 cutscenes (4 fully done) with their dialogue fully finished with 2 Story fights.
I don't really wanna say much about them as to not spoil the entire game, but I really like they came out.
It was extremely easy to add them Much to the thanks of Dialogue Manager by Nathan Hoad and the contributers to the project. Please check them out if you're looking for a robust and flexible plugin for your Godot game, they support 3.5 and 4.x. (I am not sponsored, I don't even think Open Source Projects can?)
Well, that's the end of this section, let's go to a previous question.
RE:When will the game release?
If things stay at the pace they're at right now, I'd say late 2025 to worst case, early 2026 (That is really scary to think about) is when this project may potentially release.
Now, this is the part where you should probably leave as the next section is a lot more technical and uses more techy words.
So if you are leaving, just make sure to keep an eye on my youtube, I sometimes post clips there. Thank you for reading and hopefully see you next time!
For those who've stayed, thanks aswell for reading here as well, this section probably isn't going to be super interesting, but I just want to write down some stuff.
Loading Screens
Loading Screen are something pretty new to me as I've never made a functioning one (ex: Showing you the progress of the currently loading game)
This is pretty important as to developers, we know that the game is just loading in, but for players, there is no visual indicator as to whether the game is loading or if the game froze, which is the reason why Loading Screens exist, but you probably already know that.
In Godot to achieve this, instead of using Godot's automated method of loading Scenes, we instead manually load in scenes.
Which is really easy as we delete the current scene inputted by whatever requested the change, then load the Loading Screen for the player to know we're loading stuff, update this progress bar, then after the scene is finished loading, we then delete the loading screen and add the scene to the root. (Which is the ultimate parent)
Now, this wouldn't be much of an issue, if I knew or if Godot supported setting the current scene variable in get_tree (which is like a folder that has folders within them), which it unfortunately does not atleast for Godot 3.5.
The reason why this is an issue is that switching scenes the normal way does not delete the current scene we're in.
As to Godot, that's not a scene, that's just some random node (which are kind of like objects).
So we get issues like these.
betrayed fists scene loading bug
This was pretty easy to fix, just replace all methods that uses Godot's method to use a new method that gets the current scene, deletes it by calling to a group that ONLY one node should have (at a time) to delete itself and then everything else afterwards is the same.
And while it was easy to fix, this was something completely new to me, so it was actually kind of fun fixing this bug.
Well, that's all, thank you for reading to the end! If you want to see some clips, just go to my youtube. Either way,