Activation sucks

Just when I thought Vista was actually working, it quit.

Fast forward through a few days of development on Window XP, blissfully unconcerned with Windows Vista for the moment. Having resolved the critical issues with Vista, I was able to wait until it was convenient for me to pick up extra hardware at the local computer store. See, I realized that it would probably be more efficient (and flexible for the future) if, instead of tearing into this system to replace the still functional (under anything except Vista) network card, I would simply pick up a USB wireless network card. So I did. (A fortunate byproduct of this is access to a second, faster, network from my development machine when and if I choose to use that capability.)

There I was, USB network adapter in hand, ready to finally get this Vista system connected. In the back of my mind, I was aware that I could also get rid of the activation reminder once that was done. That thought quickly came to the forefront, though, when Vista refused to start. Apparently, leaving the Vista system unplugged while obtaining the necessary hardware was not sufficient, and Vista wanted attention NOW!

I was greeted with a message (which I failed to document) that oh-so-helpfully gave me a few options, such as the ability register online (“I would love to, thanks”) or, if that was not working, a link to help… online, of course. Vista penalizes me for its inability to recognize my network card, and then there is no option that would allow me to install the new hardware in order to comply. After a fruitless search for the ‘Hey, this is your fault, Vista’ button, I had no choice (short of reinstalling Vista) but to call Microsoft.

To be perfectly fair, the telephone registration process is not as onerous as one might expect, and it is totally automated, but having to read (not type) numbers into the phone, one at a time, and then listen for a couple dozen digits coming back, while being required to respond “Yes” after every group of four, does get very tedious very fast. I am certain that any people monitoring the calls are likely to hear a whole range of creative expletives, including one or two stemming from my frustration. In the end, though, it only took five or ten minutes to complete the activation process this way.

Microsoft, unfortunately, left a rather obnoxious bug in Vista. As soon as one is warned that the operating system needs to be activated immediately (the next step from an almost ignorable balloon), Vista tattoos ones desktop bitmap with the friendly message, “This copy of Windows is not genuine“. Liar! This copy is genuine, merely unactivated. However, after activation, this message remains for the duration, until one turns off the machine, even though the copy of Windows is genuine and properly activated. Better still, Vista hides the option for actually shutting down a system, prolonging the farcical message.

My opportunity for being upset at Microsoft soon closed, as the next Vista surprise was served courtesy Creative Labs. Remember the beta sound drivers that I had to install (you know, in my last blog post)? Well, these expired, too, with a nice blunt error dialog and, of course, no sound. No warning, either. I figured that this was just par for the course, and that I could solve everything with my trusty USB network adapter.

Guess what happened next. You probably guessed incorrectly, as my new NETGEAR USB SuperG wireless 802.11g network adapter worked perfectly. There were no problems, very unlike similar products I have purchased in the past from a company whose name starts with BEL and ends with KIN. It took a little Vista familiarization to figure out how (or, rather, where) to select a network, and then how to make that selection automatic, but with a minimal amount of work to allow the adapter access to the router, thanks to the MAC address being shown on a sticker right on its side, I was up and running.

OK, with a smooth installation under my belt and a nearly working copy of Windows Vista Ultimate at my disposal (having accepted that the dualing video cards would not peacefully cohabitate), I set out to regain my audio. I exercised my base vocabulary again when I found that the Creative Labs web site had creatively gone AWOL at a time when all of the beta drivers had stopped working, too. This downtime continued for long enough (read: hours) that I was able to clean my office, the supplies cabinet, and the closet, where I finally found the original driver disk from a few years ago. Thankfully, the old installer functioned fine, albeit with UAC going ape throughout, and my sound returned.

I had a fully working Vista system! All that was left was a full test of all major functionality, including game saving and online high score/statistics reporting, of Pretty Good Solitaire, Pretty Good MahJongg, Action Solitaire, and Most Popular Solitaire. All passed the tests with flying colors, needing only the improvements already identified (such as new icons and HTML help files). There were no major gotchas. Whew!

One final discovery as I shut down the Vista system for a while: Not only did the NETGEAR wireless adapter work perfectly, but it also made a nice hand warmer as the winter air settles in (though that may not be a good thing).

Windows Vista Ultimate installed

After some frustration, I finally managed to wrangle Vista.

