I grew up playing Gauntlet on old-school arcade machines. They came out with other console versions later, but using the joystick and buttons was always my favourite. When Diablo 3 was announced as coming out, the idea to make an arcade cabinet and controls for it just made sense.
I got the controls components about a month before the game was released and tried them out with a game called Torchlight. The controls for that game didn’t work at all with the setup I had. This was discouraging, but I just waited until Diablo 3 was finally released so I could test it on that.
The cabinet was built out of plywood because it’s cheap. I had the decals printed up and when they were put on, they took the shape of the wood grain so it looked as though they were painted on. I didn’t design any of the images on this. I got the flames from cgtextures.com and the other two were from Blizzard. They own the rights to these, not me.
The joystick and buttons are from sparkfun.com, which is a great website for those who like electronic tinkering/building. They are wired into an arduino, and from there, to a desktop computer within the cabinet. I wrote an intermediate program in VB.NET to interface the controls with the game. There is NO modification to any game files as everything works outside the game. Most of the buttons are dual-purpose. Clicking on a button might equate to a left-click in game, or skill number 1 if clicked in conjunction with another button. The joystick is the same. Moving the joystick moves the mouse around the screen so you can target individual monsters/objects. Holding the button on the top of the joystick moves the character around without changing the position you were targeting. This allows you to “run and gun” as you’re always aiming in the same direction, but can run in a different direction.
Of course a next step (some may say backwards) is getting the controls working for MAME. Shouldn’t be too hard, timing is the only holdup.