- I think both the enemies and the hit detection would fell better if you reduced the random spread pattern of the guns, and made the gun shoot at the crosshair (a quick way is to have a raycast coming straight out of the center of the camera, that colides with the enviroment and the enemies, and make the bullets shoot in the direction of the raycast collision when there is one
- for the particles I honestly didn't notice then, the enemies die when you headshot them right? I felt I was just either missing or headshoting. I don't know if you intended to make the weapons block the projectiles,
but you could make them be in different collision layers(okay I'm glad I decompiled your project, I was going to tell you something you already did) you could make the mask of your projectile raycast not hit objects, if you want to keep the cube behaviour just give guns another layer - after seeing the insides of your project, it's very tidy, very expandable and easy to read, but may I suggest writing more gloobligook for your next jam so that you have more time to work on the game feel
- about the movent, have you tried adding acceleration to the start of the movement but making the stop insta? One other thing you can add is making your gravity stronger when the character is going down, it adds weight to the jump
- I died before the engine cleaned up all the bodies, so I did not see that
Wow, thank you so much for taking the time to look at my project, and even decompiling it.
- there's a reason why guns shoot from the firepoint at their tip. Initially I had ADS implemented, so if you wanted to hit more or less where you aimed (minus the weapon spread) you had to aim down sight. After playtesting I didn't feel that would fit with the fast paced gameplay. There's a reason Doom doesn't have ADS, right? :).
- headshots kill the enemy, but also if you aim down low in the legs area. You saw the code, there's no damage difference on where you shoot them. The reason body shots take more is purely because you're hitting their weapon. Getting the layers right is what I failed. You'll notice that for example the weapon layer collides with the player, but the player doesn't collide with the weapon. This also applies to boxes and ragdolls. This is to prevent those from becoming effectively walls for the player. Using a rigidbody and forces to move the player would have circumvented these problems, and would have made the character movement feel more natural.
I don't usually make 3D games. This was my second time doing it with Godot (technically third, but one of them was a 2.5D game). I did not enjoy the process. Nothing wrong with Godot, I just realized I don't like making 3D games :).
I think Doom doesn't fire from the tip of the weapon, I think they shoot from the center of the screen, so you don't need ADS because you are "always ADS"
Your guns are not aiming at the same spot the cursor is. You need to dinamicaly find the intersection of the center of screen line and the enviroment is to point the gun that way.
theoretically (given that your guns are not parallel to the camera direction) the bullet and the cursor should be pretty similar in very long distances, but as you added spread to the guns shooting from far away makes it impossible to hit. And them shooting from close up there is this noticible inaccuracy to the guns
Yeah making 3D games is a beast in itself, we worked for some months in a multiplayer FPS, but ended scrapping the project as it was too much
Oh sorry, I wasn't clear. I meant Doom doesn't have ADS because it would slow down the pace of the game. You are correct, the raycast goes from screen center.
I tried doing a multiplayer FPS many years ago in Unity. Shooting was actually better in that one but never quite managed to get the netcode right and eventually dropped it. A video relic of it exists on youtube