Download

Player movement slows when Scalability Settings are reduced?

Hi guys, I have a simple game with a rolling ball controlled by the player. When the input keys are pressed, torque is applied to the ball accordingly.

Since I’m working on a laptop, I decided to reduce the video quality in the editor to increase performance. So I went to Engine Scalability Settings (under Quick Settings) and changed all of the settings to Medium. After I changed the settings, I clicked play to see the difference, and noticed that the ball was moving much slower than usual. I stopped the game and clicked Build thinking that would fix it, but the movement was still slow, so I changed the settings back to Epic and the speed was restored.

The problem is that every time I reduce the settings, the ball’s speed becomes slower again, and the only way to keep it moving correctly is to leave the settings at Epic which I don’t want to do. I also noticed that the game itself is not slowing down, as I have a moving platform that maintains the same speed regardless of quality settings. I do not have any other moving objects other than the ball and the platform so I cannot say for sure, but I think this problem is specific to the player controlled ball.

Has anyone else experienced this issue? How do I correct it?

I saw your thread on my mobile phone but couldn’t find it later, sorry.

How are you applying forces to the rolling ball? If you’re doing it per frame, it would make sense that it would slow down when you change the settings to something lower, as the framerate would be capped.

Maybe? Just a guess!

Actually I am…I’m using the Input Axis Event node (which triggers every frame while input is enabled) and applying force accordingly.

Should I be factoring “delta seconds” into the movement?

Yeah, you need to factor in how much time has passed. I don’t know the particular code that we’re discussing, but if there’s a delta anywhere then just multiply with it and you should be golden. I imagine some of the examples should have this too. They could be doing this when the object ticks, too - not sure. But it’s not much different from what you have now.

Let me know if you still can’t figure it out and I’ll take a look myself as it’s on my TODO anyways.

Hey, sorry for the late response, I tried adding in the delta time node similar to how I would in Unity but it isn’t acting right. The movement is oddly sporadic (isn’t that what it’s supposed to fix?) and it either goes too slow or too fast depending on what I multiply delta time by, but it never rolls at the speed I want it to.

Right now the new angular velocity is equal to [Current Angular Velocity * (World Delta Seconds * constant)] all divided by my friction variable. Before the change it was just (current velocity / friction) which had it moving correctly on Epic settings but slower on High/Medium/Low. If this is too confusing without a reference I could post some pictures of my blueprints.

Edit: When I change the settings back to Epic, the ball goes insanely faster. Did I do the math wrong? I’ll keep working on it.

Edit 2: I loaded up the Blueprint Rolling demo to see how they got the ball rolling. The ball maintains the same speed when you change the settings, but there is no delta seconds node in the blueprints. I have no idea how they managed this but this is the effect I am looking for.

Not sure what’s going on, but I don’t have a lot of experience with blueprints. But if you were to do it in code, that would be the way to go. It’s possible they take the delta into account behind the scenes somewhere when you’re using blueprints.

Can you step backwards and try to mimic epic’s example until it breaks? Hopefully someone else can chime in soon!

I originally based the ball’s movement on the Rolling demo, except I noticed that the ball never actually stopped rolling…angular dampening was being applied but once it slowed to a certain speed it would keep rolling at that speed instead of coming to a halt. So I made a semi-complicated blueprint giving it friction and checking if the speed falls below a certain number and a few other things to get it moving right.

I may end up posting my blueprints on here to show what I’m talking about if I need to clarify.