Tuesday, April 27, 2010

Solitaire Redux (yet again)

In 1991, almost 20 years ago now, I launched a new software product in my Semicolon Software line of tools and toys for Apple Macintosh computers. It was a package of nine solitaire card games, called Solitaire Till Dawn. Helen and I put a freeware demo out on the BBS and user-group circuits (there was no World Wide Web yet!), and mailed the full version on a floppy disk, with a printed manual, to anyone who sent us a check or cash for it.

Solitaire Till Dawn sold a couple of copies per week over the next year or so. It was the product that convinced me that I should write a lot of small products rather than a few big ones, because all of my products seemed to sell about two copies per week. Putting a lot of effort into one or two big products didn't seem cost-effective, when my smaller and quickly-developed tools were making just as much money.

The Competitive Instinct

A couple of years later, the TidBITS online newsletter reviewed a competing solitaire package, and compared it to Solitaire Till Dawn. The competing package was obviously better, but sales of Solitaire Till Dawn went up. (Apparently it's true: there's no such thing as bad publicity!)

But I didn't like being outdone. I put a lot of work into Solitaire Till Dawn, and released version 2.0 in 1994. It was a big improvement, but this version's real significance was that it was designed to be distributed and sold on-line. The Internet was growing, and we became one of the earliest adopters of Kagi, perhaps the Web's first on-line store. We gratefully stopped fussing with printed manuals, floppy disks, and mailing envelopes, and sat back to watch the money roll in.

And it did roll in! Sales went up by a factor of ten. I changed my plan: I never developed another new Semicolon Software product after that, and instead concentrated on improving Solitaire Till Dawn.

Aggressive Development

The good news was that we were now making significant income from our home business, where before it had been pocket change that I used to buy the occasional new computer or software package. The bad news was that I no longer had a hobby; I had a second job. The income belonged to the business and not to me. We were relying on that extra income (we had kids now!), and I couldn't use it for mad money any more.

But I was still having fun. I continued to add new games and features to Solitaire Till Dawn for several more years, until Apple threw me a curve by introducing Mac OS X.

The Mistake

Solitaire Till Dawn wouldn't run on Mac OS X. For a while that didn't matter. Most Macs still ran the classic Mac OS. But OS X usage grew, and our sales declined. So I sat down once again to do some real development work.

And here I made a mistake. I didn't have a Mac OS X machine myself. So rather than dive into Cocoa and Xcode (the OS X native development environment), I used the Carbon framework instead and stuck with reliable old Metrowerks CodeWarrior. Using Carbon meant I could run my new version on both classic and Mac OS X, which meant I could do most of my testing on my old Mac. It seemed like a good idea at the time.

The Consequences

It took me two years to complete the new version. But by then, the pent-up demand was enormous, and our sales were huge. For a while, especially the first couple of years, we were riding high.

But I'd built an Achilles heel into Solitaire Till Dawn X. CodeWarrior had been the best Mac development environment you could get for years, but nothing lasts forever. Metrowerks eventually stopped supporting the Mac. Okay (said I to myself, said I), my old copy still runs just fine. But then came the next bomb from Apple: the switch to Intel processors in 2006.

Bad news indeed! CodeWarrior could not compile for Intel chips. Theoretically you could take an old CodeWarrior project and import it into Apple's Xcode, and compile it for Intel. But I could never get that to work, and even if it had worked, it would have been just another stopgap, leaving Solitaire Till Dawn still dependent on Carbon. Carbon doesn't support some nifty new OS X features, and someday (I am sure) Carbon itself will fail me, when Apple eventually decides to abandon it.

Our Hero Leaps Into Action

Now was the time for me to get busy again! I needed to re-write Solitaire Till Dawn in Cocoa. I set right to it... and bogged down within a few weeks. I was burnt out! I'd written an unreleased predecessor to Solitaire Till Dawn in 1989 or so. I wrote version 1.0 from the ground up in 1991, and worked on it almost continuously for ten years. I wrote it from scratch again in 2001-2002 for OS X. I'd had two CPU chips, one operating system, and a development environment shot out from under me over the course of 15 years. And I found that I just couldn't face writing yet another solitaire program—never mind one that would have to be bigger and better than any of its predecessors!

