New platform: Mac OS X

We are getting prepared to release a Macintosh game next week.

As mentioned in several previous posts, including New development platform, most of my recent development has been on “another” platform (read: not Windows), and I can now confirm here that we are almost ready to release a solitaire game for Mac OS X.

The title was developed using Xcode, the development environment that ships (“free“) with every Apple computer, written entirely in C++ (Gnu) and using Carbon. Our decision to use Carbon, as opposed to Cocoa, was made when Apple still openly spoke of both frameworks being “first class citizens” on OS X and even recommended Carbon for cross-platform code. We were almost into beta when Apple revealed, in classic bombshell fashion, that Carbon had been demoted and would not be fully supported in 64-bit versions of the operating system, starting with the next release.

That next release (a.k.a, the next big cat) is Leopard, OS X 10.5, which is going to be released this coming Friday. Ironically, that is just a single day after our originally planned release date, so we will be releasing a little bit later to properly test on this latest Apple operating system. (That is my story and I am sticking to it; the slight schedule slippage on this product was only coincidental.)

Although much of the underlying source code is derived from, or (in some cases) identical to, code used under Windows, the game is not a simple port, as nearly the entire user interface was rewritten to conform with the Apple Human Interface Guidelines and to be “Mac native“. Everything we have heard and read suggests that straight ports that do not look like Mac products (especially those which look like Windows applications) are rejected by Apple users. This should definitely not be an issue with our new title.

This long development process has been quite a learning experience, and there are lots of areas in which OS X excels over Windows, and vice versa. I will detail some of these once the game finally goes gold. In the meantime, it should not take too much investigation and deduction for the interested to figure out the name of this latest project.

Windows Solitaire Trivia

This week’s episode of Cash Cab: After Dark had a solitaire question.

For the unfamiliar, the Discovery Channel airs a unique trivia show, Cash Cab, along with its new variant, Cash Cab: After Dark, in which people climb into a New York City taxicab and unexpectedly become contestants on a game show, winning money for each correct answer en route to their destination. The catch is that wrong answers earn a strike and “three strikes and you’re out”, literally: kicked out of the cab on the spot with no (extra) money.

The most recent episode of Cash Cab: After Dark, aired originally on Wednesday night, featured a question about solitaire on Windows, an area in which I have some degree of expertise.

Question: A blessing for bored PC users, what specific variety of solitaire has come with Microsoft Windows since 1995?

The correct answer, of course, is FreeCell, which shipped with Windows 95. (As an aside, I was in attendance at the Win95 release event on the Microsoft Campus. Big doin’s.) However, FreeCell was actually available with Win32s (for 16-bit Windows) and as part of the Microsoft Entertainment Pack products prior to this.

