Dealing with Poor Performing Devices

Hi there!

I’m making a game that we would love to be fun and accessible to all devices, but of course some devices are older than others.

I’ve found that there are specific spikes in performance with certain events in my game, and I was wondering whether I could take any measures to slightly alter the game mechanics for users with these low devices.

For example, there are some coins that appear on the floor as a reward for doing something. On lower devices, this can cause a minor (not major) frame drop until the coins are collected.

I was wondering whether there’s any way to reduce the number of coins for a specific user depending on their device, if not device but general memory capability (or whatever else would affect the performance)?

It’s important to note this isn’t anything to do with graphics, as I’ve already got a system in place for that but actually altering mechanics depending on the local performance.

Thanks!

1 Like

Make a settings menu, and add a button that does something like make far away coins disappear. Otherwise, there isn’t much you can do.

1 Like

There can be many causes for this, are you sure that you’re doing the following?

  • Destroying and disconnecting un-needed script signals when they are no longer used
  • Limiting how many coins can spawn within a certain radius
  • Despawning coins that are far away from players and are not being collected

I can confirm that there are no unnecessary connected signals.

This is the issue that I’ve raised with my question, I would like to alter how many coins appear if the user has a lower device. Is this possible? If so, how would I go about doing this?

Coins aren’t rendered on clients if their camera focus is too far (too far is defined as 150 studs and/or cannot be seen with the viewport).

Have you tried streaming enabled. I haven’t used that much but it limits the render distance inside the workspace and reduces lag.

You could possibly define low end players by determining their ping possibly but it wont be a sure answer.

What you could do is create a spawning system, the logic would serve as follows:

  • If Player is near a spawn point, then continue to step 2 (Could use magnitude checks)
  • Verify that the player has a humanoid that isn’t dead (go to step 3)
  • Set a limitation as to how many coins can be around a player or how many coins can be spawned at once in general (You can choose)

Hope this helps! :wink:

StreamingEnabled is your best option to decrease lags.

Also what causes the coins to be so costly for memory

The client tweens a spin, which works absolutely fine on the vast majority of devices. It’s only the Galaxy S7 and iPhone 5 which seem to struggle with it by having some minor frame drops, nothing that is “unplayable” but it’s just something that I’d love to iron out in the name of quality control.

I guess I want to reduce the number of coins that the client deals with depending on their memory, because I don’t want to reduce it for everyone if the majority of devices can cope with it very very well.

1 Like

an iPhone 5 is a pretty old device, but here’s something i can recommend: perhaps you can add a setting that toggles the tweening effects and test on those devices to see how it affects it?