We’re in the final stages of a site-wide redesign, focused on upgrading our solvers to deliver a better experience on mobile phones. The project used a web-design technique known as responsive design to rebuild our solver pages around several standard views (mobile phone, small tablet, larger tablet, desktop). We then modified the content shown in each of these views to better suit the expected audience.
We’ve started rolling out a series of changes in our visual design and layout which are intended to make our word game solvers easier to use from a mobile phone. This will occur in waves through the summer, as permitted by my work and family schedule…
We added two new solvers for boggle-style word games this weekend in response to some user feedback. Our original boggle solver was intended to find words in a 4 x 4 letter grid. The two new solvers extend our offerings to include a 5 x 5 boggle solver and a 6 x 6 boggle solver.
The technical side of this project turned out to be fairly straightforward. As discussed in the article we wrote about building a fast boggle solver, we approached the problem as a twist on our existing scrabble solver. We took key elements of the logic behind our scrabble solver (which checks the possible permutations of a rack of letters) and adapted it to check the possible paths through a 4 x 4 matrix. To create the new solvers, we simple expanded the scope of this search to support a larger matrix.
If we turn the clock back a year, I would be busy packing up the minivan and starting our long slow trip down to southern Alabama through some pretty nasty storms. Later that evening, I’m going to write a small Python word game solver script that ultimately evolved into the code behind this site.
Like many developers, I’d had dreams of building “a product” of my own. I even had a couple of piles of code sitting around from various attempts over the years. Most of these were built around pretty solid concepts – the sort of ideas you could walk into a room and pitch to rational adults. Projects like games, a stock analyzer, and data tools. I’m imagining the “startup weekend” pitch for Hyenas:
“Team, we intend to become a market leader in the scrabble helper, hangman solver, and boggle cheat space. This site will offer illicit services to a large audience of low-revenue visitors and entertain them for hours on end.”
Keep your cell phone handy: the reaction footage from the MBA’s will be comedy gold.
From an SEO perspective, there are only three types of blog posts. The secret to generating content at a productive rate is to always be aware of which one you are writing..
Here’s how I break up my posts:
- Show Horses – The good stuff! Content that you want shared on social media and that you eagerly hope will generate quality backlinks. A Show Horse post requires a good concept and high quality writing. The topic should be something with broad interest to the Linkerati (SEO, building websites, running a business) and requires a certain amount of “polish” to really make them fly…
- Work Horses – Covers a niche topic in reasonable depth, may be part of a larger string of related posts. These are generally SEO focused – oriented towards a specific set of keywords and/or containing well-crafted links to a second site. Expected to attract a modest amount of highly focused traffic (eg. tell me how to install library XYZ in python) who is a potential buying audience for affiliate items. Requires average writing and less polish than a show horse. Frequently ranks on their own pretty quickly but won’t attract much traffic – might attract some respect and/or links from insiders in your space if well written.
- Kibble – Lowest quality posts, written to let Googlebot know that you’re still alive. Often a good source of “house links” with targeted anchor text within your site and to related properties. Since this site is about word game solvers and word games, we have several options for cranking this stuff out. New word game features and upgrades are a good source of kibble (like when we released our hanging with friends cheat and scramble cheat). This stuff can be generated using a template (at least at the conceptual level) so you can create it efficiently. This is the blog equivalent of a DJ playing a long song while they take a break.
Each of these requires a different level of investment to succeed:
- Show Horse content frequently requires a couple of days to really optimize; this is where getting external perspective from a designer or SEO consultant can help. It should also be less than 10% – 20% of your total content – you generally don’t get more than 1 – 2 true Show Horse ideas per month.
- Work Horse content will require more subject matter expertise than Show Horse content, since you’re generally going deeper on a topic and establishing authority. Since these posts will be generating search engine referals you should take steps to control your bounce rate. Avoid thin content and make sure the article contains enough related links to deter visitors from quickly returning to the seach index. On a similar note, invest the time to make sure the technical quality of this work is solid. On the positive side, it will (or should be) evergreen content which you will derive value from for many years. I’ve found I can generally crank out a quality Work Horse article in about 2 – 3 hours. Bonus Tip: Recycle your old presentations into Work Horse articles; you’ve already done about 80% of the required work.
- Finally, be ruthless in reducing the amount of time required to generate Kibble. The best Kibble is generated as a byproduct of your regular business activities. My favorite source of kibble for this site is doing short (300 word) announcements after we release a new word game solver (for example, when we launched our words with friends helper) or tweak a feature. This usually can be cranked out in under 10 minutes. The other great source I’ve seen is data from software testing and usage reporting. I’ve taken output from a couple of the test programs behind the word game solver (here’s an example) and reformatted it into reference posts, doling it out 300 – 500 words at a time. Some of this stuff even ranks!
Know what you are trying to deliver – and invest accordingly..
There is a stigma to monetizing your side projects. I take exception to this. Building useful software is hard work. Maintaining it takes even more work. Adding a revenue stream to a project helps make it sustainable. This is good for everyone involved.
This is a big issue in the open source community. Github and Google code are littered with the remains of half completed and unmaintained libraries. This is a loss to everyone involved: the volunteers that built the library, the brave souls who were early adopters, and the community at large. And when the open source ecosystem fails for a particular space, our end-users have no choice except to turn to a corporate provider.
One of the more interesting elements of building a site like this working through the right level of “assistance” to provide a player. The goal, of course, is to make the game more fun for a player and (being pragmatic) do so in fashion which perpetuates their interest in the game. A lot of this thinking went into the design behind our words with friends helper .
We opted for a minimalist approach – enter your letters and we give you a list of possible words. The player is free to play them how they wish – keeping them involved in the strategy of how to put down their tiles while we help out with crunching through the dictionary of potential words. This gives a nice balance of help without making the game too easy…
Zynga released the Android version of their Scramble with Friends game last weekend, which was our first contact with the game. It’s a social version of Boggle – the players take turns finding words in a 4×4 grid of letters, with a couple of additional elements Zygna threw in to spice things up. So naturally we decided to write a solver for it 🙂
Writing word game solvers has become something of a hobby for me. My first project was a Hangman Solver: this started off as a regex filter (Python) applied to a word file which we tweaked to make it more efficient. The next step was modify the program into a Hanging With Friends Solver: there are a few tweaks in Zynga’s rules which make it easier to guess a word (reduced number of possible answers). This website was built by taking these two Python functions and embedding them in a web framework. The front end is HTML dressed up with some basic JQuery.
We just released a customized version of our Hangman Solver that has been tweaked to solve Hanging With Friends puzzles more efficiently. There are a couple of features in the Hanging With Friends game which allow you to dramatically reduce the number
of possible words under certain circumstances. This experimental new solver takes advantage of this.
Several weeks ago, my wife and I were playing some word games on vacation. Some idle musing about these word games prompted some “code doodling” in Python, which eventually turned into the analytics module behind this site. The next step was to wrap a website around this code.