My previous post was a horrific tale of trying to take things cautiously and it winding up being a huge waste of time. However, I needed to have Windows Vista installed and running the new Aero glass theme. What I did not mention is that I had to take the occasional break to cool off, and I spent some of this time installing Vista in Virtual PC on my development system. I felt (correctly) that I had no real chance of getting Aero there, but there was a significant period of time during which the operating system got further in Virtual PC than on its own system and hard drive. This told me that Vista would work, but something was misconfigured.

Without going into too many details, suffice it to say that I figured out that the problem was with ACPI (Advanced Configuration and Power Interface) support. For those not familiar with ACPI, it is the way that Windows can turn off a computer without somebody pressing the power button, or that two expansion boards can fight over the same hardware resources and both fail to work properly, although the latter is not exactly the phrasing that Intel uses in the specification.

Anyway, it turns out that Windows Vista requires ACPI, which this test system fully supports. However, for the purposes of diagnosing a hardware problem, Windows 2000 had been installed with ACPI deliberately disabled. (This is something that cannot be changed in Windows without a new system kernel.) The XP upgrade helpfully installed its non-ACPI kernel, and then Vista apparently used this to determine (incorrectly) that the system did not support ACPI. Of course, the huge piece of bloatware that I had run to verify that the system was compatible with Vista did not bother to identify the lack of ACPI support (or, alternatively, worked correctly but failed to acknowledge this bug in Vista).

So, what have we learned? In order to use Vista, one must agree to give Microsoft complete control of ones system, both software and hardware. Cynical, perhaps, but reasonably accurate.

Problem solved, so we move on to the next one. I reformatted the drive and installed Microsoft Windows Vista Ultimate from scratch, and this time it actually worked (at least to the point of being installed). Only one monitor was working, and I had neither sound nor network functionality. Fortunately, I had the foresight to have already downloaded the (huge) driver files from a working system, but since the network card was a generic 10/100 one with a driver from Windows XP (i.e., supplied by Microsoft), it never occurred to me that I would need to get that, too.

I installed the latest drivers for the non-working graphics card, but it made no difference, so I then installed the latest drivers for the working video card, hoping that it would help. Nope, I only had one working screen. Oh, well, I only need one monitor to actually test, as long as it shows Aero. I moved on to installing the only Vista sound drivers for my card, which happened to still be in beta (even after RTM for the operating system). After some seemingly unnecessary reboots, I finally had sound, though I would later regret the driver “choice”.

A quick status review: Only one of two graphics cards was working, but I had audio. The network card was not working at all, and with no network card, it is really hard to search online for drivers.

On the video front, I did not see anything that appeared “glassy” to me, so I assumed that Aero was not turned on. I did the research and found out how to enable the Aero theme, running straight into one of the Vista interface failures. The screen on which one chooses the Aero settings simply does not appear if the theme is not selected and the Aero theme selection is simply absent if Vista determines that the system does not support it. It took a while to discover this combination of issues that violates one basic principle of good interface design: never hide user options, even when they are disabled.

Again, here I will edit out lots of diagnostics, research, and reboots. I learned that the Aero requirements demand 1G of RAM (in addition to fairly hefty video cards, which I have), and this test system only has 640M. Before I went out to purchase more memory, I tried a BIOS change, swapping the video card boot order between AGP and PCI and got a marginal improvement. The working card stopped functioning, but the non-functional card came to life. Better, I now had an Aero option (despite the “limited” memory) which, when enabled, actually worked.

On the networking front, I downloaded the latest drivers for my generic network card, which were (of course), not updated for Vista. Rather than just having older drivers, though, Vista just simply refused to install them at all. No Internet for you!

At the end of the day(s), at least I finally had Windows Vista on my test system, even if it was hampered somewhat. I was able to test our current products with Aero, verify and diagnose one particular graphics issue (caused by Aero), and identify a few program changes that would be necessary. The network testing would have to wait until another day, but we (thankfully) had no major problems. It was really helpful that we had already designed the games to support a limited user account on Windows XP.

It was finally time to make the minor updates for Vista compatibility.

Microsoft plumbs the depths of Bloatware

Theoretically, this is where our Windows Vista journey should begin.

In preparation for Windows Vista, I started where Microsoft suggests that a user start, on the Windows Vista: Get Ready page. This is the site where a prospective customer is supposed to learn all about Vista, including what (possible) reasons there may be to upgrade, how to distinguish among the too many different versions of the operating system, and what the hardware requirements are. Presumably, this site is designed to convince users to decide to upgrade, though I do not find it too persuasive.

There is only one argument I need: The bulk of my income comes from products that run on Microsoft Windows, especially those for the mass market, and this is very soon going to be the only operating system that most of our target audience will be able to buy. Our products need to function under Vista.

