Bad Luck and Poor Planning

My previous post seems to have been somewhat prophetic.

I have not been able to find much time to write for this blog recently, and since the last entry, my life has taken a few sharp turns. December is usually a busy month anyway, and looking back to last year, I see that the month was entirely silent. This year, we had one project that was slipping and, thus, impacting another project. With two family birthdays early in the month, the holiday season, and an upcoming vacation, it was fairly difficult to maintain focus. It was stressful.

Then, in the midst of this, an event occurred and put everything into perspective rather quickly. My wife’s father died suddenly, albeit not unexpectedly, and really put a damper on both productivity and our ability to enjoy the holiday season. This bit of bad luck is not something that one can control, and when it happens in this manner, one is almost instantly thrust into what seems to be an alternate world.

During the ensuing confusion, I was able to observe the results of poor planning on the part of my father-in-law. Although he had been fairly clear about his wishes, and had put many of his important papers in a single place where we knew to look, he never actually wrote any of this down or made it official. Instead, those who are most affected by and emotional about the death, and least likely to be fully rational, are forced to be making important decisions based on “what he would have wanted”. Suffice it to say that despite his best intentions and a reasonably simple estate, the aftermath is somewhat messy.

The practical lesson to be taken from this is that one should always have a proper will prepared and filed, if only to relieve grieving relatives from the burden of making decisions. We are going to take care of this ourselves, just as soon as I can get my wife back here, physically and otherwise.

Normally, our office closes for the two weeks around the end of the year. Due to the placement of the holidays this year, the scheduled closing does not correspond with school vacation times, so we have split between having a vacation this week and next and (me) having next week and the following week off. The last day before the break is traditionally a half day of work (if even that), with the afternoon devoted to a party and games. Today, though, my development ran into the afternoon, and when I had completed that, I was forced to recognize that I am the only one left here. (Even the cats are away visiting, though I do have the bird.)

Sigh.

Anyway, before I exit stage left (at least for today), there is a seasonal quote to share:

Games, Spirit! Games!! — Patrick Stewart, as Ebenezer Scrooge
[from A Christmas Carol (1999)]

Alas, Charles Dickens omitted these precise words from the original book, though the games themselves were certainly included.

Luck and Planning

Let me expound on the relationship between planning and luck.

In response to my Marketing experts post, Scott commented:

“Great advice, and I think you’re largely correct. The point I question is how you listed ‘Good Luck’ as a separate point. While luck in the sense of getting things to go your way is real and important, I would consider coupling that with your ‘Good Planning’ point, as good preparation and foresight is usually what leads to “improved karma’, as you put it.”

In other words, as the 1st century Roman philosopher Seneca wrote, “Luck is what happens when preparation meets opportunity.” I certainly agree with that, and I would be in no position to argue that point (and neither would Seneca, for that matter). Planning and luck are definitely related, as good planning allows one to take advantage of opportunities and adjust to setbacks. This gives the appearance of simple luck, when a significant portion of the outcome is due to preparation.

The best real world example of this that I can think of is the game of Backgammon. Moves in the game are based on the random roll of a pair of dice, and expert players have the ability to optimize their position for any outcome. Novice players often believe that expert opponents get lucky rolls, when the truth of the matter is that experts work towards having more good rolls and fewer bad ones. This phenomenon is so pronounced that one can read the rec.games.backgammon newsgroup and regularly witness accusations of fixed dice, whether the alleged cheating is by computer program, online game site, or even another human player.

However, that “luck” is based on situations for which one can plan and prepare, whereas in my posting, I was referring to the type of luck over which one has no control at all, or may not even understand. For example, economic factors affect sales in unpredictable ways that vary by product type, whether that be by leading, following, bucking, or even ignoring a trend. One also has little or no control over the competition or the direction a particular market goes. This type of luck can be either good or bad.

Let me provide real examples of both bad and good luck that occurred to us at SophSoft in rapid succession. To set the stage, during August and September of 2001, we were developing a self-funded game title. Around that same time, as a contingency plan, I had scheduled a meeting about another job, and it went very well. The game, which had building demolition (as with a wrecking ball) as its theme, was progressing, too.

