Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TRACKER] GodotPhysics 3D issues #45333

Open
pouleyKetchoupp opened this issue Jan 20, 2021 · 60 comments
Open

[TRACKER] GodotPhysics 3D issues #45333

pouleyKetchoupp opened this issue Jan 20, 2021 · 60 comments

Comments

@pouleyKetchoupp
Copy link
Contributor

pouleyKetchoupp commented Jan 20, 2021

This tracker is for all physics issues that affect Godot Physics 3D.

Note 1: Issues that are reported on both 2D and 3D are listed here and in #45334.

Note 2: Issues that can be reproduced on both Bullet and Godot Physics are listed here. Bullet-specific issues are listed in #45022.

Note 3: Issues related to features that are currently Bullet-only are listed here when the plan is to implement them in Godot Physics too (soft body, heightmap).

RigidBody

KinematicBody/CharacterBody

Smooth steps

Collision detection

Area

Joints

Raycasting

GridMap

CSG

Ragdoll

SoftBody

VehicleBody

Heightmap

Multi-threading

Other

Editor

Documentation

4.0 refactoring

@Demindiro
Copy link
Contributor

I think #35877 should be added here too?

@josefkaragoli
Copy link

Will you completely rewrite godotphysics from scratch or just address the issues in the tracker?

@Calinou
Copy link
Member

Calinou commented Feb 13, 2021

Will you completely rewrite godotphysics from scratch or just address the issues in the tracker?

I don't think it'll be rewritten completely, even if parts of GodotPhysics may receive a refactoring. Instead, issues will be fixed individually.

@golddotasksquestions
Copy link

Is it possible to add these two issues as well?
#14578
#27441

@pouleyKetchoupp
Copy link
Contributor Author

@golddotasksquestions They are already in the 2D physics tracker.

@josefkaragoli
Copy link

Is there a repo or somewhere we can see progress?

@Calinou
Copy link
Member

Calinou commented Feb 20, 2021

Is there a repo or somewhere we can see progress?

Progress on the physics engine itself occurs on this very repository. Look at pull requests labelled with topic:physics: https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc+label%3Atopic%3Aphysics

@Saitodepaula
Copy link

Saitodepaula commented Mar 17, 2021

I know it is not an issue, it is a proposal, but could this one be included too?
godotengine/godot-proposals#945

My point is that I want to transition my game from Bullet to Godot Physics. There were only 2 things preventing me from doing that: cylinder shapes and center of mass of a rigid body. Now, it's only the position of the rigid body. If I can't change it, I can't move my game to Godot Physics, and I thing there are other games in the same situation.

As a side question/note: is it documented that Godot Physics handles center of mass in a different way than Bullet? I've read it somewhere, but can't find it now: that Godot Physics takes all the collision shapes of a body and calculates the center of mass from them. It is right there in the rigid body doc... Sorry for that...

@Calinou
Copy link
Member

Calinou commented Mar 17, 2021

As a side question/note: is it documented that Godot Physics handles center of mass in a different way than Bullet? I've read it somewhere, but can't find it now: that Godot Physics takes all the collision shapes of a body and calculates the center of mass from them.

Yes 🙂

Perhaps this could be added to the manual as well, but I'm not sure which page this information should be added on.

@Einlander
Copy link

Can #46610 be added to the csg section?

@Calinou
Copy link
Member

Calinou commented Mar 18, 2021

Can #46610 be added to the csg section?

This isn't a physics-related issue. It seems we don't have a dedicated CSG tracker issue yet, but feel free to create one if you can accumulate links to current CSG issues.

@snouk-z
Copy link

snouk-z commented Apr 1, 2021

Can this one be added to ?
godotengine/godot-proposals#483

Enabling calls to the physics API from multiple threads would be an awesome addition.

@RabidTunes
Copy link

@golddotasksquestions commented on 20 Feb
Is it possible to add these two issues as well?
#14578
#27441

@pouleyKetchoupp commented on 20 Feb
They are already in the 2D physics tracker.

As I pointed out in one of #14578 comments, this also happens in 3D with the correspondent 3D nodes. Maybe should I create another separated issue for 3D?

