Creating Factor Find

This article was written by Factor Find creator Kennan Mell about the ideation and development of Factor Find.

My Background

Factor Find draws inspiration from a lot of different games. I’ve been a serious gamer since I was a kid; at 10 years old, I travelled around the eastern United States attending Pokemon Trading Card Game tournaments. More recently, I was a contracted player of Clash Royale, an online eSport. I’ve also played a variety of other games more casually including chess, Dominion, and many mobile games (Pokemon Go, Sudoku, Bike Race, etc).

I developed the skills necessary to build Factor Find during college, where I majored in computer science and minored in math. I also did some internships working on iOS apps, where I learned how to make high-quality apps.

It’s also worth noting that I’ve developed one other game – Zlink, a puzzle game my cousin Ethan Lacoe created (he also did the graphics for Factor Find). We released this game back in late 2016 but it didn’t get any traction and we pulled it about a year later. Although we failed with Zlink, I learned a lot while making it and this experience made Factor Find a better game.

The Idea

One lesson I learned from Zlink is that people (excluding serious gamers) don’t want completely new games. They just want subtle twists on the games they already know. This is understandable because they want to be able to pick up and play a game without having to read instructions or deal with a learning curve. And this isn’t necessarily bad, as it doesn’t prevent innovation or creativity.

One night in late 2017 – shortly after playing a few games of Sudoku – I was thinking about this and I started making a list of popular games that everyone knows, and trying to come up with a creative twist on each one. Eventually, I started thinking about Word Search.

Visually, a Word Search looks a lot like Sudoku. You’ve got a grid of characters, and some of them are hidden in some way. But a Word Search is a lot more relaxing than Sudoku because your mistakes get erased instead of compounding into more mistakes. On the other hand, Sudoku is nice because it has much more strategic depth than Word Search.

I wondered if there was a way to add more strategy to Word Search while keeping the concept of harmless mistakes. I thought it would be possible to do this by adding a layer of abstraction between what you’re told to find and what you actually find. Since I had Sudoku on my mind, my first thought was to do this with math. After all, numbers and letters are very visually similar and math can be extremely strategic.

I initially thought of addition, but I quickly scrapped this idea. With a Word Search, you have a basic strategic process because you can look for one letter at a time, i.e. find “zebra” by looking for the letter z first. Addition would make this impossible because even a number as simple as 5 can be formed from 4 + 1, 3 + 2, 3 + 1 + 1, 2 + 2 + 1, etc; any number can be made with any number that’s smaller than it. There’s literally nowhere to start and it would be incredibly frustrating.

Just thinking about this made me frustrated and I almost scrapped the idea, but then I thought of multiplication. And everything immediately fell into place. Unlike addition, it’s rare for even a very large number to include all of 1-9 in any of its factorizations, so you have somewhere to start. And with my background in math, I immediately saw how divisibility rules could add a “secret” layer of strategic depth.

This idea is so simple that I wouldn’t be surprised if I’m not the first person to come up with it. However, like many things, it wasn’t implementable until personal computers became popular. Unlike Word Search, Factor Find makes no sense on paper; the only way to know if you’d correctly solved the puzzle would be to pull out a calculator (also a relatively recent invention) and double-check your work. This, of course, is incredibly tedious and unsatisfying. But in the modern day, computers can take care of this for us. So, my sympathies to the theoretical ancient Roman who thought of this way ahead of his time. I hope I’ve done it justice.

The Development Process

After graduating college, I took half a year off before starting work to travel and develop Factor Find. I had a few other ideas I was interested in developing as well, but my experience with iOS apps made Factor Find seem like the most reasonable project given that I only had a few months to work on it.

It only took about 10 days to get a working build of Factor Find coded up. It still amazes me that I spent so much time working on it after this, especially considering that the UI has been more or less the same from the beginning.

I don’t have much experience with design, so I leaned heavily on system menus and alerts to make the app look presentable and speed up development. The main UI change I made is that I started with a blue-green color scheme, which I replaced with a grayscale after getting negative feedback about it during early beta testing. The most current color scheme is based on Game Center’s color scheme. I figured that if I’m going to use Game Center, it might as well look like it fits with the rest of the app. I’m surprised that this isn’t a more common approach.

