Thursday, June 18, 2015

June status update


Time to chat about what's been going on with the project. We've been very busy optimizing the code and assets, and creating new playable content.



Optimizing


Code optimization is now pretty much done. The profiling shows very minimal CPU and memory usage on custom scripts, although it still requires constant improvement during the work process. Garbage Collection especially can bring some heavy spiky drops in framerate that can result in lagging and slight freezing on mobile devices which of course is totally unacceptable.

Breakable objects

I've noticed that one should think really carefully what to put under Update() and FixedUpdate() since things can quickly build up to become performance hogs and spam the system with buttload of GC. Also, the GetComponent searches are quite taxing, not to mention tag & name searches and string formatting, so you'll do yourself a favour if you minimize those in your code. In general, GetComponents are best used in Awake() or Start().

The grenade turret has a shield

There's one thing we can't optimize and it's the Unity's UI system which keeps causing us grey hair. The canvas building and rendering system is very heavy on mobile, but the good news is that apparently they're fixing this with a complete rewrite and the result is supposed to be arrive with 5.2 release. Can't wait!

Graphics assets are being optimized as well and there's going to be some drop in drawcalls and texture switches which should guarantee more predictable and stable framerate.


Lightprobes are now added to eliminate any real-time lights from hogging up the GPU, but unfortunately the lightprobe system seems to suffer from gamma issue of some sort and thus is totally unusable at the moment. This too, is currently being fixed by UT, so we're waiting.

Getting rid of the one directional light we have that also casts shadows, creates a problem with shadows and we're looking into it. We need a new and fast solution to cast shadows for dynamic objects.


Puzzles


Because the game is more focused on problem solving and small puzzles rather than pure action, we've been focusing on making that part of the game as diverse as possible. With the players anti-gravity gun, reflecting shield and hacking abilities, the options are vast when it comes to figuring out how to create fun and exciting maps to play.


There are some challenges in the game that require more mobility and quick movement with correct timing, while others are more brain-teaser types. Balancing these with some action elements, exploration and storytelling to form comprehensive missions, is both fun and challenging!


We've been adding new puzzles for the past few weeks and the task continues. July is dedicated to inventing a large variety of new puzzles to build levels with. Things are progressing quite fast now and you can expect more updates about it, hopefully a bit more frequently than has been the trend of
late.

That's it for this one, thanks for reading!


- Timo Kuronen





- Sami Kuronen