@pouleyKetchoupp
Copy link
Contributor Author

@RabidTunes I've added them to the 3D tracker.

@lewis-conroy
Copy link

Sorry if this already exists, but KinematicBodies moved with move_and_slide() slide down slopes regardless of the value of stop_on_slope. Is there an issue open for this already?

@Calinou
Copy link
Member

Calinou commented Apr 11, 2021

Sorry if this already exists, but KinematicBodies moved with move_and_slide() slide down slopes regardless of the value of stop_on_slope. Is there an issue open for this already?

Yes: #31097

@nezvers

This comment has been minimized.

@Nekuromu
Copy link

Nekuromu commented Dec 1, 2021

I have opened another issue on ConvexPolys related to RigidBodies floating #55503

@elvisish
Copy link

Just tried Godot 4.0 beta 3 and still getting stuck in weird geometry, and without Bullet as a backup there's not much hope other than to ensure any terrain or meshes for walking on are absolutely bug tested to ensure there cannot be any strange surfaces to get stuck on. I'd have thought this would have been a far greater priority now there's no fallback physics engine and 4.0 is onto beta 3.

@Calinou Calinou changed the title [TRACKER] Godot Physics 3D issues [TRACKER] GodotPhysics 3D issues Oct 17, 2022
@timshannon
Copy link

FWIW, @elvisish I think there are a lot of bugs with the cylinder implementation and maybe capsule. All of my getting stuck with my character body issues went away with a cube collision shape. It's not ideal, but it works better than a cylinder.

@elvisish
Copy link

FWIW, @elvisish I think there are a lot of bugs with the cylinder implementation and maybe capsule. All of my getting stuck with my character body issues went away with a cube collision shape. It's not ideal, but it works better than a cylinder.

Thanks, I was using capsule as I want to go over some rocky terrain but... Godot 4.0 still doesn't have stair stepping, hmm.

@Saitodepaula
Copy link

It seems to me a strange allocation of resources to see all these updates on new 3D rendering techniques while it looks like the fundamental ability to move around in 3D environments is so unreliable.

Are there plans to re-aquire a dedicated physics contributor or is that not a priority?

I have been using Godot for 3 years now, developing a game, opening some issues, watching development in many areas, and even created open source demos for physics based games. I've never complained about some features in the physics area progressing slowly (or not progressing at all), because I understand that, this being FOSS, that's how it works: if there are capable people wanting to do something, it gets done. If there are no people, nothing happens.

But now that Godot 4 is in beta 3, rendering seems to be evolving well, subjects like double precisions for large worlds getting an exclusive blog post (a subject I would think only a few games would need), wouldn't it be nice to have a roadmap of where physics is intended to go?

I'm not even asking for development in this area, because this is FOSS. But some information about what the project leaders think is the most probable route from now on. Just a few examples: vehicle body, is it going to stay? Joints in general, are they going to be fixed?

@qdeanc
Copy link

qdeanc commented Oct 18, 2022

Just some context:

The Godot team had initially hired a skilled contributor who was seemingly going to fix all of these bugs, but that person ended up accepting a job working on the Rockstar Games physics engine as far as I'm aware.

As far as I know, collision detection (especially continuous collision detection) and stable collision/constraint solvers are especially complicated to program. It's probably hard to find another specialist willing to take on such a challenge remotely and for an affordable rate.

@elvisish
Copy link

I think our only hope in the immediate future is for PhysX or Rapier or something to be ported as an extension to provide something extremely stable that, while perhaps not as well integrated or optimised for game work as GP, would at least be fail safe for production work until GP is 100% reliable in all conditions.

@timshannon
Copy link

I think our only hope in the immediate future is for PhysX or Rapier or something to be ported ...

I'm keeping my eye on https://github.com/jrouwe/JoltPhysics personally. I'm hoping GDExtension opens up a lot of possibilities.

@golddotasksquestions
Copy link

golddotasksquestions commented Oct 19, 2022

