Thursday, December 20, 2012

Why Microsoft Killed Pinball and How to Get it Back in Windows 7/8

Remember Window’s 3D Space Cadet Pinball game? Better known as simply Pinball, the game was introduced in Windows 95 via the Microsoft Plus pack, an add-on for the operating system that included games and content from third-party companies.

When Windows 95 came out, one of the features of the new operating system was that it provided a great platform for gaming, and lots of developers were clamoring for a piece of the action. The game was originally developed by a game developing company called Cinematronics, who sold licensing rights of the game to Microsoft for inclusion in Microsoft Plus for Windows 95. For Cinematronics, a small software company then, it meant exposure to millions of Windows users and thousands of developers. The very next year Cinematronics was bought by Maxis, another game developing company, that eventually got acquired by Electronic Arts another year later.


As for Pinball, the game became so popular that it was ported from Windows 95 to Windows NT 4.0 for the 1996 release. When Windows 98 came out, it oddly did not come with 3D Pinball. However, Microsoft provided instructions how to install it form the Plus 95 CD into Windows 98. Later Microsoft included it in Windows 2000, Windows ME, and Windows XP by default.

Around this time Microsoft started developing the 64-bit version of Windows XP, and Pinball ran into trouble. Raymond Chen, a software engineer whose job was to port code from 32-bit Windows XP to 64-bit, explained what happened:

One of the things I did in Windows XP was port several millions of lines of code from 32-bit to 64-bit Windows so that we could ship Windows XP 64-bit Edition. But one of the programs that ran into trouble was Pinball. The 64-bit version of Pinball had a pretty nasty bug where the ball would simply pass through other objects like a ghost. In particular, when you started the game, the ball would be delivered to the launcher, and then it would slowly fall towards the bottom of the screen, through the plunger, and out the bottom of the table.

Games tended to be really short.

Two of us tried to debug the program to figure out what was going on, but given that this was code written several years earlier by an outside company, and that nobody at Microsoft ever understood how the code worked (much less still understood it), and that most of the code was completely uncommented, we simply couldn't figure out why the collision detector was not working. Heck, we couldn't even find the collision detector!

We had several million lines of code still to port, so we couldn't afford to spend days studying the code trying to figure out what obscure floating point rounding error was causing collision detection to fail. We just made the executive decision right there to drop Pinball from the product.

Basically, Microsoft ran into porting issues from 32-bit platforms to 64-bit builds. Raymond spent nearly four times as much time than originally allocated to debug Pinball. This was compounded by the fact that the source code was written by a third party – Cinematronics – and much of it was uncommented. Finally, Microsoft decided to drop Pinball from the 64-bit build. Once dropped, Pinball fell out of loop and never made it back to any Windows release ever.

Good news is, you can still run Pinball in Windows 7 and 8 by simply copying the whole "pinball" folder (usually in C:\Program Files\Windows NT\) from a Windows XP installation to a Windows machine. The game should work in both 32 and 64-bit Environments. If you don’t have a Windows XP machine lying around (who does?), download the Windows 7 port from this page.

And of course, there are dozens of Pinball clones on the Internet available both as downloadable and installable games or as playable in the web browser. Future Pinball is one nice replacement for 3D Space Cadet Pinball.


Additionally, the Windows 8 Store now has a new Pinball game.



Post a Comment

Popular Posts