Shared room-level device and communication infrastructure for displays, audio, wristband scanning, restart controls, door locks, and controller connectivity across interactive game rooms.
Shared room device layer
USB + COM + Ethernet integration
Automatic COM reassignment
Watchdog-assisted recovery
Software + hardware ownership
Door lock integration
Except for the kiosk PC, game sensors, and game controllers, each room also depends on a set of shared operational devices required for the room to function properly.
These room-level devices include:
These devices are present in all rooms and are connected to the room's kiosk PC.
This project had both:
The result was a reusable room infrastructure layer that allowed different rooms to share a common runtime pattern while still supporting very different game mechanics.
Shared room devices connect into the kiosk PC through a reusable communication layer that is used by the kiosk host, game engine, simulators, watchdog tools, and other runtime utilities.
Each room used a common base hardware setup on top of the room-specific controllers and game sensors.
Architecture-wise, these devices connect into the kiosk PC and are then accessed by multiple software systems such as:
To avoid duplicating device communication logic, we created a shared .NET communication library for room devices.
This library was used by multiple applications to communicate with the hardware consistently.
The SRD chip was preprogrammed and came with:
The shared software layer sent the required serial commands to control the NO/NC lock behavior.
The hand scanner used an Arduino-based board we programmed to:
The restart button used the same communication philosophy:
This shared library approach made it easier to integrate the same devices into multiple parts of the system without reimplementing the protocols every time.
The room infrastructure evolved significantly as the facility expanded.
Initially we only had:
In the new facility, the device layer became much richer.
We added:
Examples:
Climb
Laser
Recipe
We also added automatic smoke control in the Laser room using a smart switch integrated with server-side automation.
Over time, the system evolved from a simple scanner/display setup into a true shared room infrastructure platform.
One of the first major problems was handling all the USB/COM-connected room devices.
Initially, we hard-coded COM port numbers.
That worked only temporarily, because after restarts or device changes:
To solve this, we introduced an acknowledgement-based identification system.
All Arduino-controlled devices (such as:
were programmed with an acknowledgement command.
When queried, they would return their device name.
Then the kiosk application would:
This made the room far more resilient to port reassignments after restarts.
Another large challenge was on the hardware side:
This was not just a software problem - it required practical device and infrastructure decisions for each room.
Another major issue was device disconnection during active sessions or during the day.
Problems included:
To improve reliability, we added a watchdog written in PowerShell.
It checked whether:
If not, it would attempt to:
If the problem still could not be fixed automatically, the system clearly showed:
I was involved in both the software and hardware sides of this system.
I was responsible for helping decide:
I prepared those layouts and diagrams for the:
On the software side, I made sure the devices were integrated cleanly into the room software stack.
This included:
I also worked with the team to add the watchdog system that helped verify whether the room was healthy and functioning correctly.
Core tools and technologies used in this project.
Core technologies
Supporting technologies