Apple has always been good about backward compatibility, and it gave me an excuse to be lazy. To this day, Solitaire Till Dawn X runs quite well on Intel Macs, using Apple's "Rosetta" compatibility layer. But users want Intel-native apps. And now Apple has shipped Mac OS X 10.6, in which Rosetta is not automatically installed. It's still available, easy to install, and free; but it's another barrier to new customers for Solitaire Till Dawn.

The result of all this has been a steady decline in sales, and it's my fault. I made a bad decision when I first built Solitaire Till Dawn X, and I ran out of steam when it was time to fix that mistake. Now I'm four years late.

Our Hero Leaps Into Action (again)

Why am I blathering at you about this? For the same reason that some people talk about their diet plans and New Year's resolutions: in the hope that the fear of public shame will keep them on course. I have resurrected my old attempt to re-write Solitaire Till Dawn in Cocoa, and I have made significant progress with it. But it's going to take a while—months at least—and I'll need to keep my resolve and work on it every night that I have at least an hour of free time. If I succeed, I can hope for resurgent sales, and our household economy could certainly use that.

And maybe... just maybe, I'll have energy left to look into making an iPad version. It's clearly the new wave: there is likely more money in that than in Mac software. But here I am again, unable to afford the hot new hardware and unwilling to try to develop for a machine I can't test on. So I'm going to do the OS X version first. If I finish that, it should be a good starting point for an iPad version, because iPad apps are also built with Cocoa. I am making no promises about iPads yet, but I'd like to own one of the shiny things, and this would make a great excuse.

I just have to keep my nose to the grindstone, and hope that Apple doesn't shoot yet another processor, platform, or development environment out from under me.

[Read more about the history of Solitaire Till Dawn, if you're interested. I'll post small updates about my progress at the upper-left corner of this blog, and perhaps some longer dissertations as regular blog posts from time to time.]

Thursday, April 8, 2010

Coast-to-coast live!

This weekend we held the first live playtest of Continental Rottweiler: "live" means that we had four actual human beings playing the game, as opposed to just me, or Helen and me, pretending to be more than one person each. I'm pleased to report that it went very well.

The game lasted about six hours, and was contentious from beginning to end. I had been hoping for a fifth player, but the game worked quite well with four. The fact that everyone wanted to cross the "border" between the east and west tended to crowd players together; on the Western board, the Rockies were another barrier that focused nearly everyone's efforts. I think there's room for a fifth player, but surprisingly, six may turn out to be too many.

The new rules for handling the "income trough" seemed to work well. We used a rule that Helen had proposed: at mid-game, players may give back any number of the bonds they've taken out at a penalty of 2 VPs per bond. This rule is intended to walk a careful tightrope. I want players to be able to take out lots of shares without worrying about surviving the income troughs later on. On the other hand, it should cost something to get rid of a bond at mid-game; otherwise, it is too easy to take out bonds just before mid-game, knowing that you will soon be rid of them. In addition, it gives players another interesting decision to make: keep the bonds and avoid the extra VP penalty, or dump them and avoid the income penalty?

I have one reservation about giving back the bonds: in this session nearly everyone gave back all their bonds, and the one player who didn't regretted it. It may be that 2 VP is too cheap, and at that price you should nearly always give back all your bonds. But I'm going to let a few more games go by before I try increasing the penalty. That will tell me whether the cost is really too low, or whether it was just the way this one game played out.

My other concern is the Rail Baron cards. I put together a set specific to the Continental game, having found in previous playtests that the ones from the Eastern and Western games don't work as well on the combined boards. For the most part the new barons were good, but there were a couple of false notes. One is that the VP bonuses in the base game and its other expansions are about 10% of a typical final score. But final scores in the Continental game are much higher; if the Rail Baron bonuses aren't increased to match, players will not have much incentive to try to achieve their Baron goals. I think therefore that the Continental Baron bonuses need to be significantly larger than those for the base game. The other issue is ensuring that those bonuses are balanced. There were indications that some of the goals are much harder to achieve than others. A little of that is okay, but the differences shouldn't be huge.

All along I've been worried that the Continental game would take too long, and outlast its welcome. But the players stayed after the game for well over an hour, vigorously discussing their strategies and the reasons for their decisions. Nobody got bored, and they all want to play it again. Whew! Obviously, not everyone will want to play a six-hour game no matter how good it is, but I think we've got something that at least a real RotW enthusiast will enjoy.

More playtests will follow, as soon as I can get them together!