Then, on September 11th, the world changed as a result of a terrorist attack. Suddenly, a game about tearing down a building was absolutely not entertaining, and we could not bring ourselves to work on the product, much less publish it, in the wake of the tragedy. With the contingency job, which had almost been a done deal, that company immediately froze all hiring indefinitely. Some general preparation helped mitigate damage to our company, but there was no way we could have planned for an event of such global magnitude.

In the following days, we all mourned, and then our company set about to assess the situation. We had little funding with which to build a new game, and contracting prospects were bleak. The only solution was to work to re-theme the existing game prototype on a shoestring and hope that everything would work out decently. After a few weeks of moving in this direction, I received an email inquiring whether I (specifically) was available to do contract work in a game genre I knew intimately. To make a long story short, that unexpected contract saved our company. Sure, we had a plan in action and had prepared the groundwork for receiving such an offer, but the fact that an unsolicited contract offer arrived when we most needed it was absolutely lucky.

To clarify one final point: my advice for improving ones luck was “work to improve your karma“. Fundamentally, the items that I chalk up to luck are those over which one has no control, that basically happen as a result of (mathematical) chaos in the universe. By definition, one cannot exert discernible influence over these occurrences, so instead of suggesting that one hope or pray, I inserted my own version of Pascal’s Wager:

Strive to be a Good Person; it may or may not influence luck in your favor, but in any event, you will always feel good about yourself, and others will tend to help rather than hinder you in your endeavors.

You make your own karma.

Quotes of the Day

Here are a couple of quotes that caught my attention.

Me, too. I’m In-de-pen-dent.” — Rudolph the Red-Nosed Reindeer
[from Rudolph, the Red-Nosed Reindeer (1964)]

I was doing these visualizers for WinAmp, this plugin where you have 3D dancing girl at about 10,000 polygons. Back in 2000, that was pretty respectable. There were lots of bounce physics on those. I came up with the proper solution to the breast bouncing one night over seven Guinnesses with a waitress. I showed her my laptop, and what I was working on, and she happily jumped and bounced for me.” — Paul Steed
[from recent Gamasutra interview]

Keep smiling.

Marketing experts

Most marketing “experts” are nothing of the sort.

The problem with self-proclaimed marketing experts is that they primarily market themselves. For the most part, marketers are dealing in something of a psychological art; marketing is not a science. Researchers can conduct experiments to show certain aspects of the process, but they cannot measure everything. However, marketers work in the area of human interaction, outside a controlled environment, so they have little to offer beyond opinions. Results can suggest a correlation between marketing and sales, but there are too many variables to be sure, and most so-called experts do not actually offer real data to support their conclusions.

In my opinion, sales success results from some combination of five ‘good’ factors:

  1. Good product
  2. Good planning
  3. Good marketing
  4. Good timing
  5. Good luck

There is no doubt that marketing can play a role in building a successful product (defined broadly), but as a scientist might say it, good marketing is neither a required nor sufficient condition for success. I am getting tired of reading opinions stated as fact by people who do not (and cannot) fully understand all of the factors involved, instead chalking every success and failure up to marketing.

Worse yet are those who are so shallow as to believe that the only measure of success is money, and that a product which earns more is necessarily more worthy than one that makes less profit. That flawed concept then becomes the product that is marketed and, alas, some people buy in. Sadly, they sometimes do so in a literal sense.

Here is what I have experienced. The most successful business people I know do not proclaim themselves experts; they earn respect without demanding it. The wealthiest people I know are not prone to declaring how much money they make and do not use their balance sheet as a scorecard. Those who crow about their own importance and/or earnings at every opportunity just strike me as pathetic.

Personally, I generally judge my own success by criteria other than money. I certainly want more money, and I am willing to work hard to earn it. However, I have made many decisions in my life and career that are oriented toward other goals. I value my family, my quality of life, and my personal integrity higher than my checkbook balance. It is important to me that I enjoy what I do for a living, and that I do quality work. My wife and I try to raise our children in a loving environment where they can thrive and become productive citizens (without the insecurity that might cause them to always seek validation by demanding public attention and acknowledgement).

Anyway, we were talking about marketing. (Remember marketing? This is a rant about marketing.)

