Squramble Developer Blog: The Story of Squramble

While building Squramble for the iPhone, I wrote  some blog-style notes that might be useful to share. While we await more “news of the world” of Looking Glass Software, I’ll be using the news feed space to do so.

This entry talks about how the idea for Squramble-The-iPhone-Game came about.

The Story of Squramble

I’ve been developing applications for computers for a long time. Let’s just say that I created and fielded application programs long before we started calling them “Apps.” This includes simulators and test tools and data translators for my “real job” as well as games and general utility programs that I wasn’t specifically well paid to make.

My Mom called me one day and claimed she had an idea for a computer game. Her idea was that, presented with a grid of seemingly-random letters, a player would try to find a hidden word. The first letter would come from somewhere in the top row, the second letter from the second row, etc., until the player successfully formed a single word snaking down through the grid.

This on its own is a fair “starting idea” for a game, but it presented a number of technical problems. First, let’s say the grid looked like this (without the boldface emphasis of course):

B T P Z
T I E O
S O C E
M K K T

The game is expecting the player to zoom from top to bottom seeking and finding the hidden word TEST, presumably under some fun timing or scoring pretense. Upon identifying TEST, another puzzle would be generated. I asked my Mom, “If my game picks the word TEST, what am I supposed to do when the player finds the word POET instead?”…or “TICK”…or “PECK” all from the example above. It sounds like a pretty easy game to make, just pick out a random word, mix up some letters around it, and then wait for the player to tap it in…but the need to somehow “know” all the other words was daunting. Test? Yup, check. Every other valid four-letter word? Not so much.

So I thought about it a little more, and it occurred to me that I could guide the player into selecting the words I picked and mixed by picking four words instead of just one, and requiring the player to be able to make four words. If the player doesn’t find the four words that I picked, it is somewhat unlikely he or she would be able to use all 16 letters in valid words. At that point I could either be rigid about requiring the original four words, or maybe even get fancy by allowing valid alternatives.

I sketched out some sample puzzles with words I made up on the fly, and what do you know? It’s actually somewhat of a challenge to find the four words amidst the jumble.

A T P Z
T I E O
S O C E
M S K T

Finding ATOM, PICK, TEST, and ZOOS in the above matrix (running from top to bottom as my Mom originally envisioned) isn’t super easy, or at least I didn’t think so and my wife didn’t think so. This runs counter to the opinion of most of my friends who thought at first that the idea would make for a game that was “too simple”…but no, it’s challenging enough. Adding a three word option made it even more casual and easy, and adding a five word option made it significantly more difficult. I tried a six word option, and it was just no fun whatsoever, which is why Squramble currently only goes up to five letters at a time. Even the five letter option skirts the boundary of maybe a little bit unfun, but there are probably those that will really enjoy it.

Shortly after making the hand-drawn grid prototypes, I sketched up some screen ideas for the actual game and came up with the snappy moniker “Squramble.” Because it’s a square, okay? And it’s scrambled. Match made in heaven, and you can be sure the domain name “www.squramble.com” was available (though I still haven’t populated it with anything useful, so don’t bother).

It was about that time when the words started to flow from left to right, as you see in Squramble today. People just like to read left to right, so that’s how the game progressed.

One thought on “Squramble Developer Blog: The Story of Squramble”

Leave a Reply

Your email address will not be published. Required fields are marked *