Category Archives: Squared

Introduction to Squared

I recently created Squared, a game that was submitted to the Windows Phone 8 store. It’s a pattern-matching game. You’re given 60 seconds to match the corners of a small square with the corners of a larger square, which resides in a grid of many squares. As you find solutions you earn points and time is added to the clock. If you’re fast the points you earn are multiplied and you have a better chance to earn a spot on the global leaderboard.

There are a handful of reasons I created this app:

  1. Since college, I’ve always wanted to create a novel game.
  2. Last summer I read Eric Ries’ book, “The Lean Startup” which discusses how to build a minimum viable product (MVP) that needs to be instrumented to understand how many and if users like a product. I’ve been meaning to build a product instrumented to measure user interest.
  3. I became one of the resident ‘big data’ analyzers in my professional job. I work on a service that logs every interaction between clients and the service. This allows the feature team and business to glean important business intelligence and service intelligence. Since I’ve been writing scripts to process swaths of data, I’ve been motivated to collect event-oriented data in the software I create in my spare time. I’ll discuss this more in another article.
  4. I was interested in learning more about the Windows Phone 8 SDK. I was an iOS developer for about 2 years and I spent 8 months working on Android.

Squared Business Model

I originally planned to give Squared away for free. It wouldn’t include ads and nor would it include in-app purchases. These are the reasons why:

  1. I only download free apps on my smartphone and I believe this is true for the majority of smartphone users. I’d like to get a high download count.
  2. I don’t like ads inside of apps. They’re useful for putting food on the table as an app developer but I think they look tacky. I’m fond of Squared so I’ll put ads in a different app.
  3. I’ve never used in-app purchases before. I’ve never purchased items within an app and I’ve never set up in-app purchases in my own apps.

In the middle of development decided to add in-app purchases to Squared for a couple of reasons:

  1. I believe I can provide a premium experience without users requiring users to pay me anything and I can enhance the experience for those that choose to buy in-app purchases.
  2. I spent a fair amount of time developing the app and as an experiment I’d like to see what sort of monetary ROI I can get. 🙂

Squared Telemetry

It’s crucial to instrument software with telemetry so a developer or business can understand how their software is used and how it behaves in the wild. Telemetry enables software shops to glean business intelligence and service intelligence. An example of business intelligence is the average amount of time users spend on any particular page, or in what order do users navigate to various pages. An example of service intelligence is the average load time of a page or how often unhandled exceptions are thrown.

The easiest way to approach telemetry instrumentation is to identify all of the unique events that can occur in software. In Squared users can press buttons, navigate between pages, find solutions in the game and purchase game packs. So, I log when buttons are pressed, when users navigate to new pages, etc… It’s important that software shops identify the questions they want to answer. Knowing what questions need to be answered provides insight on which events need to be logged.

Fortunately plenty of software already exists to collect telemetry. I use Google Analytics for Squared. Below is screenshot of data that I collected from Squared beta users, which shows how users navigated from page-to-page.

telemetryPageFlow

Squared Beta Testing

I let about 15 friends and coworkers download Squared beta builds, it turned out to be an invaluable resource to find bugs, receive feedback and feature requests. A lot of the features that ended up in the game came from friends requests after playing the beta.

I also used the beta distribution as an opportunity to measure how easy my game was to play. Remember my goal was to create a novel game, which has an inherent learning curve. Although I have a Tutorial page I quickly learned that no one goes to the Tutorial page before they play a game. It was an unfortunate experience for the user because they were placed in a game that they didn’t know how to play. However, this helped me validate that investing in a ‘first app launch experience’ was necessary. During the app’s first launch the user is guided through a simple tutorial so they’re prepared to play the game without ever going to the Tutorial section.