Friday 31 January 2014

First video of the project

Hello there! Here is my first video of my game. It's a very early progress, I am currently working on the physics. As you can see, it's far from perfect. I didn't program the engine, and gears, also the traction needs more programming. I'll be back with more videos soon! Enjoy!


Friday 24 January 2014

Painting!

Flat, white colors with shading... is it looking good? NO! It's not. So, I tried to paint it. I'm not good at unwrapping a model, but I tried my best. Well, the result it not perfect, but I learnt from it. I usually use Photoshop for things like this, but this time, I gave a chance to InkScape, a vector graphic SVG editor. And guess what? It did its job very well!

Monday 20 January 2014

LOD

Nope, it's not Lord of Destruction... Of course, I meant level of detail in the title. Currently I am testing a simple LOD system (for Unity Free) based on the one I found on Unity forums (Thanks to Westmark). I already made some modifications on it. I disable game objects with it which contains the meshes (instead of changing the mesh within the mesh renderer component). Also I'll make it more versatile, it'll be possible to set the distances for each details instead of the current system. Working well, but I have no idea about the memory usage yet. All the details have to be on the scene, but in a disabled state. So they are preloaded.

I am targetting mobile devices and mobiles / tablets has usually small screen and / or low resolution. Small screen / low resolution means, you can't see everything in a high detail. So it is possible to make the lower detail models much lower than on PC. Wheels will be very angular in the lowest detail, however they'll be detailed in highest detail and cockpit view. Probably the most simple car model will be around 500-600 triangles, the highest detail will be around 2500-3000 (tyres and driver included). I have no performance data yet, but I think, this LOD script is efficient.

Tuesday 14 January 2014

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!