Marketing advice and ideas should be taken as opinions, mixed with ones own values and common sense, and then flavored to suit the product and circumstances. There is no right answer, and there are always factors beyond ones control. However, there are some wrong answers and obvious mistakes to avoid, and these lessons are probably more valuable than any success story.

The five good factors are listed above in order from most to least control, so here is my advice:

  1. product (full control) – create something of quality
  2. planning (much control) – prepare for opportunities and setbacks
  3. marketing (some control) – think about your customers
  4. timing (little control) – either hit the window or fail early
  5. luck (no control) – work to improve your karma

Of course, that is merely my opinion, and comments are certainly welcome.

Microsoft Visual Studio 2005

Here is my quick review of this updated development system.

Over the weekend, I took a break from productivity to finally check out Microsoft Visual Studio 2005. The DVDs had been sitting here quietly staring at me ever since I got them early this month, so I finally made some time to install it and see how it measures up to Microsoft Visual Studio / Visual C++ 6.0, which I currently use (and prefer) for the bulk of my development work.

To set the scene, I already had Microsoft Visual Studio .NET 2003 on my system, though I never bothered to try the 2002 version. The only good thing about this product was that it would peacefully coexist with the earlier (not .NET) version, save a few stolen file associations; otherwise, though, the product was a dog. In preparation for a review, I had started on my second full page of notes about problems before I gave up on VS .NET 2003 entirely. I simply did not uninstall for fear (later proven justified) that it would mess up my productive and usable development system.

I had read a few glowing reviews of Microsoft Visual Studio 2005, so I was hoping that they were accurate and that I could safely upgrade for new projects, since Microsoft seems to be actively campaigning to eliminate my current system. Apparently the phrase “compiler that is seven years old” appears on some list of talking points, as though it were derogatory. Lame.

Well, I uninstalled VS .NET 2003 and began the installation of VS 2005. The first thing to notice is that somebody in marketing figured out that “.NET” does not sell product (but does allow “.NOT” comments), and therefore that portion of the name is gone. The installation was smooth, and faster than for the predecessor, although the stylized graphics overlaid upon the same three people looked like they were either peering through a jungle gym or possibly prison bars. The selection of models was interesting, too.

After installation was complete, I went to create my first simple project. The missing “.NET” was the elephant in the room, as none of the options mention .NET by name, and knowing that it was a large part of this product, I was not sure what to avoid. Absolutely the last thing I want to do is accidentally build a game that requires another 24M download. I believe that “CLR” (for Common Language Runtime) is the first euphemistic acronym I have encountered in my career, though I could be forgetting something. I will also note that there are no project options for creating a static library (.LIB), nor for a standard DLL, unless it uses MFC. (Yuck.)

Anyway, the answer was that “Win32 Project” implies no .NET or CLR dependency. The empty project was created nicely, and I went to type a copyright symbol in my file header. No dice. It seems that the standard [Alt][0][1][6][9] does not work in the editor, a major oversight in my book. Wait a second. It works if I toggle the [NumLock] key to on. It also apparently works in a “text file” but not in a “C++ file”, so it may have something to do with the silly code outlining.

The good news is that Microsoft finally figured out how to make a help window pop up maximized, which is a massive improvement from VS 2003 being challenged to even get the miniscule window onto the correct monitor, nevermind properly sized. Unfortunately, the default for help is to hit the internet first before checking the almost 2G of help that I just put on my hard drive. That is an amazingly stupid default. Worse, I was just checking for WinMain() documentation and it just jumped to the first (wrong) thing it found, and when I got to the correct page, the declaration for the function was simply wrong!

I will also mention that much of the user interface is gratuitous fluff. There is no purpose to the non-standard menus, nor to the altered toolbar. Some standard items from version 6.0 were altered in strange ways that just made them harder to use. Whoever thought that pulldown menus to select an output window was a better idea than the tabs used previously was delusional, and the concept of windows (or options) appearing and disappearing based on context is much more confusing than useful.

When it comes to interface customization, though, the team struck out by removing icons from functions that had them in previous versions, so for my PC-lint toolbar icon, I can have text only, draw my own by hand (no pasting!), or select from a small palette of irrelevant images. (I now click an eight ball to lint a file, or a smiley face to lint the whole project.) The new icons provided look nice, but eliminating icons was a definite, if minor, step backwards.

So here is the heart of the matter for using VS 2005: actual development. I was able to use the editor and it did not seem as sluggish as the 2003 version. I was able to ignore the outlining and annoying highlighting fairly quickly so productivity there was not adversely impacted. I loaded up a version of Most Popular Solitaire and attempted to compile it. There is a new set of warnings about certain “unsafe” library calls, which were easy (albeit unnecessary) to address, and then the project compiled. It is also executed just fine.

This review needs benchmarks, of course. Actually, I only realized it needed benchmarks when I noticed a discernible (read: obvious) difference in compilation speed. One feature that VS 2005 advertises is simultaneous compilation, which seems like it should benefit my multi-processor development system. A complete rebuild of the Most Popular Solitaire project consists of three executables: release, debug, and checked. I timed a complete rebuild of the same project on my system, first with MSVC 6.0 and then with VS 2005 (allowing for the possibility of a speed advantage for the latter due to drive caching).

The difference in compilation speed was dramatic, 67 seconds versus 5 minutes 12 (312 seconds). The only problem is that the “compiler that is seven years old” was the quick one. The old compiler is roughly four and a half times the speed of the “improved” version. When I am programming, I compile quite often, and this difference between the two products could definitely impact my productivity adversely. Making the switch to VS 2005 would cost me an hour for every 15 rebuilds (of a fairly small project). Yikes!

The bottom line is that Microsoft Visual Studio 2005 is only decent when compared to its immediate predecessor, but the .NET line of this development system has still not reached the functional level achieved by the last of the purely native compilers, although it is getting closer. If one needs a feature unique to VS 2005, such as smart device emulation or .NET compilation, then this system is usable. If you are, like most shareware and PC game developers, developing native games or applications for Windows, I recommend sticking with Microsoft Visual Studio 6.0 (with all of the service packs, of course).

Happy Curmudgeon Day

We have another celebration to end a “happy” week.

Today is Curmudgeon Day, one of my favorite holidays. Although it has not, as of yet, been recognized as a state, national, or international holiday, it has been a tradition around here since well into the last millennium. I first wrote publicly about Curmudgeon Day a year ago, and here is the definition from that previous entry:

Curmudgeon Day is to be celebrated by never leaving the house, a practice which I faithfully observe every year. This is a day that many Americans have off from work as part of a four day weekend, and it is hyped by the media as the official start of the Christmas shopping season (despite the encroachment of Christmas promotions into October or September). This results in a shopping frenzy, making this the largest day of the year for retail sales. I am willing to bet it is also ranked high on the list of most dangerous days to be on the road, and simple observation informs my conclusion that it is the day that the most braindead walk (and drive) the Earth.

Online research has shown that retailers are trying to usurp the Curmudgeon Day celebrations by referring to the day as Black Friday, or sometimes Green Friday. In response, another pretender has attempted to make it into a day of protest against consumerism as Buy Nothing Day, which usually, but does not always, coincide with Curmudgeon Day.

The theme for Curmudgeon Day is relaxation. I am officially “Out Of Office” for the complete 24 hours, and I do whatever I want to do. Often, that means working on a pet project for which I could not normally justify the time, or just playing games that I enjoy. So far today, I have actually been working on the same exciting project that I have been developing all week (and before that), by choice.

I do not have to work on that (or any) project today. That is the point.

Enjoy!

Happy Thanksgiving!

Today is the fourth Thursday in November.

Here in the United States, Thanksgiving is traditionally a day for gathering with family and enjoying a large meal together. In our household, one tradition is to go around the dinner table and say what makes us thankful on this holiday. Imagine our table filled with a big turkey, stuffing, mashed potatoes, turkey gravy, and cranberry sauce, as I start…

This year, I am thankful for being able to make a living doing what I enjoy. Professionally, I am thankful for having good clients and interesting projects, and I am thankful that our company has survived in this tough industry longer than any other employer I have ever had. Personally, I am thankful that my family is healthy, that my wife is still supportive of my career despite the hardships and sacrifices, and that my children are both smart, enjoyable, and generally great kids.

