Have you built a 2D game with Apple's SpriteKit technology? Have you noticed that excessive texture memory use is a problem?

Introducing RenderReduce, a native iOS Framework that significantly reduces memory usage for SpriteKit based games.

How much can memory use be reduced? In the best case, a 75% reduction. In the average case, a 55% reduction.

How does it work?

Storing uncompressed texture data is the most common reason that an iOS app uses large amounts of memory. RenderReduce saves memory by both decompressing and rendering textures at the same time. The implementation uses the GPU instead of the CPU in order to save large amounts of real memory. RenderReduce increases execution complexity, but shifts the computational burden to the GPU which has significantly improved in modern iOS devices.

Traditional Approach:

  1. Decompress PNG or JPG
  2. Store in uncompressed texture memory
  3. Blit texture memory into framebuffer

RenderReduce Approach:

  1. Generate compressed texture
  2. Decompress and render into framebuffer

Developers can make use of RenderReduce to easily slim down the memory footprint of SpriteKit based games. Saving from 50% to 75% of active RAM is possible without impacting the FPS of a game. Note that RenderReduce requires a 64 bit A7 or newer chip.