If this were me facing this problem, AND the ball is supposed to be controllable by a player, like in those Marble Arena
and Monkey-Ball type games, I would try the following first before trying to do the very hard problem of solving network prediction and smoothing for physics engine that doesn’t support it:
- Make a new Ball blueprint that is not based on Physics Simulation at all, but is instead based on the CharacterPawn base class.
- Make the half-height of the capsule the same as the radius, effectively changing the collision area to that of a ball.
- Tweak all the Character Movement and Walking Movement properties of the CharacterMovement component so that it acts as much like a ball as I can get it to (higher inertia, lower friction and deceleration values, etc.
- Add a sphere Static Mesh component that fits the collision capsule, and leave the skeletal mesh blank.
- Program the spherical mesh to rotate in a way that matches the movement of the ball (detect when it is on the ground or airborne, spin at the rate it would if it was rolling, in the right direction, etc.
But again, ONLY if it is supposed to be controllable by a player.
The CharacterMovement is designed to smoothly predict and catch up lagged network updates across all machines participating, simply by factoring the values used in the Add Movement Input node, the Add/Set Control Rotation node, and the movement mode that is currently active on the CharacterMovement component (walking, swimming, flying, etc.) without you having to implement RPC nodes for each movement.
So this makes it great for networked games, but I am only sure of it for pawns that you want to be able to directly control the movement of.
If this is supposed to be for something like a grenade bouncing off walls and rolling for example, or a pinball or soccer ball simulating around a field, then I’m not sure this will solve the problem for you in the way you need (but you can try it and let me know how it goes)