FOR THE EPIC TEAM
On Blueprint projects, there is only the “Event Tick” node, which is framerate dependent. Physics calculations performed on this event are affected by framerate variations, making it unfeasible to create blueprints that require custom physics calculations.
This is a huge problem for physics based games, as framerate independent physics is the most important feature for this type of project.
I am aware that UE4 has “substepping” and UE5 has “Async Physics”, however, both are suboptimal solutions, as they only affect unreal native physics components and everything is handled internally.
These solutions does not work for user created blueprint classes. This can be solved, by the inclusion of a native “Event Physics Tick” blueprint node on a future version of UE5.
This Physics Tick event needs to run on a fixed timestep (fixed delta time) and support nodes as “ApplyForce”, “ApplyForceAtLocation”, etc…
Unity for example, has “Update” and “FixedUpdate” functions. To ensure framerate independent physics on a Unity project, it is only a matter of using the “FixedUpdate” for physics related code.
Now, I know it is possible to use c++ to implement a custom “Physics Tick” Event or use third party plugins that does that. However, framerate independent physics should be a native feature of the game engine, available “out of the box” for both c++ and blueprint projects.
FOR OTHER DEVELOPERS LOOKING FOR A SOLUTION
If you are a user strugling with this problem, here are some third party plugins that may help you:
UE 4
- MMT Plugin by BoredEngineer
UE 5
- AsyncTickPhysics by Mr-Craig
I hope Epic releases this feature soon