iOS Android Mining game

Project Details

  • Client :
  • Rockbite Games

  • What We Did :
  • Client performance and crash improvements

  • Skills :
  • GLProfiler, GLSL, GLES

Performance improvements

Using profiling tools for both opengl, opengles and implementing custom profilers in the game, we were able to reduce the crash reports and negative reviews due to these problems.

Reducing string and garbage allocations

In both RoboVM/MobiVM and android mobile applications, on lower end devices GC is noticeable and causes a bad user experience. It causes the device to use more battery, heat up, and the user can see visible hitches where frametimes can increase dramatically over a short period of time.

To detect these cases, we use profilers to record all allocations that do not have strong references, and isolate the source. Then using techniques of pooling, string buffers, removing concatenation, auto-boxing, and choosing appropriate data structures that are gc free, we can remove almost all allocations when the game is running, and completely eradicate the need for GC to run.

GPU and Rendering performance

Using GPU profilers and techniques to determine bottlenecks on mobile gles, we can diagnose and identify any source issues. These can involve many and combinations of the key issues:

  • Draw calls
  • Fill Rate
  • Oversampling
  • Bandwidth saturation
  • Binds/gl context switches
  • Underperforming shaders

Using the data we can plan an approach for restructuring rendering pipelines to optimize for the game if required including any asset pipeline changes that also may be required. Reducing oversampling