After the first couple weeks, I spent a couple more weeks refining the board generation algorithm to make sure it made “fun” boards, but I’m not going to go into details about this to make it harder to copy the game. The rest of the time (over 5 months) was spent testing and iterating.

For example, I made many changes to the statistics before arriving at the ones I have now. Initially, I only had fastest time, average time, largest find, and an awkward concept of “win streak”, i.e. how many games you completed without giving up. I eventually replaced this last one with “Game Started” and “Games Completed” as they were clearer and more specific. I also added accuracy and hints used because I found that it was somewhat easy to complete games by swiping randomly and/or using a ton of hints, and I wanted to discourage this somehow.

I spent most of the time adding high-value features that many developers probably wouldn’t include in an initial release: leaderboards, daily challenges, an iPad version, analytics, and push notifications. Separate from all of this, I also rewrote over 60% of the code base to make it more maintainable.

I also spent a couple months doing beta tests with about 30 users, and this testing resulted in my splitting the easiest difficulty level into two difficulties (now known as easy and medium), achievements, the color scheme change, the simplified Android version, and many more minor improvements.

Localization: The Biggest Mistake?

I knew that making a game about math would limit my potential audience. Some people just don’t like math. Even my aunt – who was very supportive of my last game despite its quirks – couldn’t bring herself to complete a single game of Factor Find.

However, as a small developer, I viewed the focus on math as a good thing because it’s so unique. There are a lot of decent games that get published but never go anywhere because there are similar games with a much bigger marketing budget. On the other hand, Factor Find had virtually no competition; a math puzzle game – whether you love it or hate it – was going to stand out.

I thought that a focus on localization and accessibility would help to counterbalance Factor Find’s divisiveness by increasing my target audience. Providing translations would increase its appeal to non-native English speakers, at least compared to games that are only available in English. A game about math would be particularly easy to translate since numbers are universal.

Overall, I think that this train of thought makes sense. And I think that localization is an important part of any high-quality app. But, I regret doing it so early. Maybe because I’d just spent time traveling the world, or maybe because I knew a lot of international students in college, I was really eager to start localizing. I translated the entire app into 10 languages before it even went through its first beta.

I paid a little over $100 for a good human translation service and I think that this was reasonable. However, I woefully underestimated how many more changes I’d be making to the app after that point. Between changes to statistics/leaderboards/tutorial, the addition of daily challenges and achievements, and translating the App Store page, I spent an additional $700 over multiple rounds of translation, each time thinking that I was too committed by my previous investments to leave anything untranslated. A lot of this money was spent to overwrite translations I’d already paid for that were outdated.

This is a massive amount of money that could have been put into advertising instead. I absolutely think that localizing an app is worth it, but only after it’s shown massive potential in its native language or if you literally have money to throw away. There’s no way that that $700 is going to pay for itself any time in the near future, if ever.

Before releasing the game, I wrote the crossed out paragraph above, feeling that localization was a huge mistake. While I still think that I started localizing way too early, I’m pretty confident that supporting multiple languages was one of the main reasons why Factor Find got featured by Apple in so many different countries. Overall, I think that localization is very risky; it improves an app’s quality, discoverability, and chance of being featured, but may not do enough to offset the cost of translation.

Leaderboards: The Biggest Challenge

From the beginning, I wanted Factor Find to have the same elements that drew me to my favorite games throughout the years: multiplayer interaction, competitive ranking, and subtle strategic depth. I thought that this would broaden its appeal to include more serious/competitive gamers, and that it simply made for a better and more complete game. As such, I knew that I’d have to implement leaderboards.

Getting leaderboards right was the most difficult part of building the game; Factor Find isn’t built to be a ranked game given its simplicity and single player mechanics. Initially, I had the Largest Find leaderboard that made it to production, along with difficulty-based versions of Fastest Time and Games Completed. I briefly had a Total Games Completed leaderboard as well.

