Pretty Good Solitaire Mac Edition 2.12 (and more!)

September 2nd, 2010 by Gregg Seelhoff No comments »

A new version of our premier Solitaire for Mac OS X is released.

Pretty Good Solitaire iconThe autumn release schedule at Goodsol Development was kicked off with the release of Pretty Good Solitaire Mac Edition 2.12 on August 17th.

Pretty Good Solitaire Mac Edition is a Solitaire program that (currently) supports 200 different solitaire games.  PGSME 2.12 is a maintenance release that fixes a number of minor issues that have been reported by users.  You can download this free update here.  All registered users will be eligible for a free upgrade to PGSME 2.2, with 300 games, when it is released later this year, so Buy Now!

There is something for Windows users, too.

Of course, the flagship product is Pretty Good Solitaire (for Windows), so the same day also saw the release of Pretty Good Solitaire 12.4, which increases the total number of different Solitaire games to 750 (adding 10 new games).  You can purchase a copy here or download an upgrade/trial version here.  This release is the special 15th Anniversary Edition.

Unlike other Goodsol titles, these two versions of Pretty Good Solitaire are built from completely different code bases, in different languages, by different programmers.  I developed the Mac OS X version, and Thomas Warfield has been writing/improving the Windows version since 1995!  The dual release turned out to be almost double the usual work for a single “SKU” release (for Thomas, not me) so the upgrades are likely to be staggered going forward.

Even more is yet to come.

In the coming months, there are going to be releases every couple of weeks, with upgrades to all of the other major titles in Goodsol’s product lineup, including Most Popular Solitaire, Goodsol Solitaire 101, Pretty Good MahJongg, and even Action Solitaire.  Those who are paying attention will note that a “couple of weeks” have already passed, and true to this schedule, FreeCell Plus 4.02 was released two days ago.  I will write more about that next week.

Enjoy!

A cloud is forming

August 20th, 2010 by Gregg Seelhoff No comments »

Changes to this Gamecraft blog are underway.

I am currently in the process of revamping Gamecraft to make it more useful for readers and easier to find the desired content.  I am also trying to improve the marketing and SEO (search engine optimization) for the site in order to bring more visitors, and hopefully the changes will help them become regulars here.

The quest to improve my blog began with a post in the asp.members.marketing newsgroup of the Association of Software Professionals.  Responses from fellow members suggested that there was not problem with the focus or content of the postings, but rather that the organization was not ideal, especially for new visitors.  In particular, it was suggested that I add a “tag cloud” to the side bar, which I have done, and tag my posts appropriately, which process is underway but may take a while (since there are nearly 300 posts to update).

To be honest, I never really considered a tag cloud before, but now I definitely see the benefit, making the topics of the blog available at a glance.  I actually needed to make some CSS modifications to the theme in order for the one here to appear more as a cloud and less like individual lines of alphabetical keywords.  For the moment, certain keywords (e.g., “Mac”) are overrepresented based on recently activities and releases, but it is an improvement.

Other changes included moving the ‘Archives’ column to the far right, so that its length does not displace other groups, moving the ‘Categories’ column up, and adding a ‘Recent Posts’ column.  (At least some of these changes may have been made previously and then lost in a WordPress or theme update.)  In the near future, I am planning an ‘About your host‘ page for those who want to know more about me and my extensive experience, as well as a ‘Best of Gamecraft‘ section with links to some of the most useful and popular articles.

I sincerely invite any suggestions or criticism of the style, content, and organization of the blog, either via comments to this posting, or directly via email to seelhoff@sophsoft.com.  Praise, of course, would be accepted as well.

Pretty Good MahJongg Mac Edition 1.0

August 5th, 2010 by Gregg Seelhoff No comments »

A favorite product is now available on a new platform.

This week, Goodsol Development released Pretty Good MahJongg Mac Edition 1.0, our very first published Apple Mac OS X version of this award-winning title.  Pretty Good MahJongg Mac Edition is a MahJongg solitaire game which has 160 different tile matching layouts, but also 32 original solitaire games played with MahJongg tiles, as well as a custom layout editor (only available in the full/purchased version).