@timshannon @elvisish
Regarding JoltPysics there is a discussion regarding Godot integration here: godotengine/godot-proposals#5161

@elvisish
Copy link

Quick reminder that this minimal test project I uploaded a year ago-ish is all you need to test if physics are working or not; if it goes up stairs while crouching or doesn't get stuck behind the stairs, we done: #58260

@alfredbaudisch
Copy link
Contributor

alfredbaudisch commented Dec 21, 2022

Should I create bug report for this or is there already something related?

Colliding against ConcaveShapes or ConvexHulls with move_and_slide with a very simple CharacterBody3D controller makes everything sloppy or frozen from 10ms to 2 seconds.

Notice how the game just freezes when hitting the barrel:

MoveAndSlideSlow.mp4

imagen

@Zireael07
Copy link
Contributor

Zireael07 commented Dec 21, 2022

@alfredbaudisch How complex is that collider on the barrel? Because that looks like #48587

@alfredbaudisch
Copy link
Contributor

@alfredbaudisch How complex is that collider on the barrel?

I attached the image of the wireframe, the collider is closer to the mesh structure, it's around 700 vertices, which should not cause this kind of slow-down.

@alfredbaudisch
Copy link
Contributor

alfredbaudisch commented Dec 21, 2022

@Zireael07 it's indeed related to #48587 and #66354 and #57313

@ghost

This comment was marked as resolved.

@GrauBlitz
Copy link

I am a bit shocked to see a v4 RC1 with all this open issues, meanwhile my Bean Character still get's stuck on the edge of an cube...

@Lippanon
Copy link

Lippanon commented Feb 9, 2023

There will definitely be more focus on bug fixing after beta.

Since this comment, 3 more issues were added to the tracker, 0 were checked as fixed, and a bunch more physics-related were created that aren't in the tracker. There's an ever increasing issue list, with multiple regressions from betas that don't get fixed before new versions get pushed. I appreciate that Godot relies on willing contributors but why are Release Candidates already being put out? Is there a deadline? It feels like Godot 4 is being rushed for no good reason.

@akien-mga
Copy link
Member

A lot of physics issues have been fixed in past weeks. This tracker isn't necessarily up to date.

And yes, a lot of issues remain, and they will be fixed after the 4.0 release. We can't block everything waiting for the current WIP physics fixes to be merged. We stabilize what we have now and which is already usable by many, and we'll fix more issues in 4.1.

@elvisish
Copy link

elvisish commented Feb 9, 2023

stabilize what we have now and which is already usable by many

I'm just not sure Godot Physics are currently usable (for production work), prototypal maybe.

@Calinou
Copy link
Member

Calinou commented Feb 9, 2023

I am a bit shocked to see a v4 RC1 with all this open issues, meanwhile my Bean Character still get's stuck on the edge of an cube...