However, I wanted the leaderboards to provide meaningful rankings that couldn’t be manipulated with “cheating” or money. I hadn’t yet thought of adding restrictions to leaderboard submission, so I dropped the Fastest Time leaderboards early on. I thought that it was too easy to get a score of a few seconds by pausing the game while solving it, using hints, or getting lucky while swiping randomly.

As such, the focus remained on Games Completed for a long time, until after the first beta when I decided that I disliked it because it could be “bought” by spending excessive time on the game. This wasn’t fair to talented players who played less frequently and might discourage new players from even trying to compete. I didn’t want to be left with only Largest Find (which I still think is kind of gimmicky), so I decided to get creative with fastest time and add it back with some restrictions: no hints, no pausing, no misses.

I also kept Daily Challenges Completed after removing the other completions-based leaderboards because I think that daily games are good for user retention and wanted them to feel important. Daily Challenges aren’t timed, so this seemed like the best way to include them in the leaderboards, although I also tried Longest Daily Challenge Streak. To make this leaderboard work, I had to add some extensions to the GameKit APIs to prevent players from uninstalling and reinstalling the app to submit more than one Daily Challenge per day.

This resulted in three leaderboards: Expert Fastest Time, Daily Challenges Completed, and Largest Find. I was happy with this, but I added fastest time leaderboards for the other difficulties after getting feedback during the second beta that a lot of people would never want to play expert. After sifting through 24 different leaderboards, I’d finally ended up with the current selection just a few days before submitting to the App Store.

Publication and Promotion

I made Factor Find available for pre-order on October 31st, 2018; the same day that it was approved for sale by Apple. I set the release date to November 17th, 2018 hoping that people would be looking for something to do over Thanksgiving weekend.

During the couple weeks that Factor Find was available for pre-order, it received about 1,000 pre-orders! A couple hundred of these were from friends, family, and social media (I had a small Twitter following from playing Clash Royale and posted on various forums such as Touch Arcade and Reddit). However, the rest came naturally from search results on the App Store; Factor Find ranked in the top 10 results for a variety of searches including “math puzzles,” “math games” and “math learner.” Apple seems to rank newer apps higher in the results, as the ranking dropped over time. I was going to run some ads to get more pre-orders, but ads that charge per install don’t work with per-orders.

When November 17th rolled around, the pre-orders all converted into installs, and this was (barely) enough to get Factor Find ranked as one of the top 100 board games on the USA App Store the following day. I tried a variety of paid promotion strategies to keep the momentum going… I ran ads with a variety of providers including Apple, Google, Facebook, Twitter, and Reddit. I had articles written about Factor Find on Gamezebo and I also did some incentivized reviews, contests, and giveaways.

Overall, I think that all of these promotions were a waste of money; on average, a Factor Find user generates a lot less revenue than it costs to acquire them. On a larger scale, I think that putting a lot of money into promotion could help an app go viral, but on a scale of $1,000 to $2,000 it didn’t do enough and Factor Find fell out of the top charts a couple days after entering them.

At this point, it looked like we were going to lose money and fade into irrelevance after a short run in the top charts. However, on Thanksgiving day, I was surprised to see a massive spike of users, most of them in Europe where I hadn’t done any advertising. I checked App Follow, a website that tracks features and showed that Factor Find was featured in 14 countries as one of the “New Games We Love” during Thanksgiving week. Being featured was so exciting because it resulted in thousands of installs per day and pushed Factor Find into the top 100 board games in over 30 countries! Sometimes, it got as high as the top 20! Of course, revenue and daily active users also spiked as a result.

Once our feature ended, we only averaged a few dozen installs per day; a lot better than most apps and the same number that got us excited during the pre-order phase, but nowhere near enough to stay in the top charts. Over time, most of the users we got while being featured stopped coming back to the app. However, Factor Find has maintained a small but devoted user base.

I’m so thankful for all the support Factor Find got and learned so much from the entire process of developing, testing, and releasing it. It’s amazing to think that somebody has played Factor Find in virtually every country in the world, and that people are playing it as I write this article. It had much more success than I expected and has made me very excited to start my next project!