Hi all,
We are receiving lots of complaints of people playing with iOS 14 to our game that works with Unity 2017.
It’s impossible to update the game to a newer version of unity. It’s a old game done in unity script.
The same version is working fine in Android.
The game becomes lagged after 1 o 2 matches. In the profiler I can see that the game is waiting for vsync (I can’t disable it in iOS). Target fps is 60, but I have tested also with 30 and it remains the same.
Normally the first game is ok, but it seems that it start to become delayed after some scene loading.
I have some render textures that become black before to start laggy behaviour.
Could someone help me?
Do you have other games written in C#? You say it is impossible to update because of the language it is written in. Years ago I had a game written in Unity’s JS, and had an offer from a company to licence the game, but needed it in C#. I learnt C# and translated the game in just a few days. Converting a second game was much quicker because I didn’t have to learn Unity.
Either way, converting the app to C# will probably be quicker than spending and implementing an alternative solution. And it will be an option that still works for the next thing that breaks the game.
My tip for doing it quickly: Just copy/paste your JS code into a C#. The errors tell you what to fix. Almost all of it is just formatting. Two other points: 1. You cannot set 1 element of a Vector2/Vector3, you have to set them all. 2. Anything with a Wait in it must be part of a coroutine, so you have to change the formatting of calling it.
Thanks for your answer.
Yes, I know c#, but the game is so big, after 7 years of maintenance and adding new features.
Definitely we’ll do a new version of the game in c#, but at this moment it would need a fast fix because we have lots of players complaining about it.
Sounds like you are GPU bound and the additional RenderTextures are an additional load on the GPU and that you are then hitting thermal throttling and down clocking on the GPU? Have you looked at this with XCode Instruments for GPU measurements?
Thanks @MartinTilo
It makes sense that the frame rate drop its due to thermal throttling. It starts working smoothly and suddenly it becomes unplayable.
The additional RenderTextures are not rendered on every frame, only at the beginning in order to create some customized textures. It seems it’s more a physics calculation issue.
I wonder if it’s possible to bypass the thermal throttling in any way. It’s difficult to understand that the same game that works smoothly in 7 years old mid-range android devices, it’s working in this way in devices with iOS 14.
If it is physics/ fixed update you might want to adjust the time settings so that FixedUpdate occured every 0.0166s (I.e. 60fps) and a max time step of 0.1s (I.e. 10Fps).