- 200 ms end-to-end input latency
- 2 players in a shared world
- TCP wireless FPGA-to-cloud link
A cloud-computing proof of concept disguised as a racing game. Two players each hold a DE10-Lite FPGA, using its switches, buttons and onboard accelerometer as a joystick, and race their planes through a portal.
The FPGAs are pure input devices. They connect over TCP to an AWS EC2 instance, which is where the simulation lives, processing both players asynchronously and computing the next state of each plane. Both are rendered into the same world in Unreal Engine 4 on separate monitors, so each player sees the other flying alongside them. Times go into a DynamoDB leaderboard.
I owned the asynchronous handling of both players on the server, the server-side rendering and the data processing. The core problem was turning two independent input streams into one consistent shared world state without one player’s lag stalling the other.
End-to-end delay came in around 200 ms: from moving a board in your hands, across a wireless link to a datacentre, through the physics step and back to a rendered frame.