
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




