Jiss TechStart a project
TimeStop app icon

Case study · Android casual game

From Game Idea to Global Leaderboards

TimeStop is a game of pure internal timing made by Jiss Tech: the clock goes dark, you count the seconds in your head, and the game scores your stop down to the millisecond. Designed, built, and shipped to Google Play in-house.

Live on Google PlayMillisecond scoringGlobal leaderboards

Business / product problem

A game about milliseconds can't cheat on milliseconds.

TimeStop's premise depends on measuring a short interval consistently. A monotonic Stopwatch records the elapsed duration before result-state rendering, so animation and network latency do not define the score.

Around that core sits everything a live competitive game needs: global leaderboards that update as the world plays, daily and weekly challenges derived from UTC dates, duel codes that connect two players through a realtime channel, and a progression system that keeps a one-mechanic game interesting for 45 levels.

Product overview

One mechanic, engineered to be worth mastering.

Millisecond scoring

The clock goes dark, you count the seconds in your head, and your stop is scored to the millisecond. No reflexes, no luck — just your internal sense of time, measured honestly.

Daily & weekly challenges

Everyone in the world gets the same challenge and one shot at it. Global leaderboards make a two-second round worth coming back for every day.

1v1 duels

Share a code, receive the same target, and compare results through an ephemeral realtime channel.

45 levels across 5 worlds

A progression arc with star ratings and unlockable themes turns a single mechanic into a game with somewhere to go.

TimeStop home screen with daily challenge, weekly challenge, duels, and levels
TimeStop daily challenge result ranked on the global leaderboard
TimeStop level select showing worlds and star ratings
TimeStop duel screen for challenging a friend with a shared code

Verified architecture

A local-first game loop with a small, focused realtime backend.

TimeStop keeps the precision game loop and progression on-device. A monotonic Dart Stopwatch measures rounds, SharedPreferences preserves anonymous state and unsynced attempts, Supabase stores daily and weekly leaderboard entries, and Supabase Realtime provides ephemeral broadcast/presence channels for 1v1 duels.

Rendering verified architecture…

Technology

The stack, without the résumé padding.

Every technology below is tied to the audited project source—not to a company-wide capability list.

Application

FlutterDarthooks_riverpodgo_routerCustom game loop

Timing & state

Dart StopwatchDurationSharedPreferencesLocal-first sync

Backend

Supabase FlutterPostgREST tablesSupabase RealtimeServer time

Competition

Daily leaderboardWeekly leaderboardRealtime duelsAnonymous UUIDs

Operations

Sentry FlutterTrace samplingRelease environments

Distribution

Google Mobile AdsRewarded adsSigned Android bundleGoogle Play

Constraints

What the system had to respect

  • The core result must come from a monotonic clock rather than wall-clock changes or UI animation timing.
  • Daily and weekly attempts must survive offline starts and failed submissions without granting a second local attempt.
  • Global competition and 1v1 play must work without requiring users to create accounts or provide personal identity data.

Solution

Engineering decisions that answer those constraints

  • Drive every round with Dart's monotonic Stopwatch and keep UI visibility separate from the underlying elapsed duration.
  • Derive daily and weekly targets deterministically from UTC dates so clients receive the same challenge without fetching target configuration.
  • Persist attempts, progress, settings, stats, achievements, and hearts locally, then synchronize leaderboard entries when Supabase is available.
  • Use ephemeral Realtime channels for duel starts, presence, and results while keeping long-term competition in daily and weekly tables.

Engineering challenges

Measure before rendering

The controller captures Stopwatch elapsed time before result-state work, then derives the displayed millisecond difference from the measured duration.

Make competition local-first

Attempts are saved locally before Supabase submission, cached leaderboards render immediately, and failed submissions can retry later.

Create realtime play without accounts

A generated UUID and display name identify the player while six-character duel channels use Realtime broadcast and presence instead of stored user profiles.

Integrations

External systems with defined jobs

  • Supabase table access for daily and weekly leaderboard submission and reads.
  • Supabase Realtime broadcast and presence for ephemeral 1v1 duel rooms.
  • Sentry Flutter for crash reporting, environment tags, and trace sampling.
  • Google Mobile Ads for standard and rewarded-ad flows.
  • Google Play for the published Android release.

Reliability & security

Controls visible in the source

  • The timing engine uses a monotonic Stopwatch and captures the stop value before other result processing.
  • Daily and weekly attempts write locally first; offline or failed submissions remain available for later synchronization.
  • The client prevents repeat local attempts and handles duplicate-insert responses without creating a second result.
  • The inspected source uses anonymous UUIDs rather than account authentication and sends crash telemetry through Sentry.

Outcome

What the verified implementation demonstrates

TimeStop shipped publicly on Google Play with millisecond-displayed timing, 45 levels across five worlds, daily and weekly challenges, anonymous global leaderboards, realtime 1v1 duels, achievements, progression, ads, and crash reporting.

The repository does not include Supabase migrations or row-level-security policies, so this case study describes the verified client contract without claiming an independently audited backend policy configuration.

Lessons learned

  • Keep precision gameplay on a monotonic local clock; networking should distribute competition, not define the result.
  • Local-first submission makes short competitive sessions resilient to ordinary mobile connectivity failures.
  • A focused backend can support leaderboards and live duels without forcing account creation into a lightweight game.

What this proves

Product sense, precision engineering, and a real launch.

A shipped game demonstrates things a portfolio mockup can't: precise client-side engineering, Supabase-backed leaderboards and realtime channels, store submission and release management, and the product judgment to keep something simple fun. It's the same end-to-end capability behind our mobile app development work — and the reason clients trust us with apps that face their own customers.

Have an app or game idea of your own?

We'll give you an honest read on the smallest version worth shipping — and a fixed price to get it into the store.