While one is being thankful, it is an excellent time to also spare a thought for those less fortunate. As mentioned (and possibly given short shrift) a couple of days ago, the Child’s Play charity is an initiative within our industry to provide toys and games to kids in Children’s Hospitals in the United States and, now, Canada. It is really easy to support: Simply go to the Child’s Play web site, click a controller representing a hospital, and purchase one or more products from the (Amazon) wish list to be shipped directly to the hospital for distribution to the children. As an alternative, simply click on the PayPal link and just donate cash to the effort. It takes less time and thought but will be just as appreciated.

One more big tradition is gathering around the radio to listen to Arlo Guthrie’s “Alice’s Restaurant, which is playing right now as I finish this message…

“You can get anything you want, at Alice’s Restaurant (‘cepting Alice).”

Game Developers Recognized

Awards were announced for some deserving game developers.

The Walk of Game inductees for 2006 have been announced, and the two developers on the list (among games and characters) are Sid Meier and John Carmack. The Walk of Game is located in San Francisco, within Sony’s Metreon, and styled after Hollywood’s walk of fame. Sid and John join the first two (human) inductees, Nolan Bushnell and Shigeru Miyamoto.

It hardly seems necessary to describe the accomplishments of famous developers, nor does it seem fair to reduce their contributions to the game industry to a couple of sentences, but here goes. Sid Meier, now a partner in Firaxis Games, is most famous for his design work on the games Civilization and Pirates, both published by Microprose, of which he was also a founder. John Carmack is most famous for his programming work on the Doom and Quake series, developed by id Software, where he was/is a founding member. (The Walk of Game web site has somewhat longer biographies.)

This seems like a decent time to tell my only Sid Meier story

It was in Las Vegas in January of 1994, during CES (Consumer Electronics Show). This was back when CES was the biggest conference for video games, before its replacement with the launch of E3 (Electronic Entertainment Expo) in 1995. For context, one needs to know that Spectrum HoloByte, the company for which I worked at the time, had purchased Microprose, Sid Meier’s company (founded with “Wild” Bill Stealey, who had already departed the scene). It is also important to realize that the combined company was still marketed with two separate brands, and we were all anxiously awaiting the overdue announcement of the new name for the combined company.

I was at the conference as the Lead Programmer on Star Trek: The Next Generation, “A Final Unity”, the highest profile game at the booth, or just as a “red shirt” to man the booth; take your pick. Realistically, Sid Meier was at the conference because, well, he’s Sid Meier, though ostensibly he was there to promote his latest title, a non-game program related to music training that is now so obscure, frankly, that I cannot even find a reference. He described it to me at the time and it sounded interesting, though pretty far afield from his successful games. Of course, others confided to me that he was important enough to the new company that he would get to work on the occasional pet project.

Anyway, after our big ST:TNG event at the (then) brand new MGM Grand, all of the combined Spectrum HoloByte/Microprose people at the conference gathered at a local restaurant for a company dinner. I was seated near Sid and several of us were talking. When he found out where I was from, Sid Meier revealed that he was also from Michigan and had attended the University of Michigan. He also mentioned at some point that he was considering what he wanted to do next (a thought process that likely culminated in his co-founding of Firaxis). I suggested that we should get together to form a small division of the company based in Michigan; we could call it MicroSpec. Alas, he chuckled at the joke but missed the serious offer behind it.

I have many other stories about or associated with that trip to Las Vegas, but they will have to wait for a future date. I do not recall ever actually meeting John Carmack (though I may have), but I do have an id Software story for a future entry as well. However, to get back to the theme at hand…

It was also recently announced that Ralph Baer has been honored with the 2004 National Medal of Technology, which is “the highest honor awarded by the President of the United States to America’s leading innovators”, according to the National Medal of Technology web site. Contrary to popular misconception (see first Walk of Game inductees), it was Ralph Baer who invented the first electronic game, the Magnavox Odyssey, which inspired the game Pong (not the other way around).

No, that “2004” above is not a typo. President Bush is clearly a little slow.

A little bit of Schadenfreude

Schadenfreude is defined as “pleasure taken from someone else’s misfortune.”

