Showing posts with label Macintosh. Show all posts
Showing posts with label Macintosh. Show all posts

Thursday, November 6, 2014

Finally, Solitaire Till Dawn

A while back, when I realized that most followers of this blog were more interested in the progress of Solitaire Till Dawn rather than anything in my personal life, I created a new blog for my solitaire development and stopped posting about Solitaire Till Dawn here. Since then, nothing very noteworthy has happened to me other than solitaire development, so I haven't been posting here at all!

I'm going to break that rule now, because Solitaire Till Dawn is finally available in the App Store, and this is a personal achievement for me. It is the culmination of over five years of work, rewriting Solitaire Till Dawn from the ground up for modern Macs. Apple released the Lion version of OS X in 2011, and until yesterday that meant that you couldn't run Solitaire Till Dawn on any Mac with an up-to-date OS. Now you can: the new release is good for any Mac OS from Snow Leopard (10.6) up through the latest Yosemite (10.10).

It's been a long grind. The previous version of Solitaire Till Dawn was the result of 15 years of steady development; you can't re-create something like that in a weekend. And I was slowed at first by the requirements of my day job, and later by the exigencies of moving house to a new state. But for the past year or more I've been able to give it lots of attention, and we've finally reached the big milestone: the release of version 1.0.

The first version of Solitaire Till Dawn was released in 1991, at about the same time that the Internet was being created. It ran on the Mac Plus, as well as the Mac II (the first Mac with a color monitor). If you're interested, I put an article about the app's history on the Semicolon LLC website: The History of Solitaire Till Dawn. (I've also completely redesigned the website. Go admire it!)

In one way, I feel as though I'm owed a vacation now. But it doesn't really work like that, and anyway I don't want one. Once the dust from the initial release has settled, I will be adding new features and fixing any bugs that turn up, and putting out upgrades. And I hope to begin work on an iPad version soon, although I'm making no promises about that for now!

I'll make one plea here: if you decide to buy a copy, please leave an honest review and rating at the App Store. That will help sales if the review is good, and help me make improvements if it isn't. Thanks!

Monday, September 26, 2011

A Little UI Work

I see it's been over a month since my last post, so I thought I'd put something out to show that I haven't been idle. I've been doing user interface (UI) programming, and I have something new to show.

Solitaire Till Dawn offers 100 different kinds of solitaire. That makes a bit of a problem: how to present 100 different games to users in a way that makes it easy to find the games they know, yet also easy to find new games they might like. In the pre-Lion version, your "Favorites" are listed in a popup menu in the toolbar, and you only have to select one to start a game. To see all 100 games, you would select "Choose from All Games..." from the same menu, and that would open the Game Chooser window, which was a rather complicated affair.

The left edge of the window

I've learned that a lot of users didn't realize that "Choose from All Games..." was an option rather than just a label, and I'd get emails asking me where all the other games were hiding. So in this new version, I'm trying to make that more obvious. Here's a screen shot showing part of the left edge of the game window.

There on the edge, you can see three tabs labeled "My Favorites", "All Games", and "Goodies". These tabs are always visible, but usually take up just that small amount of space on the side. It should be obvious (I hope!) that you can click them to get something interesting to happen.

If you click any of the buttons, a "drawer" will slide out from the left edge. The next image shows what you might see after clicking the "My Favorites" button.

The drawer is open




You can see a list of 16 games, which are the ones selected as your favorites out of the full list of 100 games. This is what you'd use to select a game you already know you like.

You can select a game by clicking with the mouse, or by typing the first few letters of its name. If you double-click your selection, or press Enter or Return, a game of your selected kind will start immediately.


The All Games list, with a game selected


Now here's what you get if you click the "All Games" tab: the full list of games, scrollable of course. You can select games and start playing in exactly the same way as in the "Favorites" list.

In this image, you can see that "Baker's Game" has been selected, and this reveals another new feature: the small green i-in-a-circle that appears by the selected game. In the image below, you can see the Game Info panel that appears when you click the green i.

The Game Info panel
The Game Info panel shows full information about the selected game, everything but the actual rules; and you can see the rules by clicking the "Show Rules" button near the top-center.

If you change your selected game, the Game Info window will move to match your selection, and show you info about the newly-selected game.

Finally, you can dismiss the Game Info window by clicking the small x in the upper-left corner (I'll probably change that to actually say "Close this window"). The whole business including the drawer will disappear back into the left edge if you click the highlighted tab, or click anywhere outside the panel and the drawer.

This isn't final

I'm sure there'll be changes before this ships. For one, there's nothing in the "Goodies" tab yet, and I'm not sure what might go there; it might vanish altogether.

Here's a change I'm thinking about right now: I may get rid of the little green i and instead just have the Game Info panel appear whenever you select a game. That's because I'm worried that some people won't realize the green i can be clicked, and they will miss ever seeing the Game Info window. On the other hand, if you know what game you want, you won't need to see that panel, and it would be annoying to have it flash into existence and then instantly disappearing as your new game starts. Perhaps it should appear only after a brief delay?

I'm not sure yet. What do you think?

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.]