Portal FPS

A multiplayer-paced first-person arena game: instant portal transfers, Scouts versus Objectives, and a three-second respawn countdown after every death.

Loading preview...
Start with this prompt

A multiplayer-paced first-person arena game: instant portal transfers, Scouts versus Objectives, and a three-second respawn countdown after every death.

Try Websites Agent
Build a small first-person arena shooter called Portal FPS. Render a low-poly arena in Three.js where the player moves with WASD, sprints with Shift, jumps with Space and crouches with C, aiming with the mouse and firing with the left mouse button at anything that moves. Paired portals are placed around the map, and stepping into one teleports the player instantly across the arena to its twin. The match pits two teams against each other, the Scouts against the Objectives, with bots filling the rosters on both sides, while a kill and death scoreboard and an objective progress bar stay visible on screen. After going down in a firefight, the player waits out a visible three-second respawn countdown before returning to the fight. When the match ends, a victory screen settles the score and shows the winning side, and a new round can be started six seconds later. Single-file static page.
Add a second weapon

Adds a second weapon slot: the 1 and 2 keys swap between a rifle and a submachine gun, so firefights gain a trade-off between fire rate and damage; mouse aim and left-click fire stay the same.

Try Websites Agent
Build a small first-person arena shooter called Portal FPS. Render a low-poly arena in Three.js where the player moves with WASD, sprints with Shift, jumps with Space and crouches with C, aiming with the mouse and firing with the left mouse button at anything that moves. Paired portals are placed around the map, and stepping into one teleports the player instantly across the arena to its twin. The match pits two teams against each other, the Scouts against the Objectives, with bots filling the rosters on both sides, while a kill and death scoreboard and an objective progress bar stay visible on screen. After going down in a firefight, the player waits out a visible three-second respawn countdown before returning to the fight. When the match ends, a victory screen settles the score and shows the winning side, and a new round can be started six seconds later. Single-file static page.
Add map rotation

Beyond the paired portals, a rotation of multi-level platform maps gives the arena more vertical depth and opens up crossfires that play on height differences.

Try Websites Agent
Build a small first-person arena shooter called Portal FPS. Render a low-poly arena in Three.js where the player moves with WASD, sprints with Shift, jumps with Space and crouches with C, aiming with the mouse and firing with the left mouse button at anything that moves. Paired portals are placed around the map, and stepping into one teleports the player instantly across the arena to its twin. The match pits two teams against each other, the Scouts against the Objectives, with bots filling the rosters on both sides, while a kill and death scoreboard and an objective progress bar stay visible on screen. After going down in a firefight, the player waits out a visible three-second respawn countdown before returning to the fight. When the match ends, a victory screen settles the score and shows the winning side, and a new round can be started six seconds later. Single-file static page.
Add a spectate mode

The three-second respawn countdown can now be spent in a teammate's spectating view, so even while waiting to respawn the player can follow how the fight is going.

Try Websites Agent
Build a small first-person arena shooter called Portal FPS. Render a low-poly arena in Three.js where the player moves with WASD, sprints with Shift, jumps with Space and crouches with C, aiming with the mouse and firing with the left mouse button at anything that moves. Paired portals are placed around the map, and stepping into one teleports the player instantly across the arena to its twin. The match pits two teams against each other, the Scouts against the Objectives, with bots filling the rosters on both sides, while a kill and death scoreboard and an objective progress bar stay visible on screen. After going down in a firefight, the player waits out a visible three-second respawn countdown before returning to the fight. When the match ends, a victory screen settles the score and shows the winning side, and a new round can be started six seconds later. Single-file static page.