I have a very simple combat system now with a normal attack and an air attack and the hitbox works after trying to debug it for over an hour.
I have a very simple combat system now with a normal attack and an air attack and the hitbox works after trying to debug it for over an hour.
Started on the combat, and adjusted how jumping works. After a long time of procrastinating I finally started on the combat. It doesn’t work right now, but I did create the hitboxes and hurtboxes for both the player and the enemy, alongside a script for them(even though it currently doesn’t work). After that I realized that I don’t like how the jumps don’t carry your momentum, because I made it so the jumps set your movement speed instead of adding or subtracting. So I changed it so now if you’re facing the opposite direction of where you’re moving, you’ll set your movement speed, but if you’re facing the same direction, it will add.
I organized code, fixed a bug with jumping, started on the pickup attacks/deckbuilding, and added some menus. I had a bug with jumping where if you ran out of jumps, you could keep spamming the button to airdash. It wouldn’t add any extra height, but it still launched the player a fair amount. For the deckbuilding part of the game I plan on making it so the player will add cards to their deck, and over the course of the fight cards will be played spawning pickups/powerups that the player can grab for a variety of effects. So far I got just the basics of it, but right now there’s not much functionality other than it disappearing on pickup and printing a message. Also I don’t have a sprite for any of the pickups yet, so I have a little placeholder wizard. For the last change I started on some VERY basic menus that don’t really do anything right now.
I gave the enemy gravity, fixed a bug with the moving attack, changed fast falling, and made the double jump more useful. Firstly, I meant to give the enemy gravity sooner, it just slipped my mind, and outside of that everything in this patch was for the player. The player had a bug where if you were moving and attacked, you would keep sliding until you jumped, but if you bumped into the enemy while sliding you couldn’t jump out of it, so you were permanently stuck. Then for the player movement, I decided to give them more air mobility, so 2 things I did was make it so you could change direction and speed with the double jump to make it more useful, and make the fastfall speed a set amount instead of percentage based. The reason why I changed the fastfall was because if were at the peak of your jump and tried to fastfall pretty much nothing would happen since you would barely have any vertical velocity, so if you tried to fastfall to dodge an attack it wouldn’t work.
I added transitions whenever an animation ends, the air attack, and separated the player sprite into another node. Before whenever you would roll or attack, you would have to press another button to change animations, but now it automatically transitions to the idle animation. Also before when you tried to attack in the air nothing would happen, so now the player can attack in the air. Also I decided to make the player sprite have it’s own node, because I thought it would be easier to manage character customization that way, and so I can use it as a player icon later with the customizations.
I fixed everything I broke last time and added a few new movement features. Now my game has a little bit of coyote time, which I need to tweak, because it’s still a bit buggy and weird. I changed how the jumping in the game works, so now instead of the player having complete control in the air, now they have minimal control, kind of like jump king. Also the player now has a consistent double jump, although now there’s a weird bug that if you double jump and jump about the same frame(I don’t know if it has to be the exact same frame) then the character will get stuck in their jump animation, because I have no transition right now between jumping and landing, only falling and landing. Lastly, I accidentally added b-hopping to the game, so that’s cool
I worked on pairing the different states to the player and while I was doing that I was moving some of my code that was attached to the player to different states testing to see what worked and what didn’t and I had to go eat, so I exited without saving because I knew I probably broke something and at some point before that Godot autosaved what I broke, so I came back to my game a couple of hours later to see half my player code gone and my character flying…
The first thing I did was import the enemy sprite, then I added a state machine into my game. The state machine took me FOREVER, because I had no clue what I was doing at first, so I had to figure out what it was and how to add it and along the way I encountered too many bugs to count. It took me several days to complete, because the state machine got me so frustrated that I just kept stopping and coming back later. Eventually I did get it though, but it was genuinely painful trying to get the system to work, especially since I couldn’t work on anything else until I got it fixed.
I made a functional platform for the player to jump through and created the code for what’s going to be a power up later on, right now I just have a placeholder wizard image for it. I also added an animation for attacking in the air and attacking while moving on the ground. After I did all of this I found out that I have this bug where I can spam dive on the ground and it will teleport me with the distance depending on how many times I’ve pressed it.
I added an enemy with basic movement and gave him a hitbox, while starting on the lives system. Currently I don’t have an enemy sprite yet, so I just used the Godot logo.
I added the roll animation and the attack animations. Unfortunately though whenever I added the roll animation it kind of broke the dive, so now whenever you land the dive it teleports you forward a little bit. Although the other animations work well, the only problem I have with them is the neutral attack looks a bit stiff compared to the others, so I’ll need to tweak that later, but otherwise it went well.
I spent most of the time trying to fix the movement, because whenever I zoomed out the camera the movement felt slower and overall worse. Then I improved the testing place a little bit and fixed a bug with the diving where you couldn’t jump cancel if you were diving too long, and fixed another bug where you could fly by spamming jump and dive.
I have finished implementing the dive mechanic, so now it fully works. I also made it so the player can cancel their jump early, double jump, and jump cancel out of the dive. The hardest part was getting the character to end the jump early and it took several attempts to actually succeed, but eventually I got it to work. However, it is a little buggy, so I’ll probably try to tweak the system later to be more consistent, since sometimes it doesn’t let you double jump.
I added diving into the game, I created and added the idle animation, I added fastfalling(press s while in the air to fall faster)
I imported my player template that I will customize later for the different classes, and imported all of his animations(excluding idle because I forgot to create one :p) and made it so a different animation will play depending on if he’s rising or falling.
I just started on the project and added some basic movement like sprinting and mapped the controls, to test if my Hackatime was setup properly.