Skip to content
Cups

Cups

Overview

A colour-sorting puzzle. Pour between the glasses until each one holds a single colour, with the space to work in getting tighter as you go.

Game Programmer · Live Ops and performance

Cups had passed a million downloads and was losing ground to its competitors. The gap was not content. It was technical stability.

I proposed the investigation after research showed that was the real gap, then used the Unity Profiler to pay down the technical debt behind it. Install memory came down 44%. Crashes and bugs got fixed. ANRs dropped below 0.47%.

Retention and profit both moved, and store visibility improved with them.

The rest of my time on Cups went into the live side of it: the Halloween event start to finish, the store and its purchase flows, the redeem-code system, and the screen flow holding all of it together.

  • 44% reduction in install memory
  • ANR rate driven below 0.47%
  • Multiple production crashes resolved
  • Measurable lift in retention and revenue
  • Improved store visibility

My contributions

Investigation

  • Benchmarked Cups against its competitors and found the gap was technical rather than content, then proposed the work myself: there was no ticket for it.
  • Built the profiling pass that located where the memory was actually going.

Performance and app size

  • Cut install memory 44% by atlasing and compressing the UI across every screen and clearing out three years of accumulated external assets, unused prefabs and dead scene objects.
  • Reduced runtime cost by moving initialisation out of Start into Awake, trimming allocations, tightening coroutine yields and stripping logging from release builds.
  • Refactored the singletons and separated responsibilities between classes that had grown into one another, so the optimisation would survive the next feature instead of regressing under it.

Stability and tooling

  • Diagnosed and fixed the production crashes and drove the ANR rate below 0.47%, verifying each fix against live store metrics.
  • Introduced SRDebugger, Build Report, the Memory Profiler and GPU profiling so performance stayed measurable by the whole team after I moved on.

Halloween event

  • Delivered the event end to end: screens, animations, popups, the main-menu entry point with its notification badge, purchase packages, item counts and timers.
  • A/B tested the package, adapted the tutorial around it, and removed every asset cleanly when the event closed.

Store and monetization

  • Built IAP for levels, coins and skins alongside rewarded-ad unlocks, with new themes, store pagination, limited-edition items and a price rebalance.
  • Built the redeem-code system and fixed the duplicated signal listener behind it that was crediting coins twice.
  • Repaired the purchase flows around it: buying without coins, the store failing on first open, items missing from the shop.

Screen flow and live ops

  • Wired the Doozy flow graph through the screen stack, covering end game, loading and splash.
  • Built the Rate Us system: appearance rules, intervals, per-level caps, iOS behaviour and the store redirect.
  • Localised share text, fixed the translation data behind it, and ran A/B tests on interface colour, the daily challenge and the star trigger.

Gallery

Project details

Studio
blu studios
Genre
Casual Mobile
Engine
Unity
Released
December 2020
Platforms
Android, iOS
Stack
Unity · C# · Optimization · Profiling · Live Ops · Monetization · A/B Testing