About the project
Inspiration
Twitch chat often votes on what a streamer should do, but we wanted viewers to have a real role in the action. In LAST SIGNAL, the pilot flies the ship while chat becomes the crew keeping it alive.
What it does
The pilot steers, fires lasers, and uses Shift to dash with fuel supplied by viewers. Viewers join with !join, then use !shield, !boost, and !repair to support the ship. They can send named power-up crates with !drop or throw named meteors with !meteor. Catch a crate and press E to use a Nova Bomb, Bubble Shield, or Overdrive Guns.
When three different viewers coordinate the ship’s stations within six seconds, they trigger ALL HANDS and expand the rescue range. The crew must recover three escape pods and bring all 13 survivors home before the jump window closes.
How we built it
We built the game with OpenAI Codex using React, TypeScript, Vite, Node.js, Express, and WebSockets. The server owns the mission simulation, Canvas renders the game, and Web Audio generates its music and effects. Twitch chat connects through anonymous, read-only IRC. A separate spectator view can be added to OBS.
Challenges
We wanted viewer actions to matter while keeping the pilot in control. Chat supplies dash fuel, but the pilot chooses when to spend it. Power-up crates must be caught before they can be used. Cooldowns and clear feedback help keep chat actions readable during play.
Accomplishments
The game connects to real Twitch chat, credits viewer contributions, and completes a full rescue. The demo includes a real Twitch session where anashk999 sent !join, !boost, !drop, and !meteor; the game accepted all four commands.
What we learned
Chat actions need immediate feedback: who acted, what changed, and why a command was rejected. Making viewer support create choices for the pilot made the cooperation feel more meaningful.
What's next
We’d like to add more routes and cooperative encounters, expand accessibility controls, and test with more human players.
Built With
- express.js
- html
- node.js
- openai-codex
- playwright
- react
- twitch-irc
- typescript
- vite
- web-audio-api
- websockets
