Made By BangMade By Bang
iOS + AndroidFlutterDartHiveMobileiOSAndroid

Lumo — Một câu đố nhẹ nhàng mỗi ngày

Numberlink puzzle daily — nối các cặp chấm cùng màu, lấp đầy ô lưới, giữ chuỗi. Offline, không account, không pressure.

Lumo — Một câu đố nhẹ nhàng mỗi ngày

Thách thức

Thị trường puzzle mobile bị chia làm hai cực.

Một bên là Flow Free, Numberlink — hàng nghìn level, chơi hoài không hết, nhưng dễ rơi vào "grind" và mất thói quen quay lại. Một bên là Wordle, NYT Connections — một câu đố mỗi ngày, ritual rõ ràng, share dễ — nhưng đa phần là từ ngữ, không có gameplay logic spatial.

Lumo lấp khoảng giữa: một numberlink puzzle mỗi ngày, không từ ngữ, không cần network, không account, không pressure.

Hướng tiếp cận

Ba nguyên tắc design lock từ ngày đầu:

  • Whisper, not scream. Không screen shake, không white flash, không chromatic aberration. Animation tối đa 400ms cho mọi feedback (trừ board clear: 800–1200ms). Haptic chỉ khi đúng — sai chỉ là một sắc đỏ nhẹ.
  • Offline-first, không account. Không backend. Không Firebase. Không analytics SDK. Toàn bộ tiến trình, streak, lịch sử run nằm trên thiết bị qua Hive. Mất điện vẫn chơi được.
  • Daily seed cross-platform. Daily puzzle cùng một seed cho mọi player toàn cầu mỗi ngày. Dùng xorshift32 + FNV-1a tự viết (không dart:math.Random) để đảm bảo deterministic giữa các phiên bản Dart.

Cách chơi

  1. Vẽ đường — chạm và kéo từ chấm này tới chấm cùng màu, qua các ô trống.
  2. Lấp đầy lưới — mọi ô phải được phủ.
  3. Không giao đường — hai đường khác màu không được cắt nhau.
  4. Hoàn thành bảng — khi tất cả cặp được nối và lưới đầy, bạn thắng.
  5. Giữ chuỗi — giải Daily Seed trước nửa đêm (giờ địa phương) để giữ streak.

Hai chế độ chơi

Daily Seed Challenge

Một câu đố mỗi ngày. Cùng seed cho tất cả người chơi. Hoàn thành trước nửa đêm theo giờ máy bạn để giữ streak. Share kết quả dưới dạng ảnh qua share sheet — không leaderboard, không pressure.

Endless Run

Sau mỗi bảng giải xong, bảng mới xuất hiện ngay. Combo multiplier (×1 → ×8) thưởng cho việc giải tập trung, không lỗi. Run summary sau mỗi run hiển thị combo cao nhất + tổng số board.

So sánh

Tiêu chíLumoFlow FreeWordleNYT Connections
Cơ chếNumberlinkNumberlinkWord guessWord grouping
Daily ritualKhông
Chế độ vô tậnKhôngKhông
Offline-firstMột phầnKhôngKhông
Không accountKhôngKhông
StreakKhông
Share imageKhông

Kỹ thuật nổi bật

  • Engine — Flutter + CustomPainter thuần (không Flame).
  • StateValueNotifier + setState, không Riverpod / BLoC.
  • Persistence — Hive, một persistence branch duy nhất.
  • Audioflutter_soloud (latency thấp, không 80–150ms như audioplayers).
  • Puzzle pipeline — Python + Z3 solver tự viết, sinh + verify pack offline.
  • A11y — Bảng màu Okabe-Ito (color-blind safe) + symbol option, reduced motion, haptic toggle.

Chi tiết dự án

Hạng mụcGiá trị
Vai tròSolo dev — design, code, audio, content, marketing
Timeline5–6 tuần full-time tới TestFlight
StackFlutter, Dart, Python (puzzle gen), Z3 solver
MonetizationFree + interstitial/rewarded ads · IAP Remove Ads một lần $3.99
Trạng tháiv1.0.0 — TestFlight 2026-Q2
smartphone

Tải ứng dụng

Trải nghiệm native.

qr_code_2Quét để tải
Hoặc xem trên trình duyệt

Chi tiết dự án

Vai tròSolo Developer
Năm2026