Realtime controller and sensor network powering gameplay interactions across rooms, from USR RS422-over-Ethernet systems to custom Arduino and ESP-based controller stacks.
USR-N510 / USR-N540 backbone
RS422 -> Ethernet controller network
Custom Arduino + ESP controllers
Realtime sensor state updates
Protocol design + hardware layout
Door lock integration
This project covers the gameplay-specific controller and sensor layer used across the facility.
Unlike the shared room infrastructure devices, these controllers and sensors are directly tied to gameplay interaction.
They include:
This layer is responsible for translating runtime commands from the game engine into physical room behavior and returning player interaction state back into the software runtime.
Gameplay controllers sit between the game engine and the physical room devices, translating runtime commands into light and sensor behavior and returning interaction data back into the software runtime.
For most games, we use the following controller families:
USR-N510
USR-N540
These were configured using RS422 -> Ethernet protocol.
Although the controller itself has one IP address, each port can use its own dedicated socket ports for sending and receiving.
The controllers send light sensor state updates roughly 20 times per second in hex format.
Each port controls its own separate sensor sequence, which is important because:
USR controllers also expose a built-in web interface that allows:
The connected targets vary by room and gameplay style.
Examples include:
The light sensors themselves include built-in RGB LEDs:
Climb uses a separate controller system for its main wall interactions.
It includes:
In addition, Climb also uses:
That means the room can involve:
Laser Escape uses a custom controller stack.
It includes:
Split:
These communicate to the PC via COM ports.
Laser also includes:
Recipe does not use traditional light sensors.
Instead:
The room is controlled through:
At a high level, the controller flow works like this:
Communication style depends on the controller family:
Used by:
These communicate with the PC using socket communication over Ethernet.
Used by:
These communicate through COM ports.
This made the controller layer flexible enough to support:
Initially, we were only using USR controllers.
That gave us a stable foundation for:
The next major step was Climb, which introduced:
This hybrid setup expanded what kinds of room mechanics we could support.
A major shift came with Laser Escape, where we built our own controllers and protocol.
The hardware stack included:
This was the first time we fully moved beyond the preprogrammed USR model into our own controller and protocol design.
Recipe introduced another new direction:
Each expansion pushed the controller network beyond a single standard pattern and made the system more flexible.
The first challenge was understanding the USR controller model and how to use socket communication effectively in practice.
Although I already knew the basics of networking and sockets, this project made it much more applied.
Important things to learn included:
All of these were new in this context, but connected naturally with the things I already knew.
Another challenge was adapting different types of physical targets into a common controller model.
Even though games looked very different physically, their device communication could often be mapped back into reusable patterns.
That meant the challenge became:
I documented these layouts for the games using the USR controller system and provided them to the construction and electrician teams.
Climb was a major challenge because I was not given protocol documentation.
I only had:
So I used:
to reverse engineer the protocol and build the communication handler.
That was not easy, especially because I had not done packet decoding before, but it was also one of the most interesting parts of the project.
Another challenge in Climb was deciding how to detect whether players had fallen off the ledge.
The choice was between:
We explored motion sensors for a while, but that required building a completely new system from scratch in both hardware and software.
For lasers, we already had a system, but at that time it was not reliable enough.
The final solution came from our construction manager:
This gave us several advantages:
Later, integrating floor tiles into Climb also enabled us to create more interesting games, and Climb became the most played room in the facility.
Laser was a major challenge.
At first, we had controller ideas that split the system differently:
That could work logically, but the physical wiring was terrible:
So we changed to a better split:
That simplified wiring, but introduced a new challenge:
Once we redesigned the protocol using a more efficient hex communication model, the system became fast and stable enough to work well, with less than 10ms delay.
I worked on both the software protocol side and the physical hardware design side of this controller network.
My contribution included:
This project involved a lot of research, experimentation, and iteration, but it became one of the most interesting parts of the facility because it connected physical gameplay directly to the software runtime.
Core tools and technologies used in this project.
Core technologies
Supporting technologies