I am starting to get reports from users that when they upgrade their iPhones and iPod Touches the gameplay becomes laggy and unresponsive. It’s a flick game, and it is taking them many times to get the ball to flick. It does still seems to be OK on the iPad.
These games were built with Unity 3D 3.4.0f5 and updated on the app store a few weeks ago. They also include EZGUI/SM2 from Above and Beyond Software and iAD/AdMob/GameCenter plug-ins from Prime 31.
So my question is has anyone seen a degradation in performance for their Unity3D with iOS5? If so, can you point me any known places where it would be good to start optimizing.
Sounds like you are using unity pro?
Use the profiler to watch whats cost intensive inside editor.
The second thing is that you can use the xcode profiler for more testing .
I am used to using profiler in Xcode, but haven’t tested with new OS yet. Just trying to see if there were any “known” issues out there with Unity and iOS5 so I didn’t waste too much time.
One thing I was thinking is that I am still building for iOS 3.1.3 with Universal armv6+armv7. I am wondering if that can be causing some issued between armv6 and iOS5? Not really my area of expertise.
Should I just be building for armv7 at this point?
I haven’t heard any grumblings from my users since iOS5 launched, and my games are built to support armv6 and pretty old iOS versions as well, so that may not be a factor.
I experienced lag on iPod Touch 3rd gen devices that I updated to iOS5. The same game with the same device before the update runned just fine. No lag on iPad 1 with iOS 5.
I don’t know what is the problem, hope this can/will be fix with a Unity update !
It seems to be overall graphics performance: it occurs when there are more enemies on the screen (3D and animated); indirectly, there are also more FXs and sounds.
This sounds upsetting. I hope if its a unity issue it can be fixed with a update too.
Have you tried changing #define USE_OPENGLES20_IF_AVAILABLE 1
to #define USE_OPENGLES20_IF_AVAILABLE 0
This isnt a soltuion ios5 related but i’ve found unity runs lots faster with ogles 20 disabled. but if your using glsl/cg shaders its not really a ideal solution
i am glad someone else has noticed this. i recently upgraded to iOS 5 and have been having a hell of a time trying to figure out why my game was all of a sudden too slow to run at a decent framerate.
at first, i thought it had to do with a high amount of draw calls, so i spent 2 days straight reworking and optimizing. it was really frustrating to get no noticeable results. next i tried to reduce transparency, and went to great lengths reworking that… it helped a little, but no serious solutions.
finally, i disabled what i thought was a pretty innocuous “clean up” function that was disabling scripts en mass – huge speed boost. i had thought that enabling/disabling custom scripts had no performance cost, so i never even bothered to check. it seems like there is a lot of memory use involved with it, as if iOS 5 is more strict with allocating memory. perhaps im crazy, but it seems like the lag has to do with the garbage collection being invoked constantly.
please let me know how the devs respond to you, because it has been a serious blow to my enthusiasm. the lag that was newly introduced really frustrated me, especially because no one seemed to be having the issue.
THANK YOU!!! This is what I needed for the time being. I made this change and everything is running as its supposed to be. I have submitted my updates to the app store.
What caught me off guard was that my main dev phone is a 3Gs. The performance was fine on this. It was crappy on the 4G with iOS 5. As it turns out, it wasn’t even that great with iOS 4 on the 4G, but it was passable enough not to get complaints.
I am assuming I was using some bad shaders for OpenGL 2.0 and I need to do some research to get up to speed. (Although I have heard it can be slow.) At least I have a short term fix which I am happy with.
fi you are using already mobile shader provided in unity and get those result , well yeah it sound kind of weird, specially considering that openGL 2.0 will become the standard to go for now XD…
I already saw in my own app that flag it to 0 lower stuff , and sometimes give you a boost or at last more stable fps, but that really depends on the game, on a 2d game I am doing now , with some overdraw going on, it doesn’t matter if i set openGL flag 0 or 1 , that do not change any about perf , in both case it kept 60 fps.
so well , I guess as hippo said , UT staff could share some light in this considering you are using recommended shader for iOS…
@bigtoeproductions what you are actually comparing?
I see GLES 2.0 data for iPhone 3GS vs iPhone4 (the same OS, different devices) and GLES 1.1 comparison is for the same device (iPhone 4), but for differen OS’es. It looks a bit like comparing apples to oranges