Monday, August 20, 2012

Solitaire Till Dawn: The Last 90%

I am nearly at the end of a three-week "working vacation", time off from my day job which I have spent working full-time on Solitaire Till Dawn instead. It has been both productive and fun, and although Solitaire Till Dawn for Lion (and beyond) is still not done, I've made a lot of progress.

In these three weeks I've accomplished the following:

  • Made the animation system sane and well-behaved
  • Implemented a full preferences system for saving your settings and scores
  • Created the "Players" feature, so you and your family can keep separate, personal settings and scores
  • Implemented automatic saving of your game when you quit, and automatic resume when you start again later
  • "Sandboxed" the app, to obey Apple's new security restrictions
  • Wrote the code to import your old scores and settings into the new version
  • Created a half-dozen new cardback images, with high resolution for modern screens
  • Implemented the Décor panel, so you can choose royalty, cardbacks, and background images
  • And made loads of miscellaneous bug fixes and user interface spiff-ups.

So where do we stand?
Fair question, especially after all that gloating and bragging. I'm afraid there's still a lot left to do.

Some wag once observed that the first 90% of the job takes 90% of the time; and then the last 10% of the job takes the other 90% of the time. He was right. At this point, nearly all of Solitaire Till Dawn's major features are basically working. There are a couple of time-consuming items left to do: for example, I still have to implement the "extended statistics", and I have to write all the built-in help pages. But most of what's left is just a whole lot of tedious testing and bug-fixing.

At this point, I expect some of you are wanting to volunteer to help with the testing. I'm grateful for all the offers, but I'm still not accepting testers (not even a waiting list, so please don't clog my in-box with requests, thanks!). Managing beta testers is itself a big, time-consuming job, and I'm not going to start it while I still have a big list of bugs I've already found and can test myself.

When testing is complete and I think the product is ready for release, I will submit it to Apple's App Store. This will require getting my descriptive text and screen shots ready and packaged up, which is another task that will take some time. I've never done this before, but from friends I know that acceptance may take weeks, especially if Apple find problems they want me to fix.

Will there be anything missing in the first release?
Yes, a few features from the old version will almost certainly not be in the new version. I am deliberately leaving some things out in order to get the app done as quickly as possible. The list of skipped features may include:

  • Magnetic Mouse
  • "Cheat" features
  • Custom cardbacks from your own photos
  • The clock timer
  • "Save Game" and "Open Game" menu items (but your current game will always be auto-saved)
That list is not final. And if one of your favorite features is on it, please don't worry. If it isn't in the first release, I will add it in a later update.

Enough, already! We just want to know when it will be done!
Sorry, I don't know! Testing, bug-fixing, and submitting to the App Store are all things that will simply take as long as they take, and I can't predict how long that will be.

My vacation will be over in a couple of days, and I'll be back to having only evenings and weekends for this. I've used these full-time weeks for the "big ticket" items, stuff that really requires hours of uninterrupted concentration and a mind that isn't end-of-the-day exhausted. Those items are now finished, and most of what's left should not require such deep focus. I'm hoping I can be reasonably productive even in those late-night snatched hours. I'll continue to keep you posted on my progress, of course.

What about Mountain Lion?
I won't release Solitaire Till Dawn until it is compatible with both Lion (OS X 10.7) and Mountain Lion (OS X 10.8). That won't delay things much, I think.

I had originally intended to keep this release compatible with Snow Leopard (OS X 10.6) as well. That may yet happen, but if it looks like it would seriously delay the release, I will abandon that. Snow Leopard is now out of date by two major OS X updates, and the old version does still work in Snow Leopard if you install Rosetta.

Thursday, August 2, 2012

Midsummer Fair Winds

The title of this post is kind of lame, but never mind. I was trying to draw a contrast with my previous Midsummer Doldrums post. Very shortly after I posted that, unexpected events changed my situation quite a bit.

I am now, unexpectedly and suddenly, on vacation (or what I will try to call "vacation" without falling down laughing). It's really just a break from my day job, a couple of weeks off that I will mainly spend working on Solitaire Till Dawn.

This means that instead of trying to snatch an hour or two in the evenings, when I'm bushed and can't think straight and have a zillion distractions, I can instead work a full eight-hour day on solitaire. While I don't expect to finish the project during this stretch, I do expect to make a metric ton of progress.

And here's the first fruit: on my first full day I have already finished off that architecture issue I was moaning about! It's another redesign of the animation subsystem (I think this is at least the third time I've done that), and it's working better than it ever did, with much simpler code. Tomorrow I have a bit more cleanup to do on that task, then it's back to real forward progress again.

P.S. Unhappily, the "unexpected events" I mentioned were not all good for all concerned. That story isn't mine to tell, but I wouldn't want those who know the story to think that my only reaction was unalloyed joy. As for me and mine, we're okay; we're just feeling sympathy for friends and trying to find a silver lining or two amongst the clouds.