I’ve been a longtime player of the Scrabble® word game, and its popular mobile variant, Words with Friends®. After several years, however, I realized that something felt missing.
I’m not an expert player, and that may be part of the problem. My vocabulary isn’t anywhere close to top-level competitors who seem capable of playing anything no matter how useless their letters are.
I’d routinely find myself in situations where I could make a strong play except one letter prevented it, or I could use all my letters to play a single word but there was nowhere to place it. Or I'd (of course) have no vowels or five E's. I’ve lost count of the number of times an opponent groaned at me for stealing his spot (and vice versa). At other times, I would stare at a midgame board and realize, Oh man, if only I could move a few letters around, I could spell such-and-such and make a killing. And I suspect I wasn’t the only one having such thoughts.
Just one of the many banes of my existence.
Now, I’m not looking for a way to get an edge over my opponents. That would defeat the purpose. I want them to enjoy such an ability too. I want Scrabble to be more flexible for everyone. This isn’t about making victory easier, it’s about having more fun and exploring the space of ideas. It's about having more options when you get into a jam.
Then I realized that I’m a software developer. If I wanted to play Scrabble differently, then I could just program my own version. And so I did. The result is Flexwords, and it’s available for free on Apple’s App Store.
Whatever misgivings I might have with Scrabble, I have to also admit that the game holds great appeal. The frustration stems not from wanting to play something else but to play the same game differently. Which leads to needing to understand what are the desirable things that make Scrabble fun.
That Scrabble began life as a traditional board game in the physical world is interesting, because unlike their digital counterparts, such games can be easily modified. They come with rules, of course, but these are just words printed on paper; players are entirely free to regard or disregard them as they wish. With software, the rules can only be bent or broken insofar as the software allows it.
Precedents abound. Chess went through many revisions before becoming the modern game we know today. Baseball has had rule changes, some of them unpopular. Poker has numerous variants. And what Monopoly player hasn’t decreed that fines shall accrue in the center of the board and that the pot can be won by landing on Free Parking?
Before writing too much code, I thought carefully about what should change and what should stay the same. Whoever thought Space Invaders was too dull, for example, wound up making Galaxian, which is considered more its own game entirely.
The exploration of game ideas is surprisingly nontrivial. There’s no shortage of games, but most people find that only a handful are truly fun or can sustain their interest for a serious length of time. It’s not actually that surprising given that, like life, the definition of “game” is itself nontrivial. Like pornography, we tend to know fun when we feel it, and everyone has different opinions. On the whole, however, I’d say that modifying a popular game is easier than inventing one.
To me, what’s core in Scrabble are these things:
It’s an interesting thing to ponder because, even if you have a large set of unchanged core features, so much can still be changed. What if we had a rectangular board instead of a square one? What if it was circular? What if we added quadruple letter and word bonuses? What if half of the tilebag were blank tiles? What if there were bonuses that expired after several turns? And... so forth and so on.
As fun as some of these ideas can be, the unfortunate reality is that there’s only so much time to write code, so priorities had to be drawn, and I found myself focusing on the irritations that led me to think about making Flexwords in the first place. Anything else was more to one side. I began to appreciate how much thought the original inventors of Scrabble must have given to their creation (and indeed, to all game makers).
So the one core feature of Scrabble that I felt needed changing was its absolute lockdown of played letters. Once a turn is taken, the played tiles are forever frozen. You can use them as part of new words, but you can’t move nor remove them.
Which is not necessarily a bad thing. Things are, after all, defined by their limits, and this particular limit makes Scrabble easy to learn. Those who are used to crossword puzzles can immediately grasp the game. It also makes it easy (well, straightforward) to calculate score, which was crucial in the pre-digital age. Because Flexwords allows tile movement, it's necessarily digital; if one wanted to play it using a physical board, one would almost certainly need a tool to help keep score.
Which is, on additional reflection, one of the great things about computers. Imagine how many wonderful games would be unplayable without them. What would League of Legends be like? It would be like Dungeons and Dragons, with players taking turns, rolling dice, and tracking changes to their characters’ attributes with paper and pencil. Computers may complicate, but they also enable. They too are an interesting and exciting part of the grand evolution of gaming.
It’s one thing to say “I wish I could reuse played tiles” and quite another to implement. The added flexibility opens a can of worms. For starters, what would prevent players from simply moving tiles back and forth to the same places, especially if they rested on bonus squares? If one could spell legal words simply by changing existing ones, the tilebag wouldn’t get depleted and a game could go on forever. So it immediately became necessary to think of rules that would allow the new feature without, say, cramping its style.
To make the process easier, I coded the Flexwords prototype in Windows with Visual Studio, using OpenGL ES for the graphics (and also because it would make porting to iOS and Android easier). At the time, despite having an Apple developer account, I didn’t know Xcode or the iOS APIs. I considered a platform-neutral framework like Unity or Unreal Engine (which I am familiar with), but they add overhead and I wanted to a) keep the final app binary small and b) actually learn Xcode and iOS.
Keeping the prototype in a familiar development environment let me set things up and iterate through them at a rapid, comfortable pace. Eventually I gravitated towards these rules:
Despite the convenience of rapid build turnaround in my initial development environment, the possibilities were overwhelming. The value of being able to say “no” cannot be overstated. I found it funny how much willpower it took to not try something, especially “just one more thing.” Because there’s always just one more thing. If I have any regrets, it’s only that I didn’t have a large team of people exploring hundreds or thousands of ideas, because they were falling out of the sky like raindrops and it’s painful to think of what gems had to be left unimplemented for lack of time.
Finally, I made the new features optional, since different feature combinations can be more fun than others, and that the game (if one wants) is fully backwards compatible with Scrabble. I figured, as long as you’ve got a Scrabble-type game on your mobile device, it would be convenient if you could still play Scrabble with it, because Scrabble will always be fun too. The options also played into the flexibility theme of Flexwords.
One interesting benefit is that the permutation of possible plays increases greatly. Scrabble has a random component but it's deterministic at each turn; only a finite number of legal words can be played. It has been long proved by various algorithms that today’s computers only need a few seconds at most to compute the highest scoring combination of letters for any turn, even when using two blank letters. As a consequence, many players lament cheaters who use “solver” apps and websites.
In Flexwords, since the number of possible plays is much greater (I don’t have a precise figure of how much greater, but I suspect it’s one or two orders of magnitude by the midgame), a solver would take longer to run and at the time of this writing, no solver currently exists. Since tiles can be taken off the board, the strategic aspect also increases outside a solver’s abilities. So players may enjoy a relatively cheat-free environment, even if temporary.
Even without cheating, players also complain about opponents who take forever to make a turn. Words with Friends, for example, has a Word Strength feature which uses a solver to show players how a word compares to the best word that could be played, in terms of score. This lets a player fret over “missing out on points” and spend considerable time trying different words, one after another, until eventually he either gives up or gets lucky and finds the highest scoring word. Even without the feature, however, players also spend considerable time trying to find legal words by trial and error.
With Flexwords, players may find it less necessary to dither. Not only is finding the best play impractical, but since no turn is truly final, one can relax. If you miss an opportunity or make a mistake, you can still move things around on your next turn. If your opponent makes a great play and leaps ahead, well, you may very well do the same in short order. It’s hard to tell, and that’s what I find fun. If you have a good vocabulary, that's great, but imagination is rewarded too. It's even more fun when you have only a limited number of flex turns available, and one must wait for the best moment.
The experimentation process is still early, so this degree of flexibility is necessary. At some point, a consensus may emerge around which rule or feature combinations are significantly popular, and Flexwords may converge on those and trim the others away. Or maybe something else will evolve and Flexwords will act only as a starting point, an incubator. Either way, I’m glad to be able to participate in the discussion, because change is the only constant, and change is good. Computers allow us to build on what has come before, to accelerate evolution, and that is perhaps their greatest gift.
If you play Flexwords, and have any comments or suggestions, I’d love to hear them. That’s part of the process too. :)