What is smoother: BindToRenderStep or Tween?

I have a power bar on my golf game: Roblox - Gyazo

The issue is that power bar isn’t smooth enough for low end players.

I would like to know if using :BindToRenderStep() with high priority instead of tween:Play() for the bar would be smoother. I wouldn’t care for loss of fps on the camera at the time, because it would be unbinded by the time the power was chosen.

Tween is smoothest, at all times.

But can you be sure about this? I saw on the API that BindToRenderStep can have higher priority than the camera, even more than player input. I just want to confirm which one is smoother, as to not need to adapt all the code.

Well you can do something right before a camera update with bind to render step, that would always be the smoothest if you know what you’re with your lerping. Tween just makes things easy though.

Last time I checked, TweenService now runs at Stepped, not RenderStepped.

Do whatever is better for you, and easier for you to code mostly.

If using tweening is easier, then you should consider using BoatTween instead, especially since it allows you to use RenderStepped to update instead of Stepped with TweenService.

BoatTween addiotionally handles colors and other things way better than TweenService.

I personally don’t use BoatTween because you need to go and use :Destroy, and I hate having a variable for a tween, but anyhow, try that out.

Well, as you and the boatbomber mentioned on your post, the tween runs at heartbeat, so I guess I’ll make my bar tween with BindToRenderStep instead. I won’t use boatscript directly tho because he doesn’t use BindToRenderStep, but runservice.RenderStepped, which can’t control the priority of the tween.

If what you wanna update is just the bar, it really doesn’t make sense to give it such high priority.
The issue isn’t that it’s low priority, it just seems like the issue it’s that these people on mobile just have bad framerate, which is not something you can downright fix.

UI updates imo should be kept under .RenderStepped, while ONLY things like camera and things that really matter in that regard should be kept under :BindToRenderStep, UIs should to my understanding, only be rendered after all .RenderStepped connections are fired.

This UI isn’t just for the looks, the player has to press spacebar or click “Putt” to stop the bar to get the correct strenght and then hit again (on the purple-white zone) to test accuracy. The size of the bar is used to check how much strenght he used on a scale of 0 to 1.

And about mobile, it’s quite the opposite, my phone handles full graphics of my game on about 60 fps, my pc needs to run graphics at 2 or lower to run well, and still has low fps on the bar sometimes, specially on some maps I made which are more graphic Intensive. I intend on making a ‘low graphics’ option tho, replacing grass with leafygrass and setting castshadows off to all models.

1 Like