So, part of the way down the page, there is a link to the Windows Vista Upgrade Advisor. It seems that this is a utility that will quickly let me know whether or not my test system can run Windows Vista. This would appear to be a good idea, but appearances can be deceiving.

First of all, the download itself was about 30M [*], which is pretty fantastically large for a utility that essentially just checks processor, memory, and hard drive specs. I implemented similar functionality in the installer for Star Trek: The Next Generation, “A Final Unity”, more than twelve years ago and that executable size was measured in the dozens of kilobytes. 30M? Wow!

Wait! There’s more… Running the installer revealed that the .NET 2.0 Framework was required to run the Upgrade Advisor, which added another 22M, and then it also needed the latest MSXML, so add another 8M or so to the total. So it took somewhere in the neighborhood of 60M worth of downloads in order to simply check my system against a list of requirements and supported drivers.

[*] To be fair, I just checked, and this download is now only 6.5M (my guess, they included .NET in that previous build), which brings the download size below 40M. Woo hoo!

Well, it is just bandwidth, right? No, not really. The observant among you readers may have noticed this little Additional Information note below the download link:

“The Windows Vista Upgrade Advisor works with 32-bit versions of Windows XP and Windows Vista. It will not work with Windows 98, Windows 2000, or Windows XP Professional x64 Edition.”

OK, so where are we now? If you want to use this utility to let Microsoft sell you a new operating system, you have to download 40-60M of files, install three software packages, but only if you already have the latest operating systems. If you want to run this on Windows 2000 (as was previously on my test system), you have to first upgrade to Windows XP (SP2), to find out if you can then pay money to upgrade to Windows Vista, but be sure not to upgrade to a 64-bit version of XP, because that will not work, either. At least we can all rest peacefully knowing that we can easily test for Vista compatibility if Vista is already installed.

That is an impressively bloated system, and I am not sure that I could do better (worse) without seriously absurd levels of effort.

Before anybody thinks that this kind of ridiculous bloat is limited to Microsoft, I will point out that this system has two video cards, one from ATI (now AMD) and one from nVidia, plus a sound card from Creative Labs. The total amount of required downloads for these three sets of drivers was more than 125M, not including an additional 85M of multimedia support downloads. I have written fully functional hardware drivers in the past, and I would be hard-pressed to make a full installation package even 1M, so this is impressive.

Anyway, I upgraded from Windows 2000 to Windows XP Professional, downloaded about 60M of software to determine if the system would support Windows Vista. The Windows Vista Upgrade Advisor said that everything was fine, so I downloaded the 125+M of driver bloatware in preparation for the upgrade. With everything finally in place, I began the upgrade to Microsoft Windows Vista Ultimate.

Punchline: Windows Vista Upgrade Advisor was wrong. Vista itself reported that my test system was insufficient and refused to install.

Stay tuned for the next installment, in which our intrepid developer manages to tame Vista Ultimate.

Pretty Good Solitaire 11.0.1

This first release of 2007 is just the start of a flurry.

Goodsol Development has just released Pretty Good Solitaire 11.0.1, the latest version of its flagship product. A 30-day evaluation (dare I say, shareware) version is available for download here. This version contains 660 different solitaire card games (that’s “more than 600,” Doc), though this particular update does not introduce any new games.

Instead, this release adds full Windows Vista compatibility to the title, prior to the general release of Vista scheduled (this final time) for January 30. This means using a new look program icon, replacing WinHelp with HTML Help, and fixing bugs caused by the Aero glass look and by restricted access to folders (one of each).

Although my code ships with this product, in DLL form, my function for this update was as lead tester, first getting Vista installed and then identifying and researching various issues to work well within the new operating system. Originally, the conversion to HTML Help was thought to be the main issue, but at the end of the day (actually, weeks), that was the one aspect that went fairly smoothly. This process has given me tons of material for upcoming blog posts, amongst the various release announcements.

Nothing with Windows Vista was straightforward, but now that we have identified the issues with icons, help files, limited user accounts, the Aero appearance, and Game Explorer, the rest of the releases should flow like rain. (How is that for a mixed metaphor?)

[knocking on wood]

Michigan Mo-Cap

The list of Michigan development talent and resources continues to grow.

Last night, the first 2007 chapter meeting of the Southern Michigan IGDA (International Game Developers Association) was held, and I was scheduled to miss it due to a prior (and priority) commitment. However, unforeseen circumstances caused the other event to be postponed, so at the last hour I was informed that I would be able to attend this meeting after all. It worked out quite well.