The develoment of Pretty Good MahJongg Mac Edition took longer than originally anticipated, due at least in part to working on three different products for three different platforms simultaneously.  The end result, though is very satisfying, and this Mac Edition has all of the same gameplay features as the Windows version, including downloadable tile sets.  The next major update of PGMJME will bring the number of solitaire games (and tile matching layouts) even with its 8-year-old sibling, but that is in the (not too distant) future.  For the moment, I am looking for the expected 50% productivity gains on the other two major upcoming releases.

You can download a trial version of PGMJME 1.0 from the Mac Edition web site, and you can purchase Pretty Good MahJongg Mac Edition for only $24.95.  (Registered users of the Windows version can find a link for a discount coupon on the Goodsol web forum.)  What a deal!

I challenge anybody to catch me in Free Klondike (one of the original solitaire games in PGMJME, and my favorite) playing in climb mode.

RIP: Mike Dulin (1943-2010)

August 1st, 2010 by Gregg Seelhoff 3 comments »

A friend and colleague passes away.

Last Wednesday, July 28, 2010, Michael Dennis Dulin died from complications of pulmonary fibrosis; he was 66.  [Here is his Obituary from the Janesville [Wisconsin] Gazette.]

Mike Dulin

Mike Dulin at SIC 2006

Mike Dulin was the founder of SharewareJunkies.com and other related web sites.  Within the shareware industry, he was perhaps better known as a perennially upbeat attendee at industry conferences, an advocate for software entrepreneurs, and the driving force (and voice) behind SharewareRadio.com.  (He interviewed me for his site back in 2007.)  Mike always had a story at the ready, including some amusing anecdotes from his previous career as an air traffic controller at Chicago O’Hare.  He qualified as a true “character” (in the best way), living and working in both Finland and Guatemala, commuting a couple of times each year.

At the time of his death, Mike Dulin was serving as the President of the Association of Software Professionals, a position to which I was instrumental in appointing him back in 2008 (when I was ASP Chairman of the Board).  Mike remained in that role and was still performing his duties for the ASP at the Software Industry Conference less than two weeks before his passing (and I am sorely disappointed that I was not there at SIC 2010).

Rest in Peace, Mike.  You will be missed.

SIA Foibles

July 26th, 2010 by Gregg Seelhoff No comments »

The return of the Software Industry Awards is somewhat flawed.

As I wrote in a previous post, Software/Shareware Industry Awards are back, there were some questions yet to be answered about the Software Industry Awards under their new process and new name.  In particular, I wondered whether a list of nominees, or at least software categories, would be published prior to the conference, being especially concerned about how (or even if) game software would be handled.

Unfortunately, neither names of nominees nor a list of software categories appeared prior to the Software Industry Conference at which they were awarded.  This means that no software developers would attend the “Gala Networking & Awards Dinner” solely in support of nominated products.  Apparently, the overall conference turnout was noticeably smaller than in recent years, too (which is not any sort of indictment, as I prefer smaller, more intimate gatherings).

I did also mention that “all questions should be answered” after SIC, but that was almost not the case, as the official list of SIA nominees and winners has not, to my knowledge, been published outside the Association of Software Professionals (and only within the ASP by unofficial sources).  Aside from publishing the names of the software nominees beforehand, the conference organizers should also be proactive in promoting the results.  (After more than a week, the awards winners should expect to at least be able to link to an official results page.)

The good news is that “GAMES” was one of the categories in which awards were presented (of only eight).  The bad news is the nominees demonstrate a pretty serious misunderstanding of this segment of the industry.  I applauded the positive idea that “the nominators are asked to consider only software and services offered by MicroISVs”, a concept that seems to have been seriously ignored.  (I suppose that poor selections are better than none at all, which is what the educational software industry received.)

The SIA winner in the Games category was “Sam & Max” by Telltale Games.  The problem, of course, is that Telltale is nowhere close to being a MicroISV; they have had (literally) millions of dollars from outside investors, and 67 employees listed on their Our Team page (including an old friend, Tom Byron).  [I could also mention that "Sam & Max" is not a product, but rather a series of more than a dozen different episodes.]  One of the other nominees was “Family Feud” by iWin, which is also far larger than any MicroISV, listed as the #4 casual software retailer in 2009.

