James Liu← All work

Alternate-controller horror game

Signal Lost

A physical rotary phone becomes the interface to a horror game. I owned hardware integration and build engineering, and contributed to gameplay system design.

Signal Lost poster featuring a red rotary phone inside a dark telephone booth
Focus

Hardware integration, systems & build engineering

Tools & methods

Unreal Engine · C++ / Blueprints · Arduino · Python · MediaPipe · OSC

Project

Alternate-controller horror game

One playable system across hardware and software.

I was responsible for all hardware-related engineering and the game’s build engineering. My work connected the physical phone, input and output devices, and Unreal into a playable system; I also participated in gameplay engineering discussions.

The game’s premise—observe, report, survive—makes a familiar telephone an unsettling interface. Dialing, speaking, listening, and player attention become parts of the interaction rather than separate peripherals.

  • Owned the physical controller and hardware integration
  • Integrated the input, audio, and attention pipelines with Unreal
  • Handled game builds and contributed to gameplay system design

Translate the rotary dial into game input.

The rotary mechanism produces electrical pulses. An ELEGOO Mega 2560 reads those pulses and sends input over USB serial to Unreal, connecting a mechanical interaction to the game’s input logic.

A microphone provides voice input to the PC, while an amplified speaker routes game audio through the telephone. The controller is both an input device and a physical audio output.

  • Rotary dial → Mega 2560 → USB serial → Unreal
  • Microphone → PC voice input → game interaction
  • Game audio → amplifier → telephone speaker

Make the player’s attention part of the interface.

The attention pipeline uses a webcam and MediaPipe in a p5.js application. A WebSocket connection forwards the result to a Python bridge, which sends attention state to Unreal through OSC.

The engineering challenge is coordinating these separate device and application paths with gameplay. My role covered hardware integration, build engineering, and system design discussions so the complete setup could function as one experience.

  • Webcam → MediaPipe / p5.js → WebSocket
  • Python bridge → OSC → Unreal attention state
Next projectBehavior Tree Framework