⚠️ Judge Evaluation & Direct Testing

  • Direct Production APK Download: Download MFORMULA v1.0.0 APK
  • Source Code Repository: GitHub - jayjunoir/Mformula
  • Store Distribution: Configured for Google Play distribution under Package ID com.mformula. Due to account indexing and store review lead times, please use the direct production-signed APK above for instant physical hardware testing.

Inspiration

Word puzzles often fall into two camps: passive trivia or repetitive swipe grids. We wanted to build something visceral and mathematically pure: a game inspired by Lewis Carroll’s classic word ladders, reimagined with the high-stakes intensity of a 90s arcade terminal.

The challenge of MFORMULA is deceptive: transform a 4-letter starting word into a target mission word by altering strictly one letter at a time, where every intermediate step must be a valid English word. To give players a true benchmark of skill, we pitted human intuition against a graph-theoretic shortest-path algorithm to set an optimal "Par" score.

What It Does

  • Kinetic Word Morph Engine: Enforces strict single-letter Hamming-distance mutations ($$d_H(w_1, w_2) = 1$$), validating every transition against an embedded dictionary of 4,000+ verified 4-letter words.
  • Bidirectional BFS Par Solver: Computes the mathematically optimal ladder path between any start and target word in real time, assigning a dynamic "Par" threshold. Players race to match or beat Par.
  • Neo-Brutalist Arcade Visuals: Built on an intentional neo-brutalist aesthetic—high-contrast palettes (Obsidian #0A0A0A, Vermilion, Mint #00FF66, and CRT Amber), stark ink borders, and hard drop shadows.
  • Physical Error Rejection: Illegal words and dead-end moves trigger multi-frequency kinetic screen shake and high-contrast red perimeter flashes.
  • Daily Mission Archives & Celebration Particles: Seeded daily word missions, custom confetti canvas particle physics on completion, and shareable performance receipt cards.

How We Built It

  • Kotlin Multiplatform (KMP) & Jetpack / Compose Multiplatform: Unified the game state engine, graph search algorithm, and UI rendering into a clean, modern multiplatform architecture.
  • Coroutines & Asynchronous Processing: Offloaded the dictionary graph traversal and shortest-path computation off the main UI thread to eliminate frame drops.
  • Compose Canvas: Built custom renderers for real-time confetti physics and retro CRT scanline overlays.

Challenges We Faced

  1. Graph Search Latency on Mobile: Running uninformed search algorithms across a dense 4,000-word lexicon can easily introduce stutter. We optimized graph traversal by implementing a bidirectional Breadth-First Search (BFS) operating on an indexed letter-bucket graph, cutting pathfinding times down to sub-15ms.
  2. Release Optimization & Binary Footprint: Ensuring smooth 60fps animations required strict R8 minification, ProGuard rule tuning for Compose runtimes, and stripping unnecessary reflection.
  3. Neo-Brutalist Polish: Balancing stark, heavy borders with smooth responsive micro-animations on diverse Android screen densities and aspect ratios.

What We Learned

  • Designing an algorithmic par calculator transforms a simple word game into a tight, competitive tactical puzzle.
  • Modern Compose Multiplatform provides incredible flexibility for crafting bespoke, non-standard UI paradigms (neo-brutalism) without needing heavy external UI libraries.

Built With

  • kotlin
Share this project:

Updates

Submission history