WordDroid

AcmeDroids Android App

Backstory

Android was just released, and I teamed up with Developer/Engineer Troy Payne to venture into the app-developer realm. What to build? A game. Having spent hours playing Boggle on rainy island days and even writing poetry with the set of words produced from each round, it was a logical choice.

From Wiki: Boggle is a word game invented by Allan Turoff and originally distributed by Parker Brothers. The game is played using a plastic grid of lettered dice, in which players attempt to find words in sequences of adjacent letters.

The game begins by shaking a covered tray of 16 cubic dice, each with a different letter printed on each of its sides. The dice land in a 4×4 tray with only the top letter of each cube visible. After they have settled into the grid, a three-minute sand timer is started, and all players simultaneously begin the main phase of play.

Of course, we couldn’t call it Boggle, so WordDroid was hatched.

Born in the wrong century, Troy advocated a Steampunk vibe and coined the company mission, “Quality Manufacture of Android Applications.”

The game starts by flipping the phone upside down and shaking. You get the iconic dice-in-a-box shaking sound. Flipping your phone back over shows you the new set of letters and sets a timer for 3 minutes.

Start WordDroid
Play WordDroid

The Engineer’s Side of the Story

When the Android invasion of Earth was getting started in the Spring of 2008, my day job was writing a Java platform, middleware, and application front-ends for a Linux-based VoIP shop, so the new mobile platform was already a good fit for my active skillset. The dev tools were free and open-source. Google had done a pretty fair job lowering the barriers to entry with a solid SDK, decent documentation, and a serviceable and growing set of libraries/APIs.  

The hardware was sexy too: hi-res camera, display, microphone, and multi-channel audio, 3-axis accelerometers, proximity, thermal, magnetic, and photosensors. And all of it is accessible from Java served up on a Linux kernel.

It had been about a year since Apple had introduced the iPhone and mobile “apps” were still all upside. No one understood yet that the good business models would turn out to be more about moving data than selling applications.  

Though it was easy to jump in that pond, our plates were pretty full with other work. Cleo and I kicked around a few ideas about how to give this exploratory project some motivational dynamics to keep us in the headspace.

We landed on a steampunk-themed faux-company named AcmeDroids that would produce a suite of Android apps called ‘Droids.’ We gave it a website, AcmeDroid.com, and set about building our first app – a Boggle(™) clone for the phone with a steampunk patina, WordDroid.

A bonus dropped when we signed up for a free all-day Android developer seminar at Google’s Boston offices.  There were fewer than a hundred of us there and we got to schmooze with some of the devs working on the Android ecosystem while they solicited us for feature and tools ideas. But the cherry was when the MC asked for a show of hands, “How many of you actually have an Android phone?” There weren’t many available then (like maybe two). The crowd sort of fidgeted around, staring sheepishly at their shoes or out the windows. Maybe three people raised their hands.

“Well,”  says the host, “you can’t very well develop apps without a phone.” With a flourish toward the double doors that had just popped open to admit two rolling carts piled with boxes of brand new Google G1 phones said, “…so here you go.”

The project turned out to be a blast. We got the basic single-player game platform up and running in a few months. It looked great and played well on the touchscreen interface. The follow-on phase features would have added a networked multiplayer mode, but it was not to be.

In the end, that “growing set of APIs” thing turned out to be a rather large pebble in our collective shoe. It was the early days of Android, and it was being developed aggressively. Roughly every 10-12 weeks, a new UI API would drop, and it never landed gracefully, often (maybe always?) breaking backward compatibility. I refactored sizable chunks of the UI to keep the app stable, derailing the new feature work. 

By late summer, it was becoming evident that until the UI APIs stabilized, it would be somebody’s full-time job to give the app CPR with each new release. So we decided to shelve it until either we could get paid to develop on it, or the platform releases weren’t so frequent or so brutal. 

I pared back the UI to use only the most stable (at the time) interfaces and shelved it.  If you have an Android phone, you can download and sideload the apk from here.  As of this writing, it still runs on my Pixel 5 with stock Android 11.

– Troy Payne, May 2021