Friday, 10 January 2014

Let the coding horror begin!

Hello people of internet!

This is my post about my game development progress. Well, I am trying to make a racing game for Android. My main development tool is Unity (the free version). I am still new to mobile game development. It's a little bit different than making games for PC or other high performance consoles. Mobile devices are still not as fast as desktop computers. Both GPU and CPU are weaker, some devices has low amount of RAM and storage. So it is limited and developers have to be very clever at optimizing games.

Profiling is not very easy without Unity Pro's profiler, but I found a great solution called Adreno Profiler which doesn't work on all the mobiles, but it runs with my Nexus 7 2nd Generation. So finally, I have a profiler, I can see, what costs more or less in rendering, so I can tweak my game and test again and again. It's a great tool, and easy to use. Well, this program quickly gave me ideas, how to make graphical performance higher. However, I didn't find out, how to check CPU usage in it. I have a simple CPU usage monitor on my Android device, but I can't figure out, what are the most expensive calculations.

Adreno Profiler
A great method to figure out, where is your graphics bottle-necking.

Actually, I have a serious problem. My game is greatly bottleneck at physics I think. I'm not sure, but the more the cars the less the performance. I mean seriously, I put 4-6 more cars, and FPS decreases. It's not good, especially talking about a Nexus 7 which has a decent hardware. I tried out making the car meshes more simple (I just used a simple box), same problem, so the problem is not graphical, but more like the calculations are too much for Qualcomm's Snapdragon S4 Pro CPU. Very disappointing, I need to find an other was for physics, I guess. Actually, I was very happy with the current physics.

Adreno Profiler Graphs

Don't know, what to do now... Well, I need to figure out, what is the exact reason for the bad performance. I need to simplify the physics as much as possible without making it very unrealistic and bad. More experiments tomorrow. For today, I am out!