Therefore, the winner in spirit is “Fantastic Farm” by Kristanix, which is a fellow ASP member and, according to the web site, consists of only two people, hence a proper MicroISV.  Alas, this kind of victory comes with nothing of value, except perhaps this link to the Fantastic Farm page.

Here are a few more selected SIA results.

The winner in the “GRAPHICS SOFTWARE” category was “SnagIt” by TechSmith, a local company for which I worked briefly.  I was actually the sole programmer on SnagIt way back in 1992-1993, developing (only) version 2.1.  (They are now up to SnagIt 10, so I take zero credit.)

The winner in the “MULTIMEDIA MUSIC/VIDEO SOFTWARE” category was “Blaze Media Pro” by Mystik Media; our company once did some artwork for Blaze Media Pro (also many years ago).

The winner in the “PROGRAMMING TOOLS/UTILITIES” category was “Beyond Compare” by Scooter Software; this is a product that I use almost daily and is extraordinarily useful.  (As a coincidence, I happen to be wearing one of their “What’s the DIFF?” t-shirts at this very moment.)  I also use another nominee in this category, “CSE HTML Validator” by AI Internet Solutions.

Two nominees in the “ISV SERVICES” category also deserve mention: Freelance Works (Martha Seward), who helps promote our games published by Goodsol Development, and Software Promotions (Dave Collins), who use to do similar (but does not handle games anymore).

For those keeping score, the three remaining categories were “BUSINESS APPLICATION, DESKTOP”, “BUSINESS APPLICATION, SaaS”, and “INTERNET TOOLS”, for which I have neither the interest nor the time to write anything clever.

The ASP becomes the ASP

June 25th, 2010 by Gregg Seelhoff No comments »

The ASP is renamed to the Association of Software Professionals.

After 23 years of leadership in (what was known as) the shareware industry, and now following the current trend, the ASP has dropped “Shareware” and officially changed its name to the Association of Software Professionals.

The change has been in the works for a while, but it was officially announced on the ASP blog in an article entitled, Shareware is dead – long live shareware!

A press release about the change can be found on Newswire Today, and proper coverage of the name change was recently published by Dr. Dobbs Editor, Jon Erickson, in a blog posting, Shareware: Thanks for the Memories.

When the ASP was formed back in 1987, it was out to promote the concept of “shareware”, a marketing method (n.b., not a type of software) where a user was able to try software before making a purchase (or not), and also to help independent developers/publishers learn how to use shareware (and other methods) to become successful.

The former goal was achieved long ago, as almost all mass market software now has a trial version available.  (See my Mission Accomplished! posting from a couple of years ago.)  The only skirmish remaining was that over the word “shareware” itself, but the ASP has now de facto ceded that control (for the sake of lasting peace, I suppose).  One only need look at this thread at The Business of Software to observe the rampant ignorance even among (nominal) developers, so I can certainly understand declaring that a losing cause.

The latter goal is actually an ongoing mission, and the ASP (regardless of the name change) remains the single greatest resource for independent software developers and publishers.  At only $100 per year, it is quite possibly the best money we have ever spent for our business.

I Resolve – 2010

June 21st, 2010 by Gregg Seelhoff 1 comment »

I Resolve

To do what I want,
and to make a living,
To enjoy myself
for a long time.

To have priorities,
and to stay on task,
To keep in touch
with friends and colleagues.

To learn my craft,
and to teach what I know,
To help when available,
and reach those I can.

To be safe and secure,
and to remain aware,
To have clean surroundings
for a simpler life.

To take care of myself,
and to watch over my family,
To find the energy and integrity
to be true to me.

HNT: Value Existing Customers

June 11th, 2010 by Gregg Seelhoff 1 comment »

How Not To Value your Existing Customers

In business, existing customers are very valuable.  These are people or companies that have found your product and like what you have to offer enough to (importantly) actually purchase.  They are the best source of additional purchases (and only source of software upgrades) and may provide referrals and positive word of mouth.  It is easier to sell to an existing customer than to locate and establish new customers.  However, if you want to take it to the extreme, and simply treat your customers as “cash cows” rather than with the proper respect, here is how you can do it.

First, it helps to be a large, unfeeling conglomerate, such as Corel, with a record of collecting brand name products and adding little (if any) real value; it is much harder to disrespect customers as a small company headed by people whose livelihoods depend on them.

Of course, there need to be cash cows, I mean customers, to exploit, so the quickest way to acquire them is to just buy a well-recognized company that already has loads, such as WinZip.  Pay no attention to the fact that their single (excellent) product that created and defined a market has since become a commodity that has numerous competitors, many of them free, and whose primary functions are built in to all major operating systems.  It is even better if the product was widespread due to there being few incentives to purchase the original product (save abiding by the license) and a promise of free upgrades for those of us who did the right thing.

Now you have a product which is unnecessary for the vast majority of computer users, plus a list of customers who paid for the product back when it was necessary, many (if not most) more than a decade earlier, and who would reasonably expect free upgrades (should any be desired).  What can you do now?  I know: Spam.

Validate all of your contact addresses by sending a whole slew of messages selling products completely unrelated to the original product (except by being owned by the same stockholders).  When that fails to do anything but annoy your customers…  wait…  no not your customers, but the customers of the previous company…  it is then time to do a new build of the product, complete with a new version number and no discernible new features.

With the “new” version, send out emails to all previous customers of the product to indicate, above all else, that the days of free upgrades are over and that they are expected not only to upgrade, but to pay the new masters (for what they already have, and probably no longer need).  When that does not work, either, repeat the messages on a regular basis, all with slightly different messages (and increasing version numbers), but never forget the “give us your money” message:

Your WinZip Software – Upgrade Available

Upgrade your single-user WinZip Standard license to WinZip 14 now…

Your WinZip software is out of date. You are currently running an older version of WinZip, and now is the time to upgrade.

Your WinZip software is out of date. You are currently running WinZip 6.3 Standard, and now is the time to upgrade.“  [No, actually I am running WinZip 9.0 SR-1, the last free update; version 6.3 may be the last version I purchased, back in 1997.]

Exclusively for WinZip customers: Upgrade your single-user WinZip 6.3 Standard license to WinZip 14.5 now, and save 50% or more off the new license list price.

