VIEW

Craft.Interaction.Mechanics that hit.

Role

Product Designer
→ Senior (2024)

Timeline

2020 → 2024
~4 years

Surfaces

8 shipped
across 6 products

Stack

Loops · currencies
mechanics · economy

Outcome

Quests sunset · PlayPal scaled
CPI → ROAS pivot

— What I owned

Design across 8 surfaces — launcher Quests, Payments receipt promotions, payment completion screen, nowCafe LINE/Telegram, now.gg Profile (nowBux home), PlayPal Mobile real-money tasks, cloud GameRoom, and Snake Planet (in-house demo). Loops, currencies, redemption, and the economy that tied them.

— Worked with

PMs across Payments, Cloud, and Mobile. Eng leads on each surface. Growth + LiveOps for reward economy. Graphics + motion team on GameRoom themes/effects and Snake Planet art. Anti-fraud + finance partners on PlayPal's real-money payout rails.

FIG. 01 / OVERVIEW
gamification · 8 surfaces · b2c
2020 — 2024
● CPI → ROAS PIVOT
Gamification
§00What it added up to.aggregate · 2020 → 2024

8

Surfaces shipped across 6 products

App Player Quests, Payments receipt promotions, payment completion screen, nowCafe LINE + Telegram, now.gg Profile (nowBux home), PlayPal Mobile, cloud GameRoom, Snake Planet (in-house demo testbed).

~4 yrs

Active ownership across the stack

Wheels, scratch, chests, jackpots, missions, sweepstakes, daily chests — the mechanics were the means. The loop was the product, and the metric it served kept changing.

~$300K /mo

Player IAP spend across the surfaces

Monthly IAP volume across nowSDK-integrated games — the spend surface the gamification loops were tuned against.

§01Why this is its own case study.setup

Each of these surfaces lived inside a different product case study — App Player, Payments, nowCafe, now.gg Cloud, PlayPal Mobile, plus an in-house demo built as integration infrastructure. Looked at one at a time, they read as small features.

Looked at together, they read as a four-year investigation into a single question: what makes a player come back tomorrow when the game itself isn't the reason?

That question doesn't fit inside any one product page. It needed its own narrative — eight experiments stacked end-to-end, with the through-line made visible.

SYSTEM MAP8 surfaces · 6 products · 1 ledger
BlueStacks · App Player
  • Quests — install loop, sunset 2023
Payments
  • Receipt promotions — cultural reveals (CNY, Easter, regional)
  • Completion screen — guaranteed-reach reward + Prime upsell
nowCafe
  • LINE bot — immersive AI-agent cafe
  • Telegram bot — lighter loop + TON crypto rail
now.gg · Cloud
  • Profile — nowBux home (PlayPal, daily chest, crypto, casino)
  • GameRoom ★ social cloud-play · §06 favourite
PlayPal · Mobile
  • Real-money task layer — Quest replacement, ROAS-tuned
In-house demo
  • Snake Planet ★ integration testbed · §06 favourite
SHARED LEDGER · nowBux

One currency wired through every surface — earn on Quests or PlayPal, redeem on receipt promotions or Profile. The ledger is what made the surfaces a system instead of six unrelated features.

§02The three layers under every surface.framing

Across the six measured experiments, the same three layers showed up every time. Whether the surface was a launcher, a receipt page, a bot, a wallet, or a payout flow, design had to answer the same three questions in order.

L1 · BEHAVIOR LOOP

What is the player repeating?

The loop comes first. Daily check-in, post-purchase spin, streak save — without a loop, every mechanic is a one-time trick.

L2 · MECHANIC

What gives the loop its texture?

Wheels, missions, jackpots, daily chests. Mechanics make the loop feel different each time — but they don't replace the loop.

L3 · CURRENCY & ECONOMY

What does the player walk away with?

nowBux, cashback, real cash, crypto. The reward has to be redeemable somewhere the player already wants to be — otherwise the loop doesn't close.

Two constraints that ended up holding across all six measured surfaces:

§03Six measured surfaces, in the order they shipped.the experiments

Each surface was a separate product decision with its own PM, its own deadline, and its own audience. Read together, each one inherits the lesson from the previous.

SURFACE 01BLUESTACKS · QUESTS · SUNSET

Quests — the install loop we killed on purpose.

bsxQuests
The behavior gap

BlueStacks ran on CPI deals — publishers paid for installs, and the launcher's job was to drive new title installs from existing users. Quests was the gamification answer: missions that paid out for installing partner titles, with sweepstakes holding the user across days.

What we built

A quest layer inside the App Player — daily, weekly, and seasonal install missions, sweepstakes, and a visible reward ladder paying out in nowBux. Designed to feel native to the launcher chrome, not a feature pasted on top.

What we learned

