Gamers are sure to have a ball with Chris Dalke’s fun desktop pinball table. In the latest issue of The MagPi, out now, David Crookes has his fingers at the ready…
Pinball machines have been around for decades. They were popular during the Depression in the 1930s, banned under US gambling laws for 34 years from 1942, developed flippers in 1947 and saw a resurgence in popularity in the 1990s. But, in all that time, the machines have had one thing in common: their sheer size and weight.
That, however, didn’t stop Chris Dalke from trying to create a version of his own. “Years ago, I had a high school woodshop class with access to a CNC wood cutter,” he says. “I tried to make an electromechanical pinball machine but never finished because the project was too ambitious in scope for my skill set and budget at the time.”
Even so, the desire to create a pinball machine remained strong so he tried again, this time creating a miniature version using a Raspberry Pi 4 computer, an Arduino Uno, an LED matrix display, a bunch of buttons and a 7-inch HDMI touchscreen. “It constrained the project to a more realistic scope,” he says. “It also allowed the enclosure to be smaller so it could be brought out and played on a tabletop.”
Chris had a clear objective in mind from the start. “I wanted to retain the feeling of a physical arcade game with intense sound, vibration and colours as well as the tactile response of the inputs,” he says. “I noticed many arcade games feel very good at the lowest level of tactile response, an individual button or joystick press, so I started there, with clicky arcade buttons.”
To that end, he decided not to replicate the mechanics of a pinball machine. “It was less about the pinball machine and more about building the complete experience of a small arcade game that could retain the feel of a full-scale game,” he explains. It led him to create a screen-based version of pinball which he coded in C++ and OpenGL, using the open-source software development library Raylib to create both the graphics and audio.
“I chose very vibrant neon-inspired colours: purple, green and pink which are very saturated on the monitor,” he continues. “In the game code I also added extensive juicing which is the use of many small animations and visual/audio tweaks to improve the feel of a game. For example, the ball and bumpers stretch and distort excessively when a collision occurs, exaggerating the physical effect of the collision.”
For an authentic look, Chris naturally wanted the laser-cut Baltic birch plywood enclosure to resemble a pinball machine, so he tweaked the design to ensure it was unmistakable. “Initially, I’d designed a flat box without the vertical headboard seen in conventional pinball machines but I added an LED matrix and vertical section,” he says. “I wanted to retain the visual signature of a pinball machine and have some element that made the game feel less like it was played only on the touchscreen.” YouTube videos such as Secrets of Game Feel and Juice helped Chris when designing the game.
The Adafruit LED matrix provides the score and feedback and it certainly looks the part. “The LED matrix casts a very nice orange light onto the wood and it works well to pull the gameplay out of the screen and into the physical world,” Chris continues. The Arduino Uno drives the LED matrix and button inputs, and it communicates with the Raspberry Pi board via a serial protocol. The Raspberry Pi is connected to a speaker driver too, allowing for stereo sound.
“I also included a solenoid which I planned to trigger for haptic feedback,” he says. “But the vibration was too high-frequency to match the expectation of a heavier ball – I ended up using sound effects instead.” Still, this doesn’t detract from the overall build, and Chris is very pleased with how it’s turned out. “The project is the sum of many individual tweaks to the components, but the whole experience comes together very well.”
Get The MagPi #117 NOW!
You can grab the brand-new issue right now from Tesco, Sainsbury’s, Asda, WHSmith, and other newsagents, including the Raspberry Pi Store in Cambridge. You can also get it via our app on Android or iOS. And there’s a free PDF you can download too.
You can also subscribe to the print version of The MagPi. Not only do we deliver it globally, but people who sign up to the twelve-month print subscription get a FREE Raspberry Pi Zero 2 W!