JT
  • Home
  • Projects
  • Extras
  • Contact

© 2026 Joshua Tjhie. All rights reserved.

GitHubLinkedInEmail
Back to Projects
  1. Home
  2. Projects
  3. Declinant (Placeholder)
2021-09-01

Declinant (Placeholder)

A hypercasual mobile game previously live on Google Play.

Postmortem and design breakdown of Declinant — the minimalist arcade title I prototyped, shipped to Android, and ultimately retired.

HypercasualMobileUnity
Declinant (Placeholder)

Quick Stats

Role: Solo Developer
Duration: 6 weeks
Unity 2020 LTSC#Firebase AnalyticsFirebase Remote Config

Links

Design Notes (PDF)Contact About Declinant

Declinant — Postmortem

Declinant is no longer on Google Play, but this postmortem captures the design decisions, telemetry results, and lessons from shipping a solo hypercasual title end to end.

Declinant was a one-touch arcade game: dodge falling shapes, climb the leaderboard, and adapt to "declining" gravity modifiers that invert or amplify physics each run. It went from prototype to store page in six weeks.

Core Loop

The loop was ruthlessly simple by design. Hypercasual retention lives and dies in the first 30 seconds — every mechanic that didn't survive that filter got cut.

  1. Shapes fall from the top; player taps to jump.
  2. A gravity modifier triggers every 15 seconds — inversion, speed burst, or double-gravity.
  3. Score is distance survived; a leaderboard kept players returning.
Gameplay screenshot
Early gameplay build — minimal UI, single-button control, high contrast shapes.

The gravity modifier

The "declining" mechanic gave the game its identity. Each modifier variant needed to be:

  • Legible — player understands what changed within one second.
  • Fair — never feels like a gotcha; there's always a survival path.
  • Varied — three modifier types kept the mid-session feel fresh without adding complexity.

I playtested 11 modifier variants and kept three:

  • Inversion — gravity flips; shapes now fall upward. Players adapt in under 2 seconds.
  • Surge — everything accelerates by 40 %. High tension, short duration (8 s).
  • Double — two shapes spawn per tick instead of one. Punishes passive play.

Tech stack breakdown


ScriptableObjects made live tuning fast — I could push new difficulty curves via Firebase Remote Config by mapping field names to JSON keys, no code deploy required.

Firebase integration

Key telemetry events:

  • session_start / session_end with duration.
  • modifier_triggered with variant and survival delta.
  • ad_rewarded_complete with session position.

The data confirmed the hypothesis: players who encountered the Surge modifier in their first run had a 14 % lower D1 return rate. I delayed its introduction to run 3.

Declinant — sound design preview (jump, hit, modifier trigger)Listen
Your browser does not support the audio element.
Gameplay recording from the final public build — Surge modifier at the 0:20 mark.

Monetisation experiments

The model was rewarded ads only — no IAP, no paywalls. I tested three ad placements:

  • Session-end — highest completion rate (71 %) but no session extension.
  • Mid-run offer — "watch an ad to revive" — 43 % accept rate; significantly extended session length.
  • Passive banner — removed after week two; measurable negative effect on session rating.

The revive placement won and stayed.

Why I pulled it

The honest answer: support cost exceeded download velocity. Google Play policy changes in late 2021 required a privacy policy link and updated SDK targets. The update touched half the codebase. With downloads plateauing at ~200 / month, the maintenance ratio stopped making sense.

The game itself worked — the loop was sound, D7 retention was 8 % which beats category average. I'm glad I shipped it.

Shipping a real product, however small, teaches things no tutorial or side project ever can.

Ask About Declinant

Have thoughts?

Curious what others see or think

Feel free to reach out or leave feedback

Share Feedback

Prefer email? joshuatjhie@pm.me