I had been disappointed by the time conflict because this meeting was being held at a brand new, state of the art, motion capture studio located in Detroit, Michigan. The meeting was presented in conjunction with SEMAFX, the Southeast Michigan ACM SIGGRAPH Professional Chapter, which has a mission similar to that of our IGDA chapter, to advance digital arts (as opposed to specifically game development) in this area.

The location was Dangerous Moves, a.k.a., Critical Moves [warning: loud link content], a motion capture studio located within Detroit proper. My arrival was slightly late due to the inability of MapQuest to account for an evening traffic jam on I-696, but fortunately, the presentation had not begun yet. The turnout seemed to be pretty good, probably around 50 attendees, and a poll early in the gathering suggested that more than half were game developers (including aspiring game developers).

When we got started, we were cautioned not to touch any of the rigging while taking our seats because the cameras were very precisely calibrated. (As one technician told us later, “If a mouse farts in here, we have to recalibrate.“) The movable rigging, like a scaffold, supported 46 specially placed cameras that, we were informed, were accurate to within the thickness of a sheet of paper. This is precise enough that it can be (and has been) used to capture facial expressions during a performance. It was suggested that the recalibration process would take around 45 minutes to complete.

The stage itself, as configured for our visit (to accommodate a room half full of chairs), was about the size of a standard conference room, but could be expanded to at least four times that size. Light in the room was low, to avoid reflections, and the stage was lit primarily with many deep red LED light clusters. It was explained that the visible light was for our (human) benefit, but that these lights also transmitted infrared light, which is the frequency range captured by the cameras, after bouncing off of reflective “ball” markers.

When the heart of the presentation began, a lovely performer dressed primarily in black, but covered with a few dozen reflectors, walked onto the stage. The software display, thoughtfully projected on a screen for us, showed a series of dots on black. As a technician took the performer through her range of motion moves, the dots moved around the 3D space in real time. It was neat, but they were only dots

As we watched, the points, or rather, the connections among them, were mapped to lines, and soon, there was a colorful stick figure prancing around the screen along with the performer. Then a humanoid model (i.e., a 3D stick figure) was loaded and taken through the original range of motion capture, following by a stock model of a typical female video game fighter character doing the same. It started getting really interesting when this model then started performing the same movements throughout the 3d space at the same time as the woman on stage. We watched a preliminary marketing video showing off this ability, and as entertaining as that was, a linear (edited) medium simply could not fully convey that it was done in real time.

For the final part of the stage show, a little wooden triangle with reflective markers was placed on stage, along with the performer. While the women of stage and screen continued to dance in unison, a technician was doing something in the software. Ultimately, the wooden triangle became a makeshift quasi-virtual camera, and the 3D images were rendered from the perspective of this “camera”. A kid in the audience, maybe 12 years old or so, was encouraged to try it, so he walked on stage and “filmed” a sequence in his impromptu directorial debut. (He was not comfortable telling an adult woman what to do, though.) Our hosts captured the session and are rendering the results to a custom DVD for him. Very cool.

The whole studio is actually multipurpose. It is a large sound stage with full stage rigging (including catwalks), and in addition to the motion capture area, there is also a room prepared for green screening, complete with rounded corners, evidently to avoid seams and abrupt changes in lighting. I overheard somebody mention that local Rock and Rock Hall of Fame inductee, Bob Seger, had used the studio to set the stage arrangement for his current Face the Promise tour.

The IGDA gave away some door prizes, and everybody spent quite a while at Critical Moves talking about all kinds of groovy things, until many of us retired to the SEMAFX “afterglow” gathering at a bar with live music just down the street. The band asked that we spread the word about them, which leads me to…

Fundamental rule of marketing: If you want people to spread the word about you, you must make sure that you tell them who you are.

On-site working

We have successfully finished our off-site meeting for 2007.

The main takeaway point from this planning meeting, as far as logistics are concerned, is that getting away is important. However, that includes not merely avoiding common distractions of the office (and home), but also avoiding distractions from external sources. In this case, our chosen venue was overrun by a glut of prepubescent children, and a seeming dearth of associated parental supervision. Of course, there was nothing inherently wrong with kids being noisy, and they were (for the most part) quiet during late hours, but we did not expect to have to discuss business with a background clamor. We will almost certainly select a different location next time.

