The juice lab: press the button, then add juice
Same action, same data written to the database. Turn everything off and press the button — that's most utility apps. Turn everything on — that's Mario collecting a coin. Drag to spin the scene.
What games know that apps forget
1Feedback in <100 ms
Mario responds to a jump input in 2–3 frames (~50 ms) with sound, animation, and motion at once. Game-feel researcher Steve Swink calls this "real-time control of virtual objects." Most apps answer a tap with... a spinner.
2Squash & stretch
Disney's first principle of animation: objects deform to show energy. A button that compresses on press and overshoots on release reads as alive. It costs ~8 lines of easing code.
3A real core loop
Games loop action → reward → upgraded ability → harder challenge. Duolingo turned "study verbs" into that loop: streaks, XP, leagues — and reports 350M+ monthly active users. Calorie apps mostly stop at "action → chart."
4Difficulty tuning
Angry Birds levels are solvable in ~30 seconds but three-starrable only with mastery. Utility apps could grade tasks the same way: logging one meal = pass, hitting protein targets = three stars. Progress needs a skill curve, not just a history tab.
The honest caveat
Gamification fails when the metaphor punishes the user's real life — a broken streak on a fitness app can trigger abandonment instead of retention (streak-freeze items exist precisely because Duolingo measured this). The Mario lesson isn't "add points to everything." It's Nintendo's actual rule: the core verb must be fun before any reward is layered on. Jumping feels good in a silent, scoreless room. If logging a meal takes 40 seconds of form-filling, no confetti will save it — shrink the verb first (photo → done), then juice it.