Hi,
My Problem:
I’m developing a prop hunt game and facing issues with the physics-based movement system. Props (objects controlled by players) rely on the physics system for movement. Since I’m using a Static Mesh as the root component for the props, I can’t add a Character Movement Component. Here’s how my movement logic currently works:
- Movement:
When a movement command (e.g.,AddForce
) is issued on the client, it’s sent to the server using a Run on Server event. However, since the movement is processed both on the client and server, several issues occur:
- Some clients find it very hard to move.
- Other clients move too fast.
- The server movement appears fine, but there are significant inconsistencies on the client side.
- Additional Issues:
- When I disable Replicate Physics to Autonomous Proxies, movement becomes somewhat freer, but after a few seconds, the prop snaps back to its initial position as if there’s “9999 ping.”
- I suspect this is due to a lack of proper server-side reconciliation, but I’m not sure how to implement it correctly.
What I Need Help With:
- How can I implement client-side prediction and server-side reconciliation effectively?
- What are the best practices for creating a Prop Movement system using physics?
- Since I’m using a Static Mesh, I can’t add a movement component. How can I make clients move independently while staying synchronized with the server?
Additional Notes:
- The game is tested on Steam, and everything works, but the clients exhibit inconsistent behavior when it comes to physics-based movement.
- This is a Blueprint-based project, but I’m open to code or plugin suggestions.
- Would using Launch Character or similar approaches make sense for this scenario? Or should I stick to a purely physics-based solution?
I’d greatly appreciate any insights or suggestions. Thanks in advance!