Plates Across America

Tony's Software Projects

Route start page
Demo puzzle page
Background
Main game logo
I had the basic idea for a word game forming in my head throughout 2017 and 2018. It came from my sitting in a car while commuting and from walking through the parking garage where I worked. The game idea was to take the letters in a car's license plate, and find a dictionary word (ala Scrabble rules) that has those same letters. A single word and the letters must appear in the exact same order.
Naturally, some license plates would be harder than others, so I imagined there was a way to define a formula for the difficulty to lead to some way to assign scores in the game. And for the easy ones, or ones where two people gave an answer, I could also imagine a scoring function to determine which answer was "better". e.g., Longer words score higher.
Web home page
Just solving word puzzle like this was interesting, but in April of 2019, I added the idea that the person could virtually travel as they successfully completed the license plate puzzles. The better your answer, the further you travel. This created a very good travel-themed game. I thought I was onto a good idea so committed to spending time developing it.
From the beginning to when I shut it down was a five year span. The game had a long run with many pivots and I had a lot of lessons learned in making a game. The end result was somewhat successful. I had many thousands of people player the game and some liking thew game enough to pay for it. I say successful in the sense that I was able to create something that a non-trivial amount of people enjoyed. Commercially, I invested a lot more money (and time) than the revenue it generated.
I took the basic game concepts and all the lessons learned and created a new game which you can read about on the Words Across America Game Page. Below is a sketch of the game's evolution along with the many lessons learned.
As part of the overall marketing efforts, the game had the obligatory blog and though the game engine was shut down, these articles live on in the Plates Across America Blog.
Data and Scoring Algorithms
Early PA icon design
I started developmewnt of the game by defining the data, algorithms and data models I would need to support the game puzzles. Where I live, and what I was seeing and thinking was moderately challenging was three letters. Two letters on a license plate is too easy, and four is too hard. However, not all three letter combinations actually have a matching dictionary word.
I wanted the game to only generate the three letter combinations that actually had at least one matching word. Presenting unsolvable puzzles would not be a good user experience. Further, presenting three letter combinations that only occurred in obscure words would be equally as frustrating for the majority of people without those owrds in the their vocabulary. Thus, the distribution of the puzzle letter combinations to show need to be based upon the relative frequency that words are used in everyday language. So not only did I need a dictionary, I needed a usage distribution.
Dictionaries
Early icon concept
To find all the valid three letter combinations, and to validate user answers, we need a canonical dictionary of the valid words. This was a lot harder than it looks on the surface. Getting a hold of a file that someone claims is a dictionary is easy. Most operating systems have a built-in file like /usr/share/dict/words and you can find all sorts of other freely available sources online.
The question is which one of those files to use? They are all different. Some have about 45,000 words and some have over 200,000 words. Which ones do I have word frequency data for and what to do about ones I do not? There was also the issue of ensuring that correct answer lookups and scoring functions were fast. There was a lot of analysis and mangling of dictionary files to get the canonical version used in the game.
I'll not go into the nitty gritty of how I did all this comparison and analysis, but I did write a blog article about some of the results in this Interesting Puzzle Stats article.
I knew that there would still be omissions, especially with borderline slang words and new words. This meant that the games needed an internal dictionary management tool that allowed me to add/edit words in the dictionary and re-generate all the data that was derived from the dictionary. I built this dictionary editing tool and an entire moderation flow around it.
Main game car icon
Part of this dictionary management need was adding a feature that allowed a player to report a new word. If their answer was flagged as incorrect due to a deficient dictionary, to ease their frustration you want to given them an an outlet, or empower them by given them an easy way to submit that into the dictionary word moderation flow.
My initial dictionary philosophy was to keep the dictionary small. Both due to performance concerns and to match Scrabble-like rules. I even happened upon a file that claimed to have the scrabble dictionary and that was on of the input dictionaries I used. For the first couple years I went with this initial viewpoint about the dictionary, but after two years of feedback and reflection, I realized this was the wrong approach and I should be more liberal with what is considered a dictionary word. I was focused a lot on making the game challenging and not enough on making it fun. Two years later I greatlyt expanded the dictionary and wrote about it in the blog article Dictionary Improvements.
Scoring
Early icon design
I had tons of ideas for scoring the difficulty of a given three letter puzzle. e.g., When lots of common words have those three letters near their beginning, it is easier than when the letters appear toward the end or in less common words.
For a user answer, I wanted to reward longer words but that require being able to differentiate trivial lenght differences. e.g., If the puzzle is TRD and one user answers TREAD and another answers TREADS, should just tacking on an "S'' to a word appreciably change the quality of an answer? I say it does not. Same for other trivial extensions like TREADED and TREADING. The quality of the answer lies in the root matching word. There's tons of other considerations too, but I'll not go through all the complications I dealt with.
In the first version of the game, I had worked out scoring rules considering all these factors. It was very somewhat complicated and was somewhat of an issue to explain to players. I wrote a number of blog articles to help: Some of the complexity was unavoidable, but some of it was only adding marginal, if any real value. This was one of the lesson learned and in the followup game (Words Across America) I did two things as a result:
  • I simplified the algorithms and rules.
  • The user can see a detailed breakdown of why thei answer scored the value it did.
