It’s late 2019, how best to move a model?
Games need moving models and many developers want:
- Smooth Eye Pleasing Movement (optional animations, no motion stutter or glitching)
- Security (never trust the client, speed / teleport hacks, …)
What does Roblox recommend as Best Practice or Preferred Practice going forward?
What does the community actually find suitable for their needs?
Choices to make:
- Body Movers
- HeartBeat CFrame:Lerp
- RenderStepped CFrame using custom calculations (no Lerp)
- Model:SetPrimaryPartCFrame() (Known problems, still used by some?!)
- PrimaryPart.Position (component of CFrame)
- Surely this list could be longer?
Have BodyMovers actually been replaced by Constraints in practice? Should we use one or can we / should we use both together?
If the answer to any of these questions is: “Choose the right tool for the job”, then the question becomes where is it documented which tool is right for what job?
BodyMovers are deprecated? comment from Oct 2018, and yet the BodyMovers article page was just updated June 14 2019. Devforum still gets new posts about using and recommended usage of BodyMovers such as BodyGyro.
Constraints are the New Body Movers, and yet unexpected behaviour and limitations arise all too frequently. Network Ownership, number of constraints, predictable consistency across server and all clients, etc. And these can change over time with new builds.
In my experience questions about movement are posted all the time (being fundamental to most games). For example, Quotery wrote a post I might otherwise well have written myself.
Would it be helpful to developers at large (who may not know for certain) to have more consensus on up-to-date how and when and why to use each?