Skip to content

About

A precision timing challenge game built with Flutter. Test your internal clock — set a target time, start the timer, and try to stop it at exactly the right moment.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Stop The Timer

A precision timing challenge game built with Flutter. Test your internal clock — set a target time, start the timer, and try to stop it at exactly the right moment.

Features

Single Player

  • Set any target time from 0.5 s up to 99 s with centisecond precision
  • Quick-adjust buttons (±5 s, ±10 s) and preset chips for common durations
  • Hidden-timer mode — stop by feel alone, no display to cheat with
  • Exponential scoring and result feedback (how early/late you were)

Multiplayer (2 – 8 players)

  • Turn-based play with player name setup and drag-to-reorder
  • Choose a time range (short/medium/long) and difficulty (Easy → Expert)
  • All players in a round share the same target — a new target generates each round
  • Per-turn score cards and a final ranked scoreboard with round-by-round bars

General

  • Dark, minimal UI with Orbitron (digits) and Exo 2 (text) from Google Fonts
  • Show/hide timer toggle in Settings
  • Persistent settings via SharedPreferences
  • Android 13+ predictive back gesture support

Tech stack

Layer Library
State management Riverpod (hooks_riverpod)
UI hooks flutter_hooks
Fonts google_fonts
Persistence shared_preferences

Getting started

Prerequisites

  • Flutter SDK ≥ 3.5.0
  • Android SDK / Xcode for mobile targets

Install & run

flutter pub get
flutter run

Build a release APK

flutter build apk --release

Project structure

lib/
├── app.dart
├── main.dart
├── core/
│   ├── constants/      # Game constants (ranges, difficulty, scoring)
│   ├── theme/          # Colors, text styles
│   └── utils/          # Time formatting, score calculation
├── features/
│   ├── home/           # Home screen
│   ├── settings/       # Settings page + provider
│   ├── single_player/  # SP game state, provider, page
│   └── multiplayer/    # MP game state, provider, setup/game/scoreboard pages
└── shared/
    └── widgets/        # GradientButton, TimerDisplay

How to play

Single Player

  1. Set your target time on the setup screen and tap I'M READY.
  2. On the ready screen, tap the circular START button — the timer begins.
  3. Tap STOP when you think the target time has elapsed.
  4. See how close you were and your score out of 1000.

Multiplayer

  1. Add players, choose a time range, difficulty, and number of rounds.
  2. Each player takes a turn: confirm with I'M READY, then tap START.
  3. After every player in a round finishes, a new target is generated.
  4. The player with the highest total score wins.

License

This project is licensed under the MIT License — see LICENSE for details.

About

A precision timing challenge game built with Flutter. Test your internal clock — set a target time, start the timer, and try to stop it at exactly the right moment.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages