Invaders is a shared-screen multiplayer defense game for RCWeb. One browser becomes the city battlefield, while each phone becomes a personal control deck for its own ship. The whole room fights on the same front line at once, dodging enemy fire, punching holes through the formation, and trying to keep the skyline standing through a full five-round campaign.
Invaders takes the classic lane-shooter feel of a vintage alien invasion game and stretches it into a cooperative-competitive room experience. Every connected player gets a ship, a score, a life count, and a place on the live scoreboard, but everyone shares the same battlefield, enemy formation, shields, and round progression.
The campaign runs through five escalating rounds. Each wave becomes denser, faster, and more dangerous, with more aggressive enemy shots and tougher pressure on the defensive line. Players can chip away at invaders, protect themselves behind the shared shields, and climb the ranking through score, survival, and accuracy. If the room clears every wave, the city holds. If the invasion breaks through first, the campaign ends with a final report.
Open /invaders/ on the shared screen. Players scan the QR code to open /invaders-control/ on their phones in the same room. Each controller becomes a ship console with steering and firing controls.
Move left and right to line up shots, then fire upward into the invading formation. Enemy fire comes back down toward the defense line, so survival depends on moving, shooting, and using the shields without wearing them away too quickly.
Each player starts with 4 lives. Getting hit costs a life and sends the ship into a short respawn. As long as at least one pilot still has lives remaining, the defense can continue into the next round. Clearing a wave advances the campaign; losing the whole line ends it.
At the end of the run, Invaders shows a summary ranked by player performance, including score, accuracy, enemies destroyed, and remaining lives.
Invaders uses RCWeb's room-based WebSocket layer to split the experience between one display and many controllers. The display and all phones join the same RCWeb room using the rc values injected by the Java server. The display publishes a QR code with that room already selected, so pilots can jump straight into the right battle without setup friction.
The display owns the game state. It creates and advances the enemy formation, tracks players, shots, shields, rounds, respawns, and summary rankings, and decides when the campaign advances, resets, or ends. That keeps the action fair and gives every phone a clean view of the same invasion.
Phones communicate with the display through comms.js and RCWeb function calls. A controller registers itself, streams steering and firing input, and receives targeted updates for score, lives, rank, round status, and pulse messages. The result feels like a dedicated multiplayer cabinet defense game, but it runs on RCWeb's lightweight Java backend and vanilla browser apps.