Right now, I’m making a sandbox tycoon. I want to have conveyors to move items around, but I’m not sure how to do it. I could use physics the easy way, but I don’t want my game to have slow motion physics with 300 items moving around. Is it better for performance to use the built in velocity property of a part or to use tweeting to move the objects?
Tweening does not affect anything above itself for some reason. Platforms using TweenService
proved to be ineffective to player experience, where they expect that their position is relative to the platform they were standing on.
Physics-based conveyors would be better.
How would a physics based conveyor do in terms of performance?
Not by a single mile. The physics-based conveyor seems to rely on an anchored part with a velocity set. This way will allow the part be a conveyor, as much as it has been back in the days with the conveyors.
This is because when you tween only a Part’s Position, the Velocity, RotVelocity etc. are unchanged. Other parts rely on these to know how to move relative to the tweened part. If these are not set, then they will not move, as if the tweened part were not moving (because it isn’t moving).
If a Part is moving, but Velocity and such are missing, then the only thing moving other parts in contact with it is collision solving. It will slide out from under players without moving them.
If a Part is not moving, but has Velocity, then parts in contact with it will move along with it such that if it were moving, they would stay on the same position relative to it.
You can still Tween parts around and have them move objects as if they were unanchored, if you take care to set Velocity and RotVelocity correctly.
For example, if you linearly tween a part from (0, 0, 0) to (0, 50, 0) in 5 seconds, then its Velocity should be (0, 10, 0) during the tween, when it’s moving upward at 10 studs per second.
But if you Quad tween it the same way, then the upward Velocity should be the derivative of the upward Position, i.e. the rate of change of the Position.
BodyMovers and the like seem to move objects by applying Velocity to them (and never changing Position by itself), so everything sorts itself out by itself. Tweens usually directly set Position and getting the Velocity back is painful.