Have you ever started a project thinking it would be pretty simple to complete, only to have the challenges pile up until they formed a seemingly insurmountable mountain of problems? If not, hang around for a while and you will have this experience soon enough. A Dutch mechanical engineer named Yvo de Haas took on a project of this sort six years ago thinking it would be a breeze, and has only just finished it.
The idea behind this build, called the Robotic Game Board, was to make a sort of upgraded version of the board game called RoboRally. But this was not to be simply a copy of the original game — what would be the point of that? As the name implies, Robotic Game Board is first and foremost robotic. Players only need to choose which cards to play, and the action on the board will take care of itself. It was also given a steampunk theme, multiple playable maps, and support for up to eight players.
A look at the hidden gantry and magnetic head (📷: Yvo de Haas)
The board itself was made from custom, 3D-printed parts and 9mm plywood. A gantry was built into the board, and is capable of being moved to any x,y position on the surface of the board. The gantry moves a head with a retractable magnet around, which interacts with player pieces on the board to move them and change their orientation as needed. The look of the board was made complete by staining the wood and adding some brass strips. A sheet of glass was also installed to serve as the playing surface.
To control the gantry, an Arduino UNO with a CNC shield was installed inside the board. This works in conjunction with an Arduino Mega, which controls both the magnetic head and card readers. Other supporting electronics like multiplexers, motor drivers, and voltage regulators were also fitted into the casing.
A set of card readers (📷: Yvo de Haas)
A set of card readers contain Waveshare 1D/2D barcode scanner modules. These read two-dimensional Data Matrix codes that have been printed on each card. The codes contain the entire function of the card in a text format. That information is used to determine the actions that the board should take by the software that powers it.
The game board surface was created using a custom tileset designed in Blender, which includes game elements like floors, walls, belts, and starting positions. This tileset was arranged using a software tool called Tiled, where the game map could be easily designed and modified. The completed map design was then printed on A3-size paper. To protect the printed board from wear and tear during gameplay, the paper was laminated, providing a durable surface. After laminating, each board section was carefully cut to the correct dimensions, with the corners clipped for a smooth, rounded finish.
A selection of game boards (📷: Yvo de Haas)
Software written in Python is where the game actually plays out, and it instructs the Arduinos to mirror the digital action on the physical game board. It manages all game logic, interfacing with the card readers to process player inputs and control the mechanical movement of the gantry.
Building the Robotic Game Board has been a long journey, and it is not quite over yet. Looking ahead, de Haas wants to minimize the need for players to have to look at the computer that runs the game software, but as it presently stands, it is important for understanding the current game state. And, as you might expect, there are plenty of other ideas for enhancements as well. Whether or not this project will ever truly be finished is still up in the air.