Jack Thompson, a Florida attorney, has taken the despicable practice of ambulance chasing to a national level in recent years. For those unfamiliar with his tactics, he seeks cases where young people commit acts of violence and then attempts to pin the blame on video games (rather than the individual who pulled the trigger or those who provided the guns). He preys on the families of victims, grabs as many headlines as possible, and files civil lawsuits against much of the game industry, including developers, publishers, manufacturers, and retailers. Mind you, he has never won any of these cases.

The latest headline case was that of Devin Moore killing three people in an Alabama police station, for which he was (appropriately) convicted and sentenced to death. Alas, he apparently told the arresting officer, “Life’s like a video game. You’ve got to die sometime.” That was certainly more than enough to attract the vultures. Testimony in his trial showed that Moore had a childhood full of mental of physical abuse, but somehow Thompson figures that his playing Grand Theft Auto III was the primary factor in the shooting.

During the resulting civil lawsuit (still in progress), Thompson’s spotlight seeking behavior prompted the attorneys for the defense to introduce a motion to have him removed from the case. In an attempt to avoid that outcome, Thompson attempted to remove himself from the lawsuit first. However, the judge in the case prevented him from withdrawing voluntarily and instead temporarily revoked Thompson’s rights to practice law in Alabama, according to this news item on Gamasutra.

To be very clear, I am saddened by the murders and my heart goes out to the families and friends of the victims. I am no fan of violent video games, either. However, Jerk Thompson and his crusade simply pour salt into the open wounds of the survivors. Video games are improperly scapegoated, while the focus is taken away from the real issues of poverty and child abuse. The only thing that benefits from all of this is one inflated ego, and I, for one, am pleased that the judge took this action.

Rant over.

For more insight into the background, one can read about how Jack Thompson reneged on a charitable donation pledge, and further, how he his now under investigation by the Florida Bar Association after accusing Penny Arcade of blackmail and criminal harassment after they had they unmitigated gall to make a $10000 charitable donation in his name, all of which gave rise to the I HATE Jack Thompson t-shirt.

Meanwhile, Penny Arcade actually makes a real difference with their Child’s Play charity, which accepts donations and provides toys and games for sick children in hospitals around the world. Better still, the charity take nothing for administrative overhead, so 100% of the donations go directly to the hospitals for distribution to the kids. In this season of giving, I encourage everybody to make a donation to Child’s Play. Or, at least, buy a t-shirt.

Happy Birthday, Gamecraft

This Gamecraft blog has now been around for a full year.

As of this posting, Gamecraft is a year old! It hardly seems that it has been that long. Of course, that could be the fact that I am not posting here every single day, or it could simply be that I have been so busy over this period that the time flew right by. My wife will probably contend that it is because I have no sense of time, which I always counter with the observation that this is true for all of the very best game programmers.

Reflecting back over these twelve months, a great deal has been happening here at Digital Gamecraftâ„¢ and SophSoft, Incorporated:

  • We completed a new product, Most Popular Solitaire, for Goodsol Development.
  • I testified before the Michigan Senate Judiciary Committee in opposition to video game restrictions.
  • We finished two significant upgrades to Pretty Good MahJongg, with another in development.
  • I attended and reported on Future Play 2005, the first major game conference here in East Lansing.
  • We finished a major update to Action Solitaire, and another upgrade is the works.
  • I gave formal talks to Spartasoft and to the IGDA – Michigan South chapter.
  • We added functionality to the card library for a new version of Pretty Good Solitaire.
  • I attended SIC 2005, where Pretty Good Solitaire won a People’s Choice Award.
  • We produced several game designs, including those for two titles currently in development.
  • I helped launch the ASP Indie Game SIG within the Association of Shareware Professionals.
  • We sponsored the Campfire under the Full Harvest Moon event at the Grand Rapids Schmooze.
  • I went ice racing again and even led part of a lap before wrecking my car rather spectacularly.

For a partial list of blogged accomplishments over the course of a year, that is not too bad. The next year is shaping up to be even busier, but I am intending to post more often about this craft of game development. I certainly hope that it has been and continues to be a worthwhile read for the hundreds of people who check here regularly. Maybe by this time next year, that will be “thousands”.

Thanks for reading.