Replies: 8 comments 4 replies
-
I just want to note the situation with verbose class names, which is not directly related to physics: you have to realize that many classes in Godot 4.0 are moving to explicit naming conventions, even if such explicitness is redundant. See recent renames and proposal like #3624. But of course, the inconsistencies you mention are quite real in my eyes. |
Beta Was this translation helpful? Give feedback.
-
That's fine. I like explicit. I just object when it becomes needlessly explicit. That's when it goes past clarification, and passes back into confusing again. It's not helpful to fix a nomenclature issue by creating a usability one. I'm not kidding when I say I'm dreading having to type and look at |
Beta Was this translation helpful? Give feedback.
-
1.
2.
3.I would leave it as Agree with your 4.And the pearl of the crown.. (the |
Beta Was this translation helpful? Give feedback.
-
I've seen this argument before, and I don't think it's valid. The name |
Beta Was this translation helpful? Give feedback.
-
This is still the same problem. In a top-down game, I'm not flying, floating, or in the air. I'm on the ground. |
Beta Was this translation helpful? Give feedback.
-
My 2 cents on this discussion, I agree with most of what @cbscribe states here. Some of these renames are just over verbose. While I agree with a lot of the changes in Godot as a whole (for instance Adding extra detail into a name just for the sake of convention needlessly confuses, it is much better to be to the point. I've gone down this rabbit hole many times, trying to make up a convention for naming so things are precisely named, all its ever lead to for me is long confusing names where people start complaining when they find a use case for the object I made that doesn't fit the name precisely. Keep it to the KISS principle and don't needlessly over complicate stuff. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
My 0.000000002 cents:
|
Beta Was this translation helpful? Give feedback.
-
This is to discuss the current state of the physics node names for Godot 4, which I feel are inconsistent and/or needlessly verbose. See the bottom of the post for references to previous discussions on GH, which while closed, have ample confusion and lack of consensus.
Before I get into my objections and suggestions, I want to be clear about the context and motivation for them. As can be seen in the linked discussions (and I'm sure in those to come), this is a topic can lend itself to endless bikeshedding.
Motivation
I'm approaching this as someone who has written and will be writing a substantial amount of documentation and examples for Godot (so whatever happens I need to be able to explain things well). I also teach with Godot, so I expect to be fielding a lot of questions when it comes to the new paradigm.
Below, where I don't necessarily have a better suggestion, I at least want to raise the question so that we can discuss it and come to some consensus on whether it's actually a potential problem or not. We have to spend the next several years using these names, so it would be nice if they're something we can feel good about using in a practical way.
Here is the hierarchy of physics nodes we currently have (in both 2D and 3D):
1. PhysicsBody
PhysicsBody, the parent class for RigidDynamic, Static, and Character bodies, now contains the
move_and_collide()
andtest_move()
methods, which were onKinematicBody
in Godot 3.x. However, they still returnKinematicCollision
objects. Something to note here is that the term "kinematic" no longer appears anywhere else in the API. This is inconsistent.Should this be a "CharacterCollision", since that's what kinematic body is now called? What does it mean to get a "kinematic" collision after moving a "rigid" or "static" body?
2. CharacterBody
I don't object to this name change, but I do have some concerns with some of its properties:
motion_velocity
- I frankly don't like this at all. It's redundant for no discernable reason. It's equivalent to takingposition
and calling itlocation_position
. This should bevelocity
.motion_mode == MOTION_MODE_FLOATING
- this is in contrast toMOTION_MODE_GROUNDED
, which indicates you have a floor/gravity, as in a side-scroller. However, if you're making a 2D topdown game, for example, you should use "floating" mode, which is not an intuitive name for it.3. RigidDynamicBody
This seems needlessly verbose. There aren't multiple types of "rigid" body, so what is gained here over "RigidBody" other than more syllables? Yes, there's
SoftDynamicBody3D
, but that could just as well beSoftBody3D
, without any loss of understanding. If this naming was necessary, why wasVehicleBody3D
kept as-is and not changed toVehicleDynamicBody3D
? I wouldn't like it, but it would be consistent.4. AnimatableBody
To be honest, I don't have a better suggestion for this one, I just know it doesn't feel right. It's awkward to read and to say.
It inherits from
StaticBody
, but doesn't add any additional API methods, just a single boolean property. Could this just be a toggle onStaticBody
? Something likecan_move
oris_movable
, or evenis_animatable
if you're stuck on that adjective.Previous discussions
#2184
#2867
Beta Was this translation helpful? Give feedback.
All reactions