Box colliders tend to be a lot more reliable than capsules currently. I recommend sticking to a box collider (and make sure it's not rotated during gameplay).

I have a box collider-based FPS controller in https://github.com/Calinou/godot-demo-projects/tree/add-first-person-shooter and it's working quite reliably overall.

@Saul2022
Copy link

Saul2022 commented Feb 9, 2023

And yes, a lot of issues remain, and they will be fixed after the 4.0 release. We can't block everything waiting for the current WIP physics fixes to be merged. We stabilize what we have now and which is already usable by many, and we'll fix more issues in 4.1.

While i understand it, i think it not quite usable rn,especially on 3d , many users have reported it and i think a better solution would be reimplementing bullet, atleast as a gdextension if there’s time.

@elvisish
Copy link

elvisish commented Feb 9, 2023

Box colliders tend to be a lot more reliable than capsules currently. I recommend sticking to a box collider (and make sure it's not rotated during gameplay).

This is very true, and I've exclusively used box colliders that don't rotate (AABB, basically) using a child gimbal that's rotated to determine direction of movement. However, the engine is still plagued with issues using a box collider; as far as I'm aware it's still impossible to walk into an angled corridor or into a sloped ceiling that becomes thinner or shorter than the collider without irreparably getting stuck and having to reload the scene.

@GrauBlitz
Copy link

Box colliders tend to be a lot more reliable than capsules currently. I recommend sticking to a box collider (and make sure it's not rotated during gameplay).

This is very true, and I've exclusively used box colliders that don't rotate (AABB, basically) using a child gimbal that's rotated to determine direction of movement. However, the engine is still plagued with issues using a box collider; as far as I'm aware it's still impossible to walk into an angled corridor or into a sloped ceiling that becomes thinner or shorter than the collider without irreparably getting stuck and having to reload the scene.

But switching to a box collider should not be necessary for a fully v4 imho, as a capsule collider is a typical Character Controller shaped and recommended in every tutorial, especially for the Unity folk which is watching this engine to switch on v4. Releasing with an instable physics engine could leave many people behind or scare them away.

I am still experiencing many issues, my character controller is getting stuck on any a bit steep angle, independent from the collision shape. I can't walk normally on a procedural generated terrain, i can't walk or jump over a cube without issues, ... i think these are very basic Physic engine usecases and nothing special.

@Zireael07
Copy link
Contributor

But switching to a box collider should not be necessary for a fully v4 imho

True, but unfortunately "fully v4" won't be what 4.0 is. 4.0 has already been in the works for so long and trying to iron out all the bugs would only delay it by another three months or more IMHO - which is not worth it.

Releasing with an instable physics engine could leave many people behind or scare them away.

Physics have had issues back in 3.x too (actually, most of the problems in the tracker exist in 3.x too). Somehow that didn't scare people away from using 3.x

@elvisish
Copy link

my character controller is getting stuck on any a bit steep angle, independent from the collision shape. I can't walk normally on a procedural generated terrain, i can't walk or jump over a cube without issues

I don't think you can use anything but boxes for floors right now, slightly sloped boxes might work but it can't change shape over the shape like terrain would or you'll get stuck.

@elvisish
Copy link

elvisish commented Feb 13, 2023

True, but unfortunately "fully v4" won't be what 4.0 is. 4.0 has already been in the works for so long and trying to iron out all the bugs would only delay it by another three months or more IMHO - which is not worth it.

If a major (and physics is major) component is completely broken, what is the purpose of releasing 4.0? It's just a number, and there's no shareholders or investors to please so it makes no sense to rush release something that isn't ready yet.

Physics have had issues back in 3.x too (actually, most of the problems in the tracker exist in 3.x too). Somehow that didn't scare people away from using 3.x

Besides the complacency of this, nobody uses Godot Physics in 3.x as it's broken, they use Bullet which isn't broken and was removed in 4.0 (for no particular reason).

@GrauBlitz
Copy link

But switching to a box collider should not be necessary for a fully v4 imho

True, but unfortunately "fully v4" won't be what 4.0 is. 4.0 has already been in the works for so long and trying to iron out all the bugs would only delay it by another three months or more IMHO - which is not worth it.

Releasing with an instable physics engine could leave many people behind or scare them away.

Physics have had issues back in 3.x too (actually, most of the problems in the tracker exist in 3.x too). Somehow that didn't scare people away from using 3.x

I never had any issues with v3, but for me 3D development in v4 is plain unusable with the physics and i would not call this "iron out all the bugs" but more like providing a basic feature set of physics. Maybe I'm just not competent enough to setup a simple Character Controller with the v4 templates but I will have to skip v4 and wait for the next versions so i don't understand why releasing v4 in this state is even an option.

@akien-mga
Copy link
Member

So I already answered all this here:

#45333 (comment)

This discussion is going nowhere, so locking. This is a tracker to keep an overview of bug reports, not to rant about Godot's release policy.

We're doing what we can, most other areas are release ready and while physics still has significant known issues, it's not the end of the world and they will be worked on and fixed in future 4.x releases. If you're making a physics based game that can't work in 4.0, you can simply skip this release and wait for a future 4.x release which will fix your issues - but there's no reason to hold the release for the many other use cases which work fine.

@godotengine godotengine locked as too heated and limited conversation to collaborators Feb 13, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Status: No status
Development

No branches or pull requests