Quests worked for the metric it was built to serve — install attribution lifted ~15–20% on CPI campaigns pre-sunset. But the publisher market shifted underneath us: deals stopped paying for installs and started paying for ROAS (return on ad spend). An install-driving loop was the wrong loop for the new metric.

Decision carried forward

Sunset Quests rather than retrofit it. The mechanics didn't map to ROAS — what mapped was return-play + IAP, which became PlayPal's spec. (See Surface 06.)

SURFACE 02PAYMENTS · RECEIPT PROMOTIONS

Receipt promotions — turning a confirmation page into a cultural moment.

paymentsMiniGames
The behavior gap

The receipt page was dead real-estate — “your purchase is complete” and a CTA back to game. The most engaged moment in the funnel was being wasted on a static confirmation, and flat cashback alone wasn't pulling players back to spend it.

What we built

Culturally-themed claim moments bolted onto the receipt — red-envelope reveals during Chinese New Year, egg-cracking for Easter, region-specific events tuned to the player's market and calendar. Each promotion gated extra cashback behind a single tap-to-reveal interaction, on top of the standard cashback line.

What we learned

Cultural framing + reveal variability did what a flat bonus couldn't. Players engaged with the receipt because the moment belonged to them, not the product. With these promotions running through Q2 2025, total IAP volume across the surface lifted to ~$800K in the quarter — the highest the receipt funnel had ever measured.

Decision carried forward

Anchor receipt-page rewards to the cultural calendar, not the product roadmap. Keep the reveal mechanic; rotate the cultural shell quarterly.

SURFACE 03PAYMENTS · COMPLETION SCREEN

Completion screen — guaranteed reward visibility for every payer.

paymentsCashback
The behavior gap

The receipt-page promotions worked for users who lingered, but a meaningful share closed the post-purchase flow before the receipt fully rendered. There was no wallet to fall back on — if a player missed the receipt, they missed cashback visibility entirely, and visibility was the lever that drove return spend.

What we built

A new surface on the payment completion screen — the unmissable moment between “transaction approved” and exit — that surfaced cashback earned and other reward states to every payer with certainty. Engaging animations on the cashback line made the moment feel like a payoff, not a confirmation. The same surface also carried BlueStacks Prime subscription promotion as a contextual upsell at the highest-intent moment in the funnel.

What we learned

Reach beat depth. A short, animated reward moment seen by 100% of payers outperformed a richer mechanic seen by a fraction of them. The completion screen turned out to be the highest-conversion surface for Prime upsell across the product — purchase intent was already proven, the friction was zero, and the reward framing made the upsell feel earned rather than pushed.

Decision carried forward

Make the payment completion screen the canonical reward-display surface — receipt-page mechanics layer on top for engaged users, but the completion screen owns base-case visibility for all payers and anchors Prime upsell.

SURFACE 04NOWCAFE · LINE + TELEGRAM

nowCafe — interactive storytelling on one rail, crypto payments on the other.

nowcafeBots
The behavior gap

nowCafe needed a way to reach users in markets where in-app push was either blocked or ignored — Japan and parts of SEA where LINE and Telegram own attention. The brief wasn't a lightweight bot; it was a full product surface lifted into the messaging app.

What we built