Basic Game Play
Puzzle page - correct answer
The main game play was on the "puzzle page". This showed a license plate with three letters and three numbers. The three letters wer the "puzzle". Depending on if you found a matching word and how good your answer were, this would have you travel a certain amount of miles (max of 10 miles per puzzle).
You would start the game by picking a main route to follow. A main route was composed of a number of smaller routes. I spent a lot of time on working out a comprehensive travel theme for the game. This was a great concept and had lots of neat features, but it contributed very little to enhancing the game play. Among the features.
  • Routes were meticulously defined with real geographic coordinates.
  • Route and travel maps were rendered and updated as the game progressed.
  • Routes has high resolution images for scenery along the routes.
  • Interesting cities and locations were mapped out.
  • Routes had detailed descriptions and histories.
All main routes page
Puzzle page - game start
Routes collage
All sorts of details existed in the game that I thought were neat, but really were not enhancing the play-ability of the game. For example, I wanted the license plate's state to reflect what one really would encounter if they were driving. Most of the time it would be from the state where the person was virtually located in, but just like in real life, you would occasionally see out-of-state plates. I even factored in adjacency to make neighboring states plates more likely than further away states. No one probably noticed or cared, but did stop me from writing a blog article on License Plate Selection.
Route start page
Route selection page
End of route page
I also added things like mileage signs, route number signs with all the images and them properly mapped to the routes. There's a bunch of blog articles I wrote to explain these better:
Version 1
The first version of this game was just a prototype and had both a solo and multiplayer mode. The solo version was the basic game play with the underlying data and algorithms that would not change much for the later first release version. However, the initial the multi-player game would wind up being ill-conceived.
Version 1 Race Game
Version 1 Solo Game
The two screenshots below are from this initial version before I added any sort of styling to the pages. This was the version where I was trying to work on the overall game mechanics.
The solo game started with you picking two cities to travel between. It would then map out the route and you would travel to your destination. That turned out to be too open ended and required too much typing and thinking. After this, I would predefined routes from famous scenic highways so the user just had to pick one.
The multiplayer game allowed up to 8 players competing in real time with screens updating with your and everyone else's progress. I spent a lot of time learning and setting up websockets and dealing with synchronous update and timing issues. This was all for naught. For a word game like this, it was not like these real-time shoot-em-ups or massively multiplayer games. Expecting everyone to be simultaneously on-line at the same time was too limiting. A multiplayer game needed to allow asynchronous competition.
The lesson learned about synchronous versus asynchronous play would be superseded in the followup game where I decided that direct head-to-head competition was not that valuable. People could compete indirectly by having leader-boards and daily/weekly/all-time leaders.
First Release
I went all out for the first release. Set up alll the social media accounts. Found all the places to promote the game. Created and sent press releases. Here's some early blog articles:
The first released version did not have a multiplayer option. The plan was to add it later.
Feature: Skip and Boost
In my feeble attempts to better "game-ify" the game, I added collecting "SKIP" tokens that allowed you to skip hard puzzles without penalty. I also added random "BONUS" puzzles where you could get extra points for solving puzzles. More details can be see in the blog article Skips and Boosts.
Feature: City Facts
To make the pages more interesting and/or to break up the game, I thought that interesting facts about the citys and towns you were passing through would be neat. I called this feature "City Facts" and there was a whole data entry and moderation tool I built to help add and manage these text snippets and images.
Feature: Maps
I believed a high-fidelity and real-word map was essential and spent tons of time integrating with Map APIs and even rolling my own for some tools. In the followup game, I did away with maps altogether.
Feature: Leaderboards
Leaderboard page
The leaderboards feature is one of the lasting features. I recognized early that a single leaderboard for th eworld would not be compelling to more than about 10 people on the planet. Thus, I added the idea of limiting the leaderboards to only those people in your network. This required building a user network model and a "follow'' feature. However, I also thought this a good way to "invite-a-friend'' toget some viral uptake. I wrote about this in the blog article It's a Small World.
Feature: User Achievments
Badges. All games and even non-games have badges, so surely I needed them. You'd earn them at various milestones. These blog articles explain them in more depth:
Collage of achievement badges
User achievements page
User achievements page (alt)
User travel map
I later added a user travel map that I thought would be neat so people could see (and show off) all the places they (virtually) had traveled.
Feature: Customized Vehicles
Customize vehicle page with accessories
Every game needs an avatar so people can show off their personality. To keep with the game's theme, I decided the avatar would be a vehicle. To further "game-ify" this, the user could customize their vehicle and add accessories. They would have to earn the points to add accessories or to upgrade to better and better vehicles. They could then build out an entire collection of vehicles. See the blog article on Vehicle Avatars for more.
I spent way too much time building the user-facing vehicle management interface and even more time drawing the SVGs for these vehicles and their accessories. This idea would survive in the follow-on version of the game, but in a much reduced (simplified) form, so not all the drawing work was wasted.
User vehicles page
Vehicle customize page
Vehicle color selection dialog
Sample of custom vehicles in game
Vehicle collage
New vehicle examples
Demo Pages
Demo puzzle page
The most important learning in the initial release was the need for a better starting landing page and the ability to allow people to play anonymously without signing in. The new demo page I came up with had interactive features and instructions to explain the game.
I used the URL to this page in my postings and started running some low-cost ads. This was when game usage started to pick up.
Timed Puzzles
Lighting challenge icon
Challenge expired meter
To mix things up, I added the occasional "Lightning Round" that would happen when coming across some interesting place. This was five puzzles and each puzzle had a timer. Normal puzzles had no time constraint, which was a concisious decision. ]para Prior to the first release when I only had friends and family trying it, I got a lot of negative feedback about there being a time limit. I also got some positive feedback. It makes it more exciting or stressful depending on your perspective. I personally liked it, but understood that it might be more stressful than a word game should be. The Puzzle Timer blog article discusses this controversy.
The lightning rounds were added to reintroduce the timed puzzle idea, but only as an occasional and optional way to get more points. Read more about it in Lightning Rounds blog article.
Dashboard design
I was also looking for ways to introduce a "dashboard" graphic as an alternative way to show game progress. The lightning rounds, happeing outside the context of a location or map, were a good place to do this and help visually distinguish those pages.
Lightning challenge with dashboard
Lightning challenge with dashboard (alt)
Lightning challenge end dialog
Two-player Game
Logo with racing flags
In June 2020 I re-introdued the multiplayer option with a two-player "Race" game. Head-to-head play, but allowing users to play asynchronously. You could challenge a specific person, or ask to play a random person. For the latter, I had to build a pairing algorithm to help better pair players of equal skill, but without a request to play getting "starved". It would spiral out from your skill level (based on previous game play) until it found the closest in skill that was waiting to play.
It was a necessity to have a timer on puzzles for the race game since you did not want an opponent to be waiting forever, or having one person time to do deep research.
Racing logo with images
Race game home page
A lot of blog articles were written about the race game feature:
Adding player interactions does not work well with anonymous game play. I had to require login for the two player game as explained in the blog article: Why Sign In?.
Major Redesign
Travel goal dialog
Around March 2022 I release version 2 of the game. I had been developing this new version for over a year. We wrote about the lessons learned and planned redesign in Upcoming Game Redesign and then discussed it after the release in The Creative Journey. The main goal was to remove the overly long routes and monotony. I did this with adding various travel goals that were not just about completing routes, but visiting different types of locations. Some of the notable changes are discussed in these blog articles:
In August 2022, I also redesigned the race game as discussed in Race Game Redesign.
Compressing Time to Achievment
By September 2022 I could see the redesign was still not working to make the game "sticky". I came up with an idea and added the "Trip Check" feature. This was a complete re-imagining of the leader-boards and would be the foundation for the followup game Words Across America. The basic game play was the same: pick a route, do puzzles, visit places and complete travel goals. However, it would group every ten puzzles in an episodic event.
Leaders page with dropdown
You would see the countdown from ten for each puzzle you completed. At the end of the ten puzzles, you would get a Trip Check dialog showing how far you traveled with those ten puzzles. There was also a Trip Check Leader-board and it would keep track of daily, weekly and all-time leaders. This felt like how the game should have been all along and contributed to my designing the new follow-on game Words Across America. More details in the Trip Check Feature blog article.
Leaders icon - weekly
Leaders icon - best
Leader icon - self
Multiplayer Game
In March 2023 I added a true multiplayer game that was inspired by the entire post-COVID work-from-home and remote team building ideas. The main idea though was that there could be a payment tier for an organization that would allow them to add their employees so the employees would do group play for a small fee paid by their employer. So it was both a new Multiplayer Word Game and involved adding New Membership Levels.
Group game page
Group game stats page
Advertisement - family friends teams
Advertisement - group game
Marketing
I had a small, fixed budget I was willing to invest, mostly hoping for word-of-mouth for any major uptake. Still, I spent a lot of time designing and running ads and learning a lot of lessons in the process. For example, if I added a checkered flag to the logo (the race game) more people would click and upvote it. Below are some of the ad copy I used.
Logo and plate collage banner
Advertisement - rocky road background
Advertisement - beach background
Early onward, I made the ads link to the demo page so that I could have the exact same puzzle in the ad as you saw in demo puzzle (and it was adjustable). I don't think that effort for dynamic demo puzzles was worth it.
Advertisement banner - tropical
Advertisements - play the game map
Advertisement - grass background
Payment methods and map
Special offer map advertisement
Game Trailer
The best money I spent was on a contractor in Argentina to make a 30 second video trailer which you can see here: Game Trailer: Plates Across America.
Battle Against Free Games
A big lesson learned is that people view games as free. Paying for an on-line game actually offended people. I tried to address this in the Free Games Are Not Free blog article.
Web versus Mobile
Puzzle page - mobile
My game does not require it to be a mobile app, it works just fine in a web browser, desktop or mobile. I invested in making it a Progressive Web App (PWA) to make it a little simpler on a mobile device, but Apple in particular is hostile to PWA apps. But more than just Apple trying to protect their multi-billion dollar app store, people go to app stores to find games. If your game is not in the app store, it does not exist. I tried to address this with the Do you really need that mobile app? blog article. It was this lesson learned that convinced me the follow-on, derivative game would have to be written as a mobile app.
Miscellaneous Images
User home page (latter)
User home page
Email icon - stars and stripes
Star with flag design
Road sign shield - stars and stripes
Square icon with road
Logo in plate collage
The End
Over the four or so years the game was available, we had over 5,000 people try the game, with about 1,000 of those doing more than a few puzzles. There were a few hundred that played it more extensively, and a few that played it obsessively, but only a few dozen that ever paid for the game.
In August of 2023 I began to develop the follow-on, derivative game Words Across America. First up was learning how to develop a mobile app (using Flutter), but the core idea was to built around the Trip Check feature and strip everything else out. No more routes and maps. No multiplayer game. No more realistic scenery pictures.
I was partially inspired by a group of students that did a school project for my re-imagined game. They helped me clarify what I should keep and what I should leave behind. It took almost a year of development to release the new game and in August of 2024 I shut down the back-end servers hosting Plates Across America. The final blog article was published too: Game Transition.