Game Has Issues With Specific iOS Devices, How Do I Fix It?

What do you want to achieve?
I want to be able to run my game on modern-day iOS devices. This ranges from 2021 onwards in this scope.

What is the issue?
I cannot get those devices to run my game. It has been able to run completely fine on an iPad Pro 4th Gen (released in 2020), but crashes on an iPad 9th Gen and iPhone 12 (the iPhone 12 was made in the same year as the iPad Pro 4th Gen). It runs perfectly fine on Samsung and other Android devices that were made in and after 2021 and even before that year.

What solutions have you thought of so far?

  • Followed a plethora of guides from here on how to optimize your game for mobile players and PC players (thank you to those who make those posts). This has made some progress with optimization for the devices listed above, where the game isn’t lagging as much when on the loading screen, but it crashes nonetheless.
  • I have done extra digging on the Documentation area to find what else might be causing it and tested those out. This has had the same result as the point above.

Some things to note:

  • I have one idea, that being reducing memory more, but I do not know if that will help at all. The memory amount on both the Server and Client is at an average of 2750 MB. It spawns in on about 3000 MB for me on PC.
  • I cannot use StreamingEnabled as it breaks camera scripting within the game, and with some code being obfuscated that I am unable to de-obfuscate due to whitelisting services that I work with for some assets (I pay for some assets with Robux, and the people who own them care about security).

Here is the game if you want to know what I am dealing with from a front-end perspective. It’s a testing version of my main game.

1 Like

Use StreamingEnabled. It’ll most likely fix the issue or help massively.

I doubt it’ll only break the camera though. You’ll have to do a lot of rewriting to make your scripts work with streaming, but it’s worth it.

Streaming is the biggest improvement you can make for mobile devices.

1 Like

I would use it, believe me. There is also another thing preventing me that I should have mentioned (apologies for not mentioning it), that being that some of the code is obfuscated, and I don’t have access to de-obfuscate it due to the scenario those assets are in (some of the assets are protected by an external whitelisting service to prevent theft). StreamingEnabled affects those to a major degree from what I’ve seen. I’ve edited my post to include that detail. The people over there aren’t willing to bother with making it work for StreamingEnabled, I’ve tried.

1 Like

This heavily depends on what those assets are, but you can try using persistent streaming on them, or on the assets that they need to access.

But since you can’t see the script properly you might not know which assets it needs.

Obfuscation is barely a security measure. There are de-obfuscation tools. Just takes time to undo the obfuscation.

Depending on the license you have received with the assets that might be an option (probably not).

Might be best to ditch those assets. Personally I wouldn’t trust obfuscated code anywhere near a game. Usually they do it to hide something malicious.

1 Like

I do plan to hopefully ditch them when I have better experience with coding and have the time to re-code what those assets provide (it’s mostly relating to advanced vehicle systems and advanced projectile stuff), but that’s not looking to be happening within the near future due to time constraints.

I primarily hope for this post to provide a solution that I can use until either StreamingEnabled adapts or the people with the licenses adapt their assets to work with StreamingEnabled. There’s possibilities of other developers being in similar scenarios too, so that not only do I get a fix, but other developers with similar issues can hopefully find a fix. (If this does sound kind of selfish, then I apologize).

I’m not too concerned with the malicious code though because I’m good friends with the guy who coded the whitelisting service, but that’s just me.

1 Like

The issue is most likely memory-related. So I would suggest looking at the dev console’s memory tab.

Try reducing the size of sound and texture assets. Reduce number of different meshes, etc.

However, this probably won’t have a very large effect on your total memory.

Keep in mind that memory isn’t the same on all devices. Best would probably to debug directly on an iOS device.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.