⚠️ 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
- 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.
- Release Optimization & Binary Footprint: Ensuring smooth 60fps animations required strict R8 minification, ProGuard rule tuning for Compose runtimes, and stripping unnecessary reflection.
- 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
Log in or sign up for Devpost to join the conversation.