Friday, June 20, 2014

Settlers of Catan

If I could only recommend one game for a family to own, it would be Settlers of Catan, created by Klaus Teuber. It's the closest thing to a perfect game I've ever played. There are a number of reasons why I highly recommend it.

1. It’s a race, not a brawl

Games like Monopoly and Risk are brawls—you win by essentially beating your opponents into the ground and taking away everything they possess.

Races, however, are won by being the first to achieve an objective. In Settlers, you win by being the first to earn 10 victory points. Building settlements and cities gain you victory points that are never lost.

And as you build, the average number of resources you receive each turn will increase. This allows you to do more each turn and mitigates the effects of other players ganging up on you.

In my experience, races have much broader appeal than brawls, particularly among casual gamers. That’s not to say that Settlers is completely lacking in direct conflict between players—there’s competition for open spots on the game board and some accomplishments yield victory points that can be taken away—but these brawl elements are well balanced with the race elements of the game.

2. Clean, simple rules

The rules are simple enough that they can be taught verbally. The recommended age is 10 or older, so once the kids are old enough the entire family can play. And if you’ve ever played a game where the rules are ambiguous about what to do for a certain situation, you won't have to worry about that playing Settlers.

3. Minimal waiting

In many games, players are only allowed to perform actions on their turn. In Settlers, a player can only build on their turn, but players are eligible to receive and trade resources during any player’s turn, so there's incentive to barter so you’ll have what you need for building when your turn comes around.

4. Reasonable playing time

Most games can be played in 30 to 90 minutes—depending upon the number of players and their experience—so you can play at least several games in an evening. If your strategy isn’t paying off or you have a run of bad luck, you won’t have to suffer the entire evening.

5. Replayable

The game board is constructed by forming a large hexagon out of smaller hexagons representing different terrain types. This allows for a large number of board combinations affecting both resource availability and desirability of open spots. There are many different strategies for winning that can be learned through repeated play.

6. Experience counts

There's a good mix between luck and experience. Resource production each turn is determined by a die roll, so while it’s possible for a complete novice to win with beginner’s luck, experience definitely gives you an edge in selecting the best placement for your settlements and cities, determining which trades are in your favor, and devising the best strategy for a given situation.

7. Lots of expansions

If you like Settlers, there are a number of expansions for it (including one that allows up to six players rather than just the two to four that can play with the basic game). There’s also a family of similar games using the same tile-based resource generation mechanics.

8. Intelligent tutoring agent

OK, so this one’s only of interest to artificial intelligence nerds, but there’s an intelligent tutoring agent for Settlers built using CLIPS.

Monday, June 2, 2014

The Long Slow Decline of App Store Income

I didn’t expect to get rich creating an iOS app. If that were my goal I certainly wouldn’t have create a ‘to do’ list app to compete with the gazillion other ‘to do’ lists apps in the App Store.

But for a very long time I'd been making lists on scraps of paper, so when I first got my iPod Touch in September 2008 and couldn’t find a list app that I liked, I decided to make my own. If I could make a bit of extra money in the process, so much the better.

I released List! Lite in February 2010 and List!, a paid version of the app, in July 2010. Since that time, I’ve released 25 updates including new features and bug fixes. List! has 210 ratings with an average of 4.5 out of 5 stars.

There are many excellent articles worth reading on the challenges of making money on paid apps, but I can nicely summarize them with a single graph showing the monthly income I’ve made on List! between October 2010 and April 2014:



I got a large bump in income shortly after adding support for the larger screen of the iPad in June 2011, but nothing I've done since that time—new features, sales, promotions, and localization—has had any lasting effect on generating sustainable income. At best, all I've done is just slow the decline.

As a hobbyist, I have no regrets on the time I spent developing the app. I learned a number of new things, made enough money to buy some toys, and have an app that I use on a daily basis.

As a developer, I’m glad the only investment I lost was my spare time. There’s all kinds of speculations I could make, but at the end of the day I wrote an app I loved creating that just wasn’t commercially successful. I haven't written my last app, but I now have a more enlightened view of the economic realities of app development.

So if you approach a developer about an app idea that’s sure to make money and they look at you skeptically, now you know why.

Monday, May 19, 2014

Candy Crush

Candy Crush is the kind of game R.J. Reynolds would make if they were peddling entertainment rather than cancer. The game itself is visually appealing, fun to play, and very addictive. It’s that last element that really adds the sleaze to the coercive monetization King Digital Entertainment uses to generate income.

I’m one of the 70% that’s never spent money on the game and never intend to, but was I tempted to pry open my wallet the other day when I saw this while playing:


