Saturday, June 5, 2010
Various Kinds of Progress
I can now say that my "Rottweiler" project, about which I've maintained a mildly coy level of secrecy, is the Railways of the Western U.S. expansion to Railways of the World. FRED Distribution (aka Eagle Games) has announced that it will be published in Q1 2011, less than a year from now. (Regular readers already know that Railways of the World is the new reprint of the original Railroad Tycoon board game, pretty much my favorite game of all time.) I'm very excited about this, but I am trying to be patient about waiting till next year to see it in shrinkwrap at my FLGS. (As always, I want my instant gratification, and I want it now!)
The fate of Continental Rottweiler is still to be decided. Stay tuned.
In my last post, I wrote about returning to Mac programming and re-writing my venerable Solitaire Till Dawn product. That project is coming along nicely, although I wish I had more time to devote to it. Just a few minutes ago, I reached an exciting milestone: I played and won an entire game of Klondike in the new version. Now that may sound like it's almost done and ready to go, but that's not true at all. This is about the stage where the monster tries to stand up from the slab and take a few uncertain, shambling steps. The polished performance of "Puttin' on the Ritz" is still a long ways off. But I'm encouraged, and starting to think about choreography (so to speak).
Last weekend Helen and I again attended KublaCon, probably our favorite boardgame convention. We had a great time as always. This year I found myself mostly concentrating on unpublished games: Spatial Delivery and Rottweiler both got a workout, and I was privileged to play Seth Jaffee's expansion to his own Terra Prime. (Here's a sneak preview: I really liked it.) And our good friend and member of our weekly gaming group Marlin Deckert won the KublaCon Game Design contest with a really elegant abstract game he calls "Tripletts". I hope and expect to see it on store shelves in the not too distant future. (And by the way: that makes three members of our game group who have won that contest: Marlin, Candy Weber with her game Leftovers, and yr. obed. serpent, myself.)
As always, we came home with more games than we set out with. There were no exciting new releases to look for this year, which was a bit disappointing. We had already seen all the hot new games. Nevertheless, we improved our collection by trading away a few things we've found we didn't care for, and their slots on the shelf will be filled with our new acquisitions. These include Canal Mania, Attika, the Alchemy expansion to Dominion, Mission Red Planet, and a few others.
And now I'm going to go clear off the game table so we can play one or two of them!
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!
Monday, February 8, 2010
Coast-to-coast again
Tuesday, January 26, 2010
WebComics: Dave Kellett's "Sheldon"
Tuesday, January 19, 2010
Zen and the Art of Second Cornet
A couple of weeks ago I again had the pleasure of performing with Ted Shafer's Jelly Roll Jazz Band, and as usual these days, I played second cornet to Leon Oakley's lead. Rae Ann Berry was on hand to film part of the last set*, which gives me a relatively rare opportunity to listen to my performance from the audience's viewpoint.
Lately I've been wishing that I'd had more opportunities to hear recordings of myself over the years. Recordings are devastatingly honest. When you are playing, you tend to hear what you meant to play, but a recording relentlessly makes you listen to what you actually played, and gives you a more balanced view of how it fits (or doesn't) with what the rest of the band was doing. It can be painful but is very educational.
And I need this education... and not because I want to play first cornet, but because second cornet is hard.**
The JRJB is a two-cornet band, in the style of King Oliver's Creole Jazz Band of the 1920's and Lu Watters's Yerba Buena Jazz Band of the 1940's. Most trad bands have only one cornet, along with the usual one trombone and one reed in the front line. That gives each player a fair amount of freedom, because those three instruments are expected to play independent lines more than close harmonies. But twin cornets have to play together . That's a word that covers a lot of ground.
Theory
You might expect harmony to be simple, and often it is. Trad jazz tunes usually have simple chords and progressions. The second cornet could just play the root of the chord when the melody is on the third, and the third when the melody plays anything else; but this gets boring for player and listener alike. Fortunately there are things you can do to spice it up. Leading tones, suspensions, passing tones, and notes that suggest a more complex chord progression all add flavor and make the two-cornet sound lively and interesting. I'm also fond of "moving" lines: harmonies that almost sound like another melody.
Phrasing is definitely not simple. In a symphony orchestra you take your phrasing from the lead player for your instrument or section, and you have rehearsals in which the phrasing is first decided, then practiced by all. In a jazz band, you have to take both a longer and a shorter-term view. "Longer" because, instead of getting used to a particular phrase, you have to get used to the player himself, and learn how he thinks. "Shorter" because you can still be surprised, and you have to keep your ears open and make adjustments on the spot in live performance.
Counterpoint is both a staple and a last resort for the second cornetist. It is a staple because good counterpoint is wonderful and worth doing for its own sake. But it can also be a last resort because you really can't always play tight harmony. If the lead decides to improvise wildly, a normal harmony line will just sound lame. So instead, you improvise melodies and interjections of your own. It has to be something that will fit the chords and the mood, and that won't overpower or clash with whatever the lead is playing. (The latter usually means staying low while the lead plays high, and quickly moving to a different note when you find yourself in unison.) Often a good technique is to play "fill". Cornets are wind instruments: as if speaking, they play distinct phrases with predictable pauses for breath. The second cornet can pause when the lead is playing, and play during the lead's pauses. There may be considerable overlap, which is fine; but the offset phrasing minimizes collisions and gives the second cornet a distinct voice and identity that's often lacking in tight harmony.
Practice
Playing second cornet can be a strain. It's more complex that the major points I've outlined above, and it has to be done in real time—the band won't wait while you figure out what to play. And music theory isn't the only hurdle you have to master; there are practical considerations as well.
The JRJB plays arrangements out of a book, in which the lead and second cornet parts are carefully written out, note for note. Because I only play with the band a few times per year, I'm effectively sight-reading these tunes. I'm not too bad a sight-reader, but what I'm reading is usually a 40-year-old, fourth-generation Xerox copy of an original written by someone whose copy hand wasn't that good to begin with.
The copyist has felt free to summarize entire sections of the tune with notations like "B3 as B1" which makes you suddenly have to hunt back over sections D, C, and the interlude to find the "B1" mark; by the time you've found it, you're three or four bars into it already. The copy you're reading from has decades of wear, tears, discoloration, coffee**** stains, and fading. It has been scribbled on in pen and pencil to fix mistakes, insert or delete choruses, change intros and endings—and many of these alterations are out of date. Just reading it correctly is no easy task.
And reading it correctly isn't always correct! Those carefully-designed harmony lines in the second cornet part only work if the lead plays his carefully-designed written-out part... and he often doesn't. (And he's not supposed to. Jazz, remember!) When the lead decides to wander too far from what's written, or when I've gotten lost on the page, then I have to fake something. Usually Leon will stay fairly close to the page in the opening choruses; I don't have to fake much unless I get lost, and then only until I can find my place again. But later in the tune, especially on the out-choruses, Leon often just closes his eyes and plays what he likes. Then I just have to listen extra hard, and get creative, and be ready to return to the written music when we reach the hook, which should be given plenty of punch...
Nope, not easy. But if I do it well, nobody may ever know that I wasn't blithely reading the entire thing. I can just stand there and look smug when the tune is over!
* Salty Bubble and Tiger Moan came out pretty good, I think.
** "Dying is easy; comedy is hard." — Sir Donald Wolfit***
"Math is hard!" — Barbie
*** Or somebody else.
**** I guess.