On LINE, an immersive cafeAI agents with character profiles, a cafe-themed Rich Menu, and interactable image messages letting users chat with characters on any topic. Agents also recommended cloud games and let users discover and play them inside the same immersive flow. On Telegram, a lighter shell — game discovery and play without the immersive graphical layer, but with deep TON integration (the app's in-house crypto on Telegram). Users could convert nowBux ↔ TON and complete payments end-to-end without leaving the chat.

What we learned

One product, two messaging textures. LINE was the right rail for narrative and immersive game discovery — users showed up to spend time. Telegram was the right rail for transactional flow — short loops + native currency rail (TON) where users showed up to do. Forcing one experience across both would have flattened both.

Decision carried forward

Let each platform carry the role its users already came for. LINE owns the immersive AI-agent/cafe surface; Telegram owns the lighter game loop and TON-rail payments. Don't cross-port the experience.

SURFACE 05NOW.GG · PROFILE REWARDS

now.gg Profile — from nowBux ledger to the home for every reward loop.

nowggProfile
The behavior gap

now.gg Profile started as a flat nowBux transaction history page — total balance, where the currency came from, where it went. Useful, but passive: every logged-in user passed through it, and the surface didn't ask them to do anything with the currency sitting in their account. Profile was also the only surface that saw nowBux earned across every other product — BlueStacks App Player, BlueStacks Mobile, Cloud Player — wherever the user's now.gg account had touched.

What we built

Reframed Profile from a passive ledger into the home for everything nowBux. Layered multiple gamification experiments side-by-side on top of the existing balance + ledger view: PlayPal tasks, daily chest, crypto rewards, and most recently a casino mechanic. Currency earned anywhere on the now.gg account — App Player, Mobile, Cloud — flowed in here and could be spent right back into more game time and more experiments. One surface closed the earn → view → spend → re-earn loop.

What we learned

Profile became the cleanest A/B environment in the stack — multiple mechanics on the same audience, all sharing one currency. The load-bearing learning was structural: collapsing the wallet view and the spend mechanics onto the same surface beat keeping them separate. A passive ledger generated almost no return-spend on its own; the same balance, shown next to a live mechanic the player could act on, did. Players don't redeem currency they have to navigate to find.

Decision carried forward

Treat Profile as the canonical nowBux home — balance, history, and active spend mechanics — not three separate surfaces. The surface earns its weight by being the one place every reward loop converges, regardless of which mechanic happens to be active that quarter.

SURFACE 06PLAYPAL · MOBILE · QUEST REPLACEMENT

PlayPal — the loop we built when CPI stopped paying.

playpalMobile
The behavior gap

When publishers shifted from CPI to ROAS, BlueStacks needed a gamification loop that drove return play and IAPs, not installs. Quests was retired; PlayPal was the spec for what came next — pay players to keep coming back, design the rewards to surface IAP-relevant titles, ship on mobile where the new ad spend was going.

What we built

A task layer tied to verified play sessions on partner titles — completion paid out in a mix of nowBux and real cash, with the loop tuned so the highest-paying tasks surfaced titles that monetised through IAP. Anti-fraud rails (device, account, session validation) were baked into the design, not bolted on. PlayPal's outcome metric was the one publishers now cared about: lift on D30 retention and IAP ARPDAU.

What we learned

Real-money rewards changed the user — players who arrived for cash didn't convert into players who arrived for the game. Two distinct audiences. PlayPal's ROAS lift came from the cash-first cohort being directed into IAP-rich titles, not from converting them into game-first players. The BlueStacks Mobile app was running ~$600/day in IAP volume at steady-state — the spend surface PlayPal's task layer was tuned against.

Decision carried forward

Treat cash-task players and game players as two product surfaces sharing one currency, not one funnel. Ship the metric publishers buy on, not the metric we wish they bought on.

§04What every surface had in common.through-line

Across all six measured surfaces, the loops that survived a cohort had three shared traits: a daily-cadence trigger, a variable-reward shape, and a redemption surface where the player already wanted to be. Mechanics changed; the loop shape didn't.

§05What shipped, and what we measured.signal

Each surface had its own ship cadence and its own measurement frame. The point of collecting them here is the pattern across them, not the individual numbers — though the numbers are listed where I'm allowed to share them.

currencyLayer

Shared currency layer

nowBux unified BlueStacks, Payments, nowCafe, and now.gg Profile under a single ledger. Players earned on one surface, redeemed on another — the closest thing to a behavioral moat the products had.

nowggProfile

now.gg Profile — clearest signal

Profile became the cleanest A/B surface in the stack — PlayPal, daily chest, crypto rewards, and casino all running side-by-side on top of the same nowBux ledger. The structural lesson: collapsing wallet view and active spend mechanics onto one surface beat keeping them separate.

playpalMobile

PlayPal — the audience we didn't merge

Real-money task players and game-first players turned out to be two distinct populations. The honest design move was to stop trying to bridge them and treat the surfaces as parallel, sharing only the currency.

The metric pivot

Quests served CPI; PlayPal served ROAS. Same toolkit, different metric — and the discipline to retire the surface that didn't fit was worth more than any individual launch.

Retention & conversion

Sweepstakes carried D7+ retention; receipt-page visibility lifted second-purchase rate. The receipt funnel hit ~$800K in IAP volume through Q2 2025 — the highest the surface had measured. Numbers per surface are listed in §03.

Audience honesty

PlayPal taught us when to stop unifying. Cash-first and game-first players are two surfaces sharing one currency — not one funnel pretending to be unified.

§06A few more I'm fond of.favourites

I worked on plenty more surfaces across these four years. Below are two personal favourites — pieces I built end-to-end that I keep coming back to for their own reasons. One reframed cloud play as a social space; the other was a tiny demo game that quietly carried the platform's integration spine.

Both were built solo, with art and motion contributed by the in-house graphics + motion team.

SURFACE 07NOW.GG · GAMEROOM · SOCIAL CLOUD-PLAY

GameRoom — cloud play as a social, theatrical surface.

gameRoom
The opening

Cloud play was a single-player experience inside a browser tab — the player streamed a game, and friends had no surface to watch, react, or feel like they were in the room together. The engagement loop ended at close-tab. Cloud streaming already had the spectator pipe end-to-end; the social shell around it didn't exist.

What we built

A GameRoom on now.gg Cloud where users invite friends to play together or stream gameplay live to spectators inside the same room. Spectators aren't passive — they fire interactive effects (funny sound bombs, visual overlays) into the room in real time, visible to everyone in the session. Each player's personal theme is driven by a tokenised JSON theme system — every fill, gradient, and surface a token, themes swappable mid-session per user. Personal theme stays user-specific; the shared effects layer sits on top, visible to the whole room. Built solo, collaborating with the in-house graphics + motion team for theme art and effect animations.

What I took away

Cloud play wasn't a player + game; it was a room with the player at one position and the experience radiating outward to whoever else joined. Engagement scaled with room size, not player count — the more friends in a session, the longer everyone stayed. The token-driven theme system also earned its keep: graphics could ship five themes for the cost of one because every theme was a JSON swap, not a re-skin.

Decision carried forward

Treat cloud play as a social surface, not a single-player one. Spectator-side interaction is its own first-class layer — designed for, not garnished on top of, the player's flow. Tokenise everything visual so themes are content, not engineering work.

SURFACE 08SNAKE PLANET · IN-HOUSE DEMO · INTEGRATION TESTBED

Snake Planet — the demo game that became platform infrastructure.

snakePlanet
The opening

Every gamification surface depended on integrations the platform had to ship — payments, currency ledger, cashback flow, ad rails, anti-fraud, session validation. Testing those integrations end-to-end required a real game in production-like conditions, and partner studios couldn't be the test bed every time we shipped a new payment rail or reward hook. Shipping breaking changes against partner builds was slow, expensive, and bad for the relationship.

What we built

Snake Planet — a small in-house demo game built end-to-end as the smallest production-shaped surface that could exercise every integration funnel. Real payments, real cashback flow, real currency ledger, real ad placements, real session validation. A controlled testbed for breaking changes before they hit any partner title. Built solo, collaborating with graphics + motion for the game's art set.

What I took away

Owning a first-party test surface compressed integration cycles by weeks. The cost of building Snake Planet was paid back the first time a broken payment rail was caught in-house instead of in production with a partner studio. A demo game turned out to be design infrastructure, not a side project.

Decision carried forward

Keep a first-party game in the integration loop indefinitely. The minute integration tests had to run against partner builds, cycle time blew up — Snake Planet was the cheapest part of the stack to maintain.

§07What I'd do again, what I'd push harder on.reflection

Eight surfaces, four years, two metric regimes. Looking back, a handful of moves held up across surface-by-surface chaos — and a handful of misses kept showing up under different names. Listed below: the patterns I'd carry into the next loop, and the ones I'd catch sooner.

+
Kept

What I'd do again.

  1. 01
    Cultural shells over generic mechanics.

    The receipt page didn't need a richer mini-game; it needed a moment that belonged to the player. Red envelopes for CNY, egg-cracks for Easter, regional shells on the same reveal mechanic — anchored to the calendar, not the roadmap. ~$800K in IAP volume across the receipt funnel in Q2 2025 was the answer to whether cultural framing earned its keep.

  2. 02
    Reach beats depth on guaranteed-visibility surfaces.

    The completion screen out-converted the receipt page on Prime upsell not because the mechanic was richer but because everyone saw it. When the lever is visibility, ship the surface that reaches 100% of payers before the surface that engages a fraction. The animated cashback reveal on completion did more for return-spend than three layered receipt promotions ever did.

  3. 03
    Two audiences, one currency — not one funnel.

    PlayPal taught me to stop trying to merge cash-task players and game-first players. Treat them as parallel surfaces sharing the ledger, not one funnel pretending to be unified. The honest design move was to let nowBux do the bridging quietly, while the loops stayed separate. Same instinct held on LINE vs. Telegram for nowCafe.

Pushed harder next time

What I'd change.

  1. 01
    Spec the loop, not the mechanic.

    Early surfaces were specced as “add a wheel” or “add missions.” The right spec was always “design the loop, then pick a mechanic.” By the Profile rewards work, that order was reversed; everything earlier suffered for it. The mechanic is a costume — the loop is the body underneath.

  2. 02
    Instrument the loop, not the click.

    We measured opens, claims, and CTR per surface. We should have been measuring loop-completion cohorts — does this user return on day 2, 3, 7, having claimed — from day one. We caught up on this midway through Profile, but two years of mechanic-level metrics looked busier than they were.

  3. 03
    Sunset earlier when the metric moves.

    Quests outlived the metric it was built for by at least a quarter. We were proud of the loop and its CPI numbers; that pride slowed the decision to retire it. PlayPal would have shipped sooner if we'd called the pivot the moment publisher RFPs started asking for ROAS instead of CPI. The toolkit was ready; the willingness to retire was the bottleneck.

— NEXT   ·   Case 05   —   Selected Work · 2023 → NOW
Float   —   one parent DS, four product children