Your WinZip software is out of date. You are currently running WinZip 6.3 Standard, and now is the time to upgrade.“  [OK, let's be clear: "running" is not really the case; I cannot remember the last time I actually used WinZip for anything.]

So, now you have properly alienated existing customers.  Your product has gone through a number of version numbers (10.0, 11.0, 11.1, 11.2, 12.0, 12.1, 14.0, 14.5) yet the web site lists no significant feature that is not already present in the 9.0 version (from 2004), which still runs just fine, by the way.  I hope it was worth it (moreso than, say, actually creating value).

This sort of thoughtless approach also works nicely in other areas of business, not just software.  For instance, you could be a large chain video rental store, like Blockbuster, and introduce a rent-by-mail service to take on your most significant competitor (Netflix).  Offer a similar service, at a comparable price, with an added benefit than your competition cannot match: the ability to exchange a mailed rental for a store rental when you are finished.  You will get lots of customers who can get titles unavailable in the retail stores by mail, can keep them as long as they want, exchange them at the retail store for a newer release, keep those as long as they want (while a new title is sent by mail), and have a constant supply of rental movies to watch.  Brilliant! [seriously]

Where does one go from there, though.  With a nearly unassailable product offering, and happy customers, you cannot just sit there and leave well enough alone.  No, first you need to raise prices, and then email every current customer to let them know that they are “grandfathered in” to the original price, but be sure to emphasize that they are now locked in, so if they let it lapse, the new price applies.  Next, change the program, so now for the same price, the mailed rentals are not sent until the in-store rentals are returned.  Then, inform customers (like you failed to do last time) that now the number of retail exchanges is limited.  Never, ever, consider reducing the cost to match the reduced services.  (My prediction is that the next move will be to add due dates to these rentals, just to be sure that we switch to the competition.)

Anyway, there are two good examples of how to mistreat your valuable customers.

On the other hand, one could always recognize customer value in simpler ways, like abiding by agreements and promises, and not being so obvious about caring only about their money.  We love our customers; they allow us to stay in business and continue to do what we truly enjoy.

Accidentally Cheating at Backgammon

June 7th, 2010 by Gregg Seelhoff No comments »

Why players perceive unfairness in Backgammon software

On a regular basis, inexperienced Backgammon players voice opinions about how a certain computer program or game server cheats.  The stochastic nature of the game lends itself to this kind of perception on the part of human beings.  Generally, there are a few primary reasons for this type of belief.

First, novice players often fail to recognize the complexities of the game of Backgammon, so what they perceive as an unnatural number of “lucky rolls” are not (necessarily) due to luck, but rather due to skillful play on the part of the opponent.  Expert players tend toward positions where a greater number of rolls would be considered good (i.e., “lucky”).  A higher percentage of good moves tends to make the dice appear biased in ones favor, and it is also key to good checker play.

In many cases, players also fail to understand the nature of truly random numbers.  It is often stated that, say, a certain number of doubles in a row indicates…  excuse me…  “proves” that the virtual dice are unfair when, in fact, a truly random number generator would have to produce any arbitrary sequence (whether or not a pattern is perceptible) given enough rolls.  Of course, we are talking about pseudo-random number generators (PRNG), so they are, by their very nature, not truly random.  However, one would have to do an actual study/count of the dice rolls to make any conclusion about any particular PRNG.

The reason for this need to analyze a PRNG scientifically, rather than anecdotally, seems fairly obvious.  Human beings have selective memory, which means that we tend to recall things that are out of the ordinary, so a number of doubles in a row stands out, whereas a statistically identical sequence of rolls that do not seem to show a pattern are not reported.  Likewise, a few very good (or very bad) rolls are more memorable than many run-of-the-mill rolls.

Related to this is the concept of apophenia, which is the human “experience of seeing patterns or connections in random or meaningless data.” [from Wikipedia]  Our minds have evolved to recognize patterns, so we can sometimes perceive things that are not there.  This is how people see images in clouds, hear music or sounds in white noise, and imagine divine imagery in oil stains or burnt toast.

All of these factors make it very easy for an average person to perceive unfairness in Backgammon software or servers (even in games against other human beings), and even trained experts can be fooled.

How experts demonstrate that Backgammon software is fair

There are a few key points that are usually made by experts when arguing that a particular Backgammon program does not cheat.  First, of course, one generally describes some of the aspects of the perception problem, as listed above.  In particular, reports are almost always anecdotal, so they can be dismissed quickly as having no scientific validity until somebody does an actual count and statistical analysis.

To dismiss accusations of manipulated dice (by software), the suggestion is to manually input dice rolls, which most (decent) programs allow, according to the rolls of physical dice recorded meticulously, or by changing to an alternative PRNG.  If the results stay statistically consistent, that argues against the idea that the rolls are manipulated.  Another common argument is that programs can “look ahead” to see which rolls are upcoming and make moves based on this prior knowledge, and manual input of dice rolls also removes this possibility.

Another method to test if dice rolls are being artificially manipulated is to switch sides and look for discrepancies.  In other words, start a game (or save one in progress) with a particular random number seed and play the rest of the game, recording the dice rolls for each side.  Then, restart (or load) the game and play the opposite side.  If the dice rolls remain the same, then no manipulation was done to bias the outcome.

A final, less scientific, approach is the simple “Why?” method, wherein one looks at the reasons why (and how) a programmer might decide to write a biased program.  Speaking as the primary programmer for MVP Backgammon Professional, from MVP Software, I can assure you that cheating would add a whole extra layer of (unwanted and unnecessary) complexity, so I certainly did not and would not include such code.  In fact, accusations of unfairness were troubling enough to MVP for the first version of the program that our version has a replaceable PRNG library so one can write ones own (with whatever extra checking is desired).

Possibility for Backgammon software to cheat without malice aforethought

This whole topic was reinvigorated when yet another thread appeared on rec.games.backgammon recently, entitled “Jellyfish.  Cheating or just Lucky” [links to Google groups].  Through dozens of messages, some people suggested/argued that the Backgammon program Jellyfish seemed to cheat, while two other popular programs, GNU Backgammon and Snowie, did not.

Interestingly (and, n.b., anecdotally), when testing MVP Backgammon, I had a similar experience.  I was simply testing relative strength with a series of 25-point matches between my program and these others.  Whereas the strength of my neural network was comparable to the others, it got beaten significantly by Jellyfish when it rolled the dice.  When MVPBG rolled, it was much closer.  As a final test, I played one match with manual rolls, and it was again close.  At this point, I figured out the likely problem (leaving alive the possibility that it was just sheer chance).

The whole purpose of a neural network is to discover connections and patterns in provided data, and the conclusions are affected by the design of the inputs (essentially, which raw data is supplied) and, of course, the requested output(s).  In our design, we basically supplied the number of checkers on each point (in a special format), the number on the bar, and the number borne off.  This specifies a pure position in the game (with no knowledge about moves or rolls), and our outputs were designed to estimate the probability of each potential game outcome (win, loss, or winning/losing either a gammon or backgammon).  The neural network was only used for evaluation; the selection of moves was based on the evaluation of the resulting position (and cube decisions were calculated mathematically from the neural network outputs).

Theoretically, we could provide irrelevant inputs (e.g., outside temperature) and during training, their influence on the network would tend toward zero.  However, providing somewhat related data, such as the last game move, could give the neural network just enough information to begin to anticipate an outcome and bias the outputs.  More directly, providing the current dice roll, or perhaps designing the neural network to rate individual moves based on that roll, gives the network additional information that could be used to actually predict the next pseudo-random roll, especially if the particular PRNG is not very good.  After all, guessing what the next roll would be based on the position and previous roll is exactly the kind of task that neural networks are designed to solve.

Based on this observation, I suggest that it is possible that the programmers of Jellyfish may have inadvertently, and with no malicious intent whatsoever, provided their neural network with just a little too much information, and it may have taken that information to (at least partially) figure out the random number sequence and then draw conclusions that were not intended.

This would be a very interesting (and perhaps slightly startling) example of emergent behavior in a computer system.  It would, however, explain why a program could pass all of the tests to “prove” it is not cheating, but still have an observable bias when using its own dice.  I suppose we could call it “computer intuition“.  Of course, without more scientific study, it could still just be called “luck“.

Software/Shareware Industry Awards are back

May 27th, 2010 by Gregg Seelhoff 1 comment »

After missing a year, the SIAs return for 2010, slightly renamed.

Recently, the Software [nee Shareware] Industry Conference unveiled a brand new web site design, which is much improved from the previous web site.  Kudos to Sue Pichotta of Alta Web Works for a job well done (and no disrespect for the previous designer, who I also know).

Perhaps lost in this story, though, is the fact that the updated web site quietly announced the return of the Shareware, I mean, Software Industry Awards and a new (hopefully improved) process for awarding them.  According to the Process & Rules page of the site, the awards are now determined by a score of unidentified “software industry insiders”, rather than by the whole of the industry, which should reduce the amount of bizarre results (from either manipulation or voter laziness) at the risk of making them less prestigious, no longer being truly voted by peers.  I do not know who any of these people are, only that I am not one of them and that I hope they appreciate our games.

One definite positive in the new procedure is that “nominators are asked to consider only software and services offered by MicroISVs“.  This means that products like Google Earth and Windows Live Messenger (Microsoft), both 2008 winners, should no longer be eligible, getting the focus back to the independent developers the awards were originally meant to recognize.  (We also go by the title, “the developers formerly known as shareware publishers“.)

The only obvious omission is a list of categories for which the awards will be presented, and specifically, whether any game categories are included (and if so, how many).  The last time games were recognized was 2007, when our own Pretty Good MahJongg won the SIA for Best Non-Action Game.  Hopefully, the list of nominees (and, hence, categories) will be announced prior to the conference; that would almost certainly increase participation in the “Gala Networking & Awards Dinner”, which attendance was reportedly dropping.

In any event, all questions should be answered in Dallas, Texas, where SIC will take place July 15-17, 2010.  Perhaps I will see you there.