In a previous article, I wrote about how moving our F1 fantasy game from a text thread to an app unlocked pick categories that were too tedious to score by hand. The Overtaker pick replaced Fastest Lap in the app, and made the game better by doing things the group chat couldn't.
This article is about the opposite: a case where building the app made me worse at game design, because I reflexively added a restriction that the group chat never needed. It was a lesson in not always doing things just because you can.
How it worked in the text thread
Our original game was dead simple. A group of friends who enjoy watching Formula One making lightweight fantasy picks for each race. It was all managed in a text thread and in Notes on my phone. You texted your picks to the group before the race started. Everyone saw everyone's picks the moment they hit the chat. You could change your mind as many times as you wanted, right up until the formation lap. Nobody really tracked or enforced a hard deadline because the gentleman's agreement was enough.
And here's the thing we mostly took for granted but everyone enjoyed: you could see what your rivals picked. If you were trailing in the standings and neck-and-neck with someone, you might deliberately wait to see what they picked, and then pick a different driver for the podium to create a scoring differential. If you were leading, you might mirror a rival's picks to protect your gap. It wasn't chess, but it was a real layer of strategy on top of "who do you think finishes on the podium."
Yet during several years of playing this way, almost nobody actually changed their picks strategically after submitting. The option was always there, but people mostly picked and moved on. What I learned the hard way is the strategic value wasn't in last-second switching. It was in the information: knowing what you were up against.
What I did when I built the app
When I sat down to build Open Wheelers the app, I did what felt obvious: hide everyone's picks until they lock. Blind picks. You submit yours, you see a checkmark next to your leaguemates' names confirming they've picked, but you don't see what they picked until the window closes and picks lock (the race start). Standard fantasy app behavior. The app suddenly gave me the power to enforce a new rule (blind picks), so why not do it?
I didn't even really think about it too deeply. Every fantasy platform I'd ever used worked this way. Draft picks are secret. Lineup changes are private. Why would you show your poker hand a moment sooner than required? The whole model assumes that seeing someone else's choices gives you an unfair advantage, so the system prevents it. It's such a default assumption that I never questioned whether it was actually right for this game. And this is even given the knowledge that I deliberately set out to build a contrarian fantasy game!
What I lost
During initial testing of the appified game, something felt off. The picks phase was... quiet. You'd open the app, make your picks, close it, and wait. There was nothing to talk about until the race started and picks were revealed. The group text thread used to buzz with reactions to each other's picks. Hot takes. Trash talk. "Lewis is struggling with Ferrari but you just can't quit him, eh?" That energy was gone, replaced by a sterile, sealed-envelope experience.
Worse, I'd killed the strategic layer entirely. You couldn't differentiate from a rival because you didn't know what they picked. You couldn't mirror someone to protect a lead because their picks were invisible. Every decision was made in a vacuum, which sounds fair but actually just makes the game shallower. Pure prediction skill is fine, but prediction skill plus situational awareness is more interesting. Indeed, sometimes ultimate fairness loses out to quality of life.
The irony is that I'd written a whole article about how the app should unlock more depth, not less. And here I was, having voluntarily removed a dimension of gameplay that the text thread gave us for free. Indeed, sometimes less is more.
The "because I could" trap
This is the trap, and I think it's common in software: when you move something analog to digital, you inherit assumptions from existing digital products instead of examining what actually worked about the original. I looked at other fantasy apps and copied their pick visibility model without asking whether it fit our game. Which is admittedly funny because up to this point I literally looked at nothing else in fantasy F1 apps because I wanted Open Wheelers to be its own unique thing.
The group chat didn't hide picks because it was good game design, it literally couldn't. Messages are visible to everyone. But that constraint turned out to be a feature. It created a social, strategic experience that I then engineered away because I had the power to build walls that a text thread couldn't.
Sometimes "because I could" is the right answer. The Overtaker category exists because the app can compute grid-to-finish deltas automatically. That's a genuine improvement, and the gains were felt immediately. But hiding picks? That was me solving a problem that didn't exist, importing a convention from games with different dynamics, and making the experience worse in the process. I went with effectively the software default when in reality the low-tech constraint was a winner all along.
What I changed
The fix was almost embarrassingly simple. Picks are now visible to your leaguemates the moment they're submitted. You can still change yours freely until they lock at the start of the race, just like the text thread. No countdown timers, no change limits, no special mechanics. Just open information and the freedom to act on it.
Will some people wait to see what others pick before committing? Maybe. Will there be occasional last-minute switches and skulduggery? Probably. But years of running the text thread game proved that this mostly doesn't happen, and when it does, it's fun. It's a feature, not a bug. "Did you see that she switched her podium pick 30 seconds before lights out?" is exactly the kind of story a fantasy game should generate.
The design principle
Last time, with the Overtaker change, the lesson was that the best mechanics are often the ones too complicated to run by hand. This time it's the complement: not every analog constraint is a problem to solve. Some constraints are load-bearing walls disguised as limitations.
When you're digitizing a game, or really any experience, the hard part isn't adding capabilities. It's knowing which rough edges to preserve. The text thread's visible picks felt like a limitation of the medium. They were actually a core part of the game.
Build the features that were impossible before. But before you "fix" something that wasn't broken, go back and play the original. The group chat might know something you forgot. Box, box.
Open Wheelers is a casual F1 and IndyCar fantasy game for friends, built by Stalefish Labs.

Top comments (0)