Nevertheless, we concluded a very successful off-site meeting, having identified more than 200 separate issues, large and small, that should be addressed during the next year. Each issue was written on an index card with a general category, without regard for scope or urgency of the task(s) involved. We then selected and prioritized the most important twenty projects, of which (by coincidence, not design) exactly half are development projects expected to be completed within the next six months. Ten titles will amount to lots of programming work, though some of these will be releases (for better Windows Vista compatibility) that are essentially already in the can as I write this. The other items I mentioned in my previous blog post are also, not surprisingly, in the Top 20.

It was nice to realize that, despite an extended time since our last comprehensive planning meeting, we had not strayed far from the intended course, so our direction is positive. Conversely, it was disappointing to see the number of projects that had slowed or stalled in the past couple of years. Any associated regret is now consigned to the past, however, except insofaras we are more committed to maintaining momentum for all of our viable projects.

Not to waste any time putting the revised plan and priorities into practice, I am already taking care of a smaller final step on one of the bigger projects. We may be down to only 19 major issues by our next regular project meeting.

A week late, and a system short

It is time for our “annual” off-site planning meeting.

Generally, a business does not have resolutions; however, it does (or should, at least) have goals and a plan. It is essential, in my opinion, that the direction of a company be revisited on a regular basis, from the top down. Rather than always trying to simply run in a straight line, making quick decisions to adjust course based on immediate obstacles and rewards, one needs to occasionally check the compass. This is, of course, much easier to do for a small business like ours than for a large corporation. Still, it is the failure to reassess that can lead to billion dollar software companies forgetting the basics of development, or huge information companies experimenting with doing “evil”.

Because we are still small enough to fit all of our corporate decision-makers into the same room, I can schedule an off-site planning meeting in order to reaffirm the fundamental goals of the business. We can then make course corrections as necessary and decide on specific goals, or milestones, for the short and medium terms. As long as we do this frequently enough, none of our turns should be too dramatic and we should always be moving in roughly the desired direction.

The timing of this meeting is intended to work in conjunction with our end/beginning of year break, when we return revitalized and ready to get things done. Instead of a manic, unfocused burst of energy, this overall look at our goals helps focus the effort in the correct direction. The decision to have the meeting away from the daily distractions of an office is important, especially since we work from home offices, where there is twice as much to interrupt us. For several hours, as long as it takes, we just disappear from here. Of course, we do choose a venue that allows for frequent relaxation, too; this is not your standard business meeting.

This particular meeting had to be postponed for a week because during the previously scheduled time, I had to be at a funeral, and that was not conducive to a positive outcome. Now, though, I am really looking forward to this, especially since it feels like the intervening week has been spent just meandering, and it is high time to put that all behind us.

Until this off-site meeting is concluded, we will not have an official set of goals for 2007 (and beyond) and the specific plans to reach them, and once that happens, most of the details will not be published anyway. However, there are a few general items that one can expect. We will certainly have many new game releases this year, including several to provide better Windows Vista support prior to its general release. I will be spending time as a Director of the Association of Shareware Professionals and working to build the ASP Indie Games SIG. There will also be something of a surprise. Shhh….

One tangible goal for early 2007 will be a brand new development system. I have a huge sentimental attachment to my current PC system, since it still has the soul of my original Pentium system purchased in 1995 (albeit with every single component upgraded at least twice). Its spirit is twelve years old, which is at least 96 in computer years, so it deserves to retire now and live the quiet life.

Quad-Core, here we come.

Welcome to 2007!

It is good riddance to 2006, as far as I am concerned.

Looking back, business was good in 2006, with several product releases, especially with Goodsol Development. Personally, my immediate family did quite well, all things considered. However, the extended family situation was in some turmoil in the wake of the death of my father-in-law and the serious illness and hospitalizations of my mother-in-law. This made it harder to enjoy our successes.

Our company takes a break for the last two weeks of each year, encompassing New Year’s Day. This break is designed to allow for us to relax, celebrate, and return to work refreshed, and it usually works. This year, though, I spent much of the first week of the break driving back and forth between home and hospital dealing with an emergency surgery, a minor recovery and then serious downturn.

On New Year’s Eve, my mother-in-law ended 2006 for us by dying in the hospital. Thus, the second week of our break was spent making arrangements, grieving and mourning, attending a visitation and then the funeral, and beginning to handle the estate. Today is the first day that I have had in almost two weeks during which I could just relax.

At this point, I can think of nothing more refreshing than getting back to normal and returning to work at SophSoft, Incorporated and programming for Digital Gamecraft.