I went to an arcade auction last week and had waves of nostalgia came over me. I grew up in the arcade era, having seen my first arcade game (Space Invaders) at the age of 10 and spending the next 6 years (or so) dropping every quarter that I could find into machines. The auction had some classic machines (Pac Man, Centipede and Operation Wolf) as well as a lot of machines that I did not even know existed (did you know that there was a Coors Light Bowling arcade game?).
Specialized user interfaces
I got to thinking about all of the various different user interfaces that I saw there. Some of the machines had track balls, some had machines guns, others had multiple buttons and one had an entire motorcycle attached to the machine. I even took some photos with the camera on my phone if you would like to check them out (sorry about the quality – the light was very low inside the warehouse, next time I will bring my camera). Except for a few games that were variants of each other (Galaxian / Galaga and Centipede / Millipede) it was hard to find 2 games that had the exact same control set. The designers of these games knew that they had to create the perfect user interface for each of their games.
When you are writing software for business it is tough to get that creative with the user interface. We are limited by the basic boundaries of the keyboard and pointing device. The PC game developers have a little more freedom because they can take advantage of really neat joysticks. A few mavericks even go so far as designing an input device specifically for their game and shipping with the product. The results can be great – kids everywhere are playing guitar hero. I know my kids are wondering why they don’t have it yet. 🙂
But those of use developing standard business applications can still learn from specialization. You can specialize your interface based on the type of user and not the input device. A great example is banking information; the person browsing their checkbook at home will probably need a different interface than the teller who is trying to pound in transactions as fast as possible because there is a line of people at the window. The teller will be much happier with her application if it is custom fit to him or her, just like the game player in a first person shooter will be happier with the Uzi style interface rather that buttons to push up and down.
The cost of changing the user experience
On an arcade game the user experience is something that you have to get correct the first time. You can’t ship a 100 units and then figure out that you should have used a joystick and not a trackball. You can’t make a multiplayer game (like the wrestling game pictured) and find that 4 people can not fit comfortably around the console. The cost to switch out the units would be enormous. Plus the target audience already has a negative disposition to your game because of the poor user experience.
With web technologies it is very easy to change the user experience if it proves incorrect. With technologies like XBAP and Clickonce it is even easy to change out rich client applications. But we should still recognize that changing the user experience has a steep cost, regardless of the technology. We should approach getting the user interface correct as if it meant scrapping the whole application and starting over (and on occasion it does!)