Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit) (+1)

Hmm, that's an unusual idea for how to achieve such a feeling. I wouldn't rely on a rigid body, but on a character body with adjustable damping, acceleration, and so on. When colliding with an obstacle, you could calculate the surface normal and set a target unnormalized vector based on the current velocity and normal (as well as a couple of elasticity settings) and calculate the velocity based on that vector. In short, that would create the most realistic feeling. I recommend looking at how this is implemented in Quake 3. imho it has the best physics for bodies (players), at least for that time. You can use that as a basis. It doesn't have super-realistic calculations, but rather well-chosen simple approximations. If you configure the parameters correctly, you can achieve a good feeling. It's not that difficult if you understand a few basic formulas, especially since many people have already described how it works. Godot's Rigid Body is good, but in my opinion, it's completely unsuitable for player use, as it doesn't offer flexible control.

By the way, your models had a white material because they either don't have one or you didn't import one. Perhaps the models already come with textures, and you need to manually adjust the material, but for a browser game, PBR is probably overkill. So simply changing the color to gray or dark brown would be a better solution.

(+1)

Thank you so much for the deep dive, I’ll check out videos on Quake 3 physics later This is actually my first 3D game in Godot and I found out about the jam late and only had around 5 days to learn the basics and put this whole project together before the deadline (1 day earlier since I can’t work on it today) Because of the limited time and my current skill level, I’m relying on Godot’s Rigid Body and letting the engine handle the collision so I could get a playable prototype out in time. But your explanation about using Character Body, calculating surface normals, and setting unnormalized vectors is incredibly insightful. Also, that’s a great tip regarding the materials, I will learn more about that

I really appreciate you taking the time to share this technical knowledge. This kind of feedback is exactly why I joined the jam. Cheers!