Live forever! You mean I can pay something reasonable like $10 or $15 and just play the game continuously? I don’t have to wait or spend money to continue playing each and every time I run out of lives? That’s something I’d be willing to buy!

Oh, wait. By forever you mean the next two hours, not for all time. So if I lose lives at a rate of one each minute, how many “unlimited” lives can I get?

Let’s see… 117. 118. 119. Infinity. That adds up.

No thanks, I’ll spend my money elsewhere.

Just say no to coercive monetization. Play but don’t pay. Develop patience or spend your money on games that charge you upfront and allow you to play continuously.

Sunday, May 11, 2014

Remembering Mom 2014

Driving mom to the airport:
MOM: I read that you shouldn’t put your address on your luggage tags. Thieves will know that you’re not at home and can rob your house while you’re gone.

ME: So who’s address did you use?

MOM: Yours.
Happy Mother’s Day Mom.

Thursday, May 8, 2014

River Benchmark

I came across another river crossing problem that’s similar to the farmer’s dilemma example problem for CLIPS. It’s a little bit more complex by virtue of the number of things that have to be moved, but it’s essentially the same type of problem.

One of the issues with existing benchmarks such as waltz and manners is validation. The manners benchmark only runs in CLIPS with the depth conflict resolution strategy and the waltz benchmark executes different numbers of rules depending upon the conflict resolution strategy chosen.



Clearly this is an issue. I'm a proponent of having lots of benchmarks, rather than one or two, but in order to have lots of benchmarks, they need to be dead simple to translate and verify. In the case of the existing benchmarks, they're not.

What this means is that you have to design the benchmarks with this is mind. I thought it would be an interesting exercise to demonstrate how this can be done. So I wrote a CLIPS program to solve a variation of the river crossing problem and once I had it working, set the conflict resolution strategy to random to see if the same number of rules were executed with each run. There weren’t.

It took several iterations before I had a version that produced the same number of rule executions regardless of the order in which rules of the same priority/salience were placed on the agenda. The primary mechanism used to get an exact number of rules executed was to assign weights to each of the possible moves that could be made so that the search was always made in the same order. In total, there were 19 rules and 5 salience values for the different groups of rules. If I’d used modules (which would have made translation to other languages more difficult), there wouldn’t have been any need for salience values at all.

Like the manners and waltz programs, the river program runs considerably faster in version 6.3 of CLIPS than in version 6.24. On a 2.66 GHz Intel Core 2 Duo it completes in 0.7 seconds in the newer version as opposed to 29 seconds in the older version.

The river program is available here.

Wednesday, April 30, 2014

Affordable Health Care

When I left my job working for a company to become a software consultant working for myself, one of the first things I did was get an individual health insurance policy. Since my premiums aren’t subsidized, I’m fully aware of the true cost I’m paying and in the last eight years that cost has risen 333%:


With most of the rate increases I’ve gotten in the past, I’ve also received this bit of ominous advice from my insurance carrier:
You may qualify for other plans at different rates. Before you make a decision, you may want to discuss these alternate plans with us or your broker. If you choose a new plan, we might review your health information again. This might mean a higher rate. And you may not be able to return to your original plan.
So if I understand what they’re telling me, if I try to switch to another health plan to save money, I may end up paying more money for less coverage than what I have now. Thanks, let me think a bit and decide if I want to bend over now or bend over later.

Obtaining health insurance as an individual sucks; you lack the power that a large group has to negotiate reasonable rates for all of its members. I don’t see how any free market advocate can claim that this kind of lock-in—either to a company subsidizing/negotiating your costs or to a plan that can’t be changed without significant risk—is a sign of a competitive environment that will work things out if we just give it a chance. In fact, the opposite is true. In an unregulated free market, insurance companies will naturally exclude those most in need of health insurance in order to maximize their profits.

Long term, I honestly don’t know whether Obamacare is going to ruin the American way of life as we know it; I’ll leave those pronouncements to the politicians and pundits who claim to know everything, but can’t offer a better solution to the current broken system.

Short term, however, it’s going to cut my insurance premiums almost in half. Because I can’t be charged more or denied coverage for preexisting conditions (such as taking statin medication to help keep my cholesterol in check), and the information on the healthcare exchanges makes it much easier to compare plans from different carriers, I was able to find a better deal with a different carrier (keeping the same doctors I was using in my old network).

Only time will tell if there are any gotchas with my new health care plan and perhaps the government’s health care mandates are unsustainable, but from my perspective the Affordable Care Act really has made my health care more affordable.

Full disclosure: I did not vote for Obama in the 2008 and 2012 presidential elections, but I, for one, welcome our new socialist overlords.