The FreeCell implementations in both Most Popular Solitaire and Pretty Good Solitaire are deal compatible with the Windows version. Additionally, our upcoming title, on another platform, also contains a version that produces the same deals (up to deal #1000000). More details to follow…

One possible incorrect answer would be Klondike, which is the proper name for the type of solitaire (or patience) that is simply called Solitaire in Windows. The word “specific” could lead one to that response, but that game started shipping with Windows 3.0 in 1990. (The aforementioned games all include Klondike.)

Another possible incorrect answer could be Spider [Solitaire], which started shipping with Windows me (but don’t tell Wikipedia that), but was previously available with Microsoft 98 Plus! Having beta tested the latter product, I can say that the shipping version was a vast improvement on the first version I saw. (Spider is also included in all of the aforementioned Goodsol Development titles as well, including the Spider One Suit and Spider Two Suits variants.)

Too much solitaire information? I have lots more.

Happy Birthday, PGMJ!

Pretty Good MahJongg is now five (plus) years old.

Last Friday was the 5th anniversary of the first public release of Pretty Good MahJongg. On October 12, 2002, Pretty Good MahJongg 1.0 was released.

Of course, the program had been in development for quite a while (let’s say 9 months, or 40 weeks) before that. This was the second product, and first actual game title, developed during our continuing collaboration with Goodsol Development. We started working together six years ago (this month, I believe), first producing a support library, PGScard (now GDcard), which provides some fundamental features of Pretty Good Solitaire.

Back in 2003, Thomas Warfield made a blog post, How Long Does Great Shareware Take?, in which he refers to Pretty Good MahJongg as “still an infant”, and it is an interesting article to read in retrospect, especially given the fact that we recently won our first software award (even before version 3.0). Even if Joel Spolsky is correct is his article, Good Software Takes Ten Years, we are certainly well on our way.

In lieu of gifts, our game has requested that everybody vote for PGMJ to receive the 2007 Epsilon Award.

Chairman of the Board, Take 2

I have been appointed to lead the ASP Board of Directors, again.

On Saturday, the Directors of the ASP (Association of Shareware Professionals), excluding myself, of course, named me as the interim Chairman of the Board, to serve through the end of the year (or more accurately, until the 2008 Board of Directors fills the position).

This is my second stint as ASP Chairman of the Board, the first being back in 2004, when I served from early February until the end of that year (when my term as Director expired). This time, I am succeeding Mitchell Vincent, who had been in the position since the beginning of 2006. He runs K Software, which develops and publishes billing software (among other things), and also works with e-commerce provider Plimus; he resigned from ASP leadership due to (understandable) time constraints.

The general meeting is coming up in December, when members will have the opportunity to choose, or be chosen as, Directors of the organization. If you have not done so, I encourage you to join the Association of Shareware Professionals, and if you are already a member, please seriously consider nominating yourself for a Director seat (details are in the cover article of the October ASPects).

I guess that it is now time to roll up my sleeves…

Epsilon Award nomination

Pretty Good MahJongg receives additional award recognition.

On the heels of our Shareware Industry Award, Pretty Good MahJongg has been nominated for the 2007 Epsilon Award, to be awarded at the ESWC (European Software Conference) next month. This year, the conference takes place in Köln (a.k.a., Cologne), Germany on November 3rd and 4th.

There is only one Epsilon Award given each year, rather than (like the SIA) in individual categories. There are 28 nominees, but ours is the only game nominated. Voting is open to the public but, of course, limited to one vote per person, and the voting closes October 20th.

To vote for the Epsilon Award, click on this voting link and select your choice before October 20, 2007.

A vote for Pretty Good MahJongg would certainly be appreciated.

EULAs Gone Wild

Alternative title: “Let it suck!”

I will admit that I, like 99% of all other software users, rarely pay attention to End User License Agreements (EULAs), instead just clicking ‘Agree’ without bothering to read. There are exceptions, though. In cases where I suspect spyware or ET (“phone home”) code may exist, I scan quickly, looking for buried legal slime and sleazery. Also, as a professional software developer, I do read the license agreements for the tools I (may) use for actually producing a product (mostly to find any distribution restrictions).

In this case, we are talking about the EULA for a development tool.
This must be distinctly understood, or nothing wonderful can come of the story I am going to relate. — Charles Dickens

After downloading a free compiler from Microsoft, I found the following example of legalese that bears little resemblance to the programmers’ English which I speak:

You may not:
– work around any technical limitations in the software.

In other words, if I compile a program that reveals a shortcoming in the program (a code generation bug, for example), I am not allowed by the license to do anything to “work around” this “technical limitation in the software”, including (presumably) rearranging code, using an alternative technique, or perhaps adding an unnecessary extra parameter to get a C++ template to work properly (to use a real example from the past).

The law recognizes such a thing as an egregious contract, which is one which has terms so onerous as to be declared unenforceable (e.g., signing away the soul of your first borne child). Although this particular clause would probably fall under that definition, I would like to know if there is a similar term for legal language that is so stupid as to be laughable.

Perhaps, corporatelawyersinneedofglassnavels?

The Dot Net Preacher

Ryan Smyth interviewed me for a podcast on game development.

Last week, I was interviewed by Ryan Smyth (pronounced with a long I sound) for his online show, The Dot Net Preacher Show. We talked for more than an hour, on and off the record, about getting into game development, cross platform development, and of course, the perceived benefits and drawbacks of .NET from the perspective of a game developer who still primarily programs native code. I also reveal and briefly discuss our current project and platform (but you will have to either listen to the podcast or wait for a future blog post to learn that).

Today, Ryan posted the (edited) interview on his site: Interview with Game Developer Gregg Seelhoff.

This interview runs to only 54:56 and was conducted via Skype, between East Lansing, Michigan and Seoul, South Korea, in the late evening and early morning, respectively.

Pretty Good MahJongg wins SIA!

Our game took home a Shareware Industry Award from SIC 2007.

Pretty Good MahJongg was named the ‘Best Non-Action Game‘ by members of the shareware industry. The Shareware Industry Award was presented at the Software Industry Conference in Denver. This was the first such recognition for Pretty Good MahJongg.

Shareware Industry Award 2007 Winner

I was in attendance at the awards banquet and accepted the award on behalf of Goodsol Development and Thomas Warfield, the producer. In addition to Thomas and myself (programmer/designer), others involved in the development and support of the program are Rick Tumanis, lead artist, Tom Sloper, consulting expert, Anne Warfield, customer support, and Martha Seward (Freelance Works), marketing assistance. I thanked them all, as well as the SIAF (Shareware Industry Awards Foundation), the ASP (Association of Shareware Professionals), and my family.

For more information about the latest version of our game, see Pretty Good MahJongg 2.32.

To read more about my experience at the conference, see these recent posts:

If you want to know what I have been up to since then, stay tuned…

InterFace Conference

A new game conference begins in Troy, Michigan.

Less than two weeks after eventually getting home from SIC 2007, I departed (in the same vehicle) for a new, single day, game conference that was only a couple hour drive from here. The InterFaces Conference, as it was called, was presented by the local International Academy of Design & Technology (IADT Detroit) at a local community center.

Instead of attending the conference itself, which was geared toward students looking for a career in the game industry, I chose just to help man the IGDA (International Game Developers Association) table for the afternoon shift. (Here is the photographic evidence.)

The conference drew an impressive number of attendees, reportedly over 200, for a first-time event. The secret, it turns out, is that attendance was required of all IADT students, so that was probably 90% of the crowd, with instructors, presenters, and exhibitors making up much of the rest. Nevertheless, there appeared to be a great deal of enthusiasm and I heard nothing negative at all.

After the conference, the IGDA chapter meeting took place at the IADT Detroit campus. Unfortunately, the directions (given by one who will not be named here) stretched the short half mile trip to about 8 miles. It could have been longer, but I got suspicious about the instructions as I was leaving Troy, the home city of both the departure and destination points. (Not one, but two incorrect turns took me in exactly the opposite direction of that intended.)

The meeting featured a presentation on professional Xbox Live development by Cris Boyer of Variant Interactive, a (or, rather, the) game publisher located in Michigan. It was certainly an enlightening talk, providing some general guidelines for approaching development for the Xbox 360 console, starting with the Xbox Developer Programs link. He also gave some very specific information, such as a direct contact name at Microsoft and the price of the dev kit for approved developers. Frankly, it was inspiring to know that this is realistically within the reach of an accomplished independent game company.

Unfortunately, upon returning to my vehicle, I discovered that the right front tire had gone completely flat and, adding insult to injury, the special lug wrench required to free the spare tire had been removed from the van. After considerable inconvenience (after 8pm on a weekend), I finally got onto a temporary spare that would get me back home, but not much further. I arrived back at the office early Sunday morning.

Two conferences, two breakdowns; I can hardly wait for the next one.

SIC 2007 Diary, Day Last

The conference ends and the long journey home begins.

Sunday got underway early in the morning under less than ideal circumstances. Apparently, there was a reunion of the Taipei American School in the conference hotel while we were there. The first sign of trouble (or fun, your choice) was that a notice was posted in the elevators to inform TAS guests that mooning from the glass elevator and streaking through the lobby were not going to be tolerated. Well, it seems that they closed the bars and held an afterparty in a room across the hall from mine. It was very noisy and did not get shut down (by hotel management) until after 3:30am.

It would have been nice to have a little more sleep before departing for the return trip, but it was not really to be. Fortunately, I had no urgent appointments, so I could take my time getting home. The morning “breakfast” was a haze, and most conference attendees had already left by then. I loaded up the van and got underway before noon, emerging from the parking garage into bright sunshine and 75 degree (F) temperatures.

Before I left the parking lot, though, I made a final stop to say goodbye to Martha Seward of Freelance Works, who does marketing/distribution work with our products from Goodsol Development and has helped get Pretty Good MahJongg (http://www.goodmj.com) some of the recognition it has achieved.

On the road, I was surprisingly alert, and I managed to find some excellent radio stations in Eastern Colorado to make the time pass more quickly. One was playing a rebroadcast of an old American Top 40 show, with Casey Kasem, and he played Please Come To Boston by Dave Loggins, which includes not only the title line, referring to SIC 2008, but also the line, “Denver ain’t your kind of town“, seemingly in reference to the conference just ended. Weird.

I was in Kansas and stopped at the Welcome Center around 2:30 in afternoon. I picked up a state map and the woman at the counter commented that it takes 7 hours to drive across it on I-70. “It’s a long state,” she said. Little did she know how right she was…

Three hours later, I took a short detour to Wilson State Park (in Kansas, not the Wilson State Park in Michigan, just a couple hours North of here). It is located, along with several other parks and nature areas, on the shore of Wilson Reservoir/Lake, which was created by the damming of the Saline River. I discovered it by accident on the way back from California in 1994, and I was seeking to refresh my memory. As I remembered, this area puts paid to any notions of Kansas being nothing but flatland and cornfields.

After an enjoyable break, I filled up the van with gas, reset the trip odometer, and got back onto I-70E for another lengthy stint behind the wheel. And then It happened…

Rounding a curve on the freeway at the legal speed limit of 70MPH, my power steering suddenly (and immediately) failed. This sent me into a physical struggle to keep the van on the road, which I was able to do, and with a great deal of good fortune, I passed a beautiful blue sign: REST AREA – 1 MILE. I managed to wrestle the beast (no easy task, believe me) into the rest area, get it whoa’d down, and actually park decently between the diagonals. It was right there that remaining contents of the cooling system were deposited.

Well, it turns out that the water pump died, casting off its belt, which in turn controls every other belt driven mechanism under the hood, including the power steering (obviously), air conditioning, and alternator. Waiting (too long) for a tow truck, and with no wireless signal available, I opened the laptop and started typing:

Alas, the van threw a belt, or rather, ‘the’ belt, just before reaching Salina, Kansas. The first indication was a loss of power steering, which is not fun at 70 miles per hour. Fortunately, there was a rest area (where I am typing this right now) just a mile down the freeway, so I stopped there. That is where this story must pause, as I do not yet know the outcome, sitting here charging the computer and getting eaten by mosquitoes. A storm is approaching from the direction I am facing (North, more or less) with lightning, so I am cheering on the charger to get past the current 96%, no wait, 97%, before it hits.

Over and out (for now).