Skip to content

Arcade › Twin Tunnel

Twin Tunnel

  • 3d
  • local-multiplayer
  • arcade
  • survival
  • endless
  • neon
0
Remix it Discord

5 plays

How to play

Click the game above and it runs right here in your browser. No download, no installer, no account needed. Sam Marquez built it with Cinevva, so it works on a phone or a tablet too.

Discussion

Nobody has said anything about Twin Tunnel yet. Play it, then tell Sam Marquez what you would add next.

Make your own game

Twin Tunnel was built by Sam Marquez with the Cinevva game creator: describe the game you want in chat, watch it get built, and play it in your browser minutes later.

Remix Twin Tunnel opens the real game in the creator and forks its actual files, chat and design doc, so you start from the code rather than from a description.

Read the build brief for Twin Tunnel

Cinevva's analyzer read this game's design doc and its source, then wrote the brief below. "Make your own" hands it to the game creator as your opening message, so you start from a real spec rather than a one-line idea.

Create a browser-based local 2-player 3D survival racing game titled “Twin Tunnel,” using a dark neon Tunnel Rush-style aesthetic. Render the action in Three.js with a single shared scene shown through two split-screen perspective cameras: on wide screens, Player 1 occupies the left half and Player 2 the right half; on portrait/mobile screens, stack the views vertically with Player 2 on top and Player 1 on bottom. Add a thin glowing cyan/pink divider between the views.

The shared world is a long cylindrical tunnel, radius about 7 units and extending hundreds of units forward, with a dark blue semi-transparent inner wall, subtle emissive shading, fog, ambient/hemisphere/directional lighting, and a field of small pale-blue stars outside/in the background. Add faint blue torus lane rings along the tunnel. Each player is a small glowing low-poly cyan or pink icosahedron riding around the inside circumference of their tunnel view, leaving a short colored trail. The camera follows just behind and slightly inside the player, looking forward down the tunnel; the player’s angular position determines where around the circular tunnel wall the camera and avatar sit.

Both runners automatically move forward through the tunnel. Their starting angular positions are opposite each other. Player 1 is cyan and Player 2 is pink. Holding the left/right direction rotates the runner around the tunnel circumference at a constant angular rate; release stops rotation, while forward motion continues automatically. The tunnel speed starts around 24 and accelerates gradually with elapsed time up to about 58, so the game becomes harder. Distance survived is the score, displayed as a whole number, and each player’s score also shows their persistent win count in the format “distance · winsW” until the page is refreshed.

Generate a repeating sequence of roughly 48 obstacle rings placed down the tunnel at about 10-unit intervals, beginning just ahead of the players. Each ring is a solid pink/red annular wall that fills most of the circular circumference but leaves one safe arc/gap about 0.85 radians wide. The gap position is generated deterministically from a random seed, with each ring also slowly rotating. Recycle rings as the runners advance so the tunnel remains endless; use the same obstacle pattern/seed for both players. When a player reaches a ring, check whether their angular position is inside the safe gap. If not, they collide with the solid wall, become inactive, and visibly flicker/disappear briefly. Continue until at most one player remains alive; the surviving player wins, their win count increments, and the menu returns with a “Player 1 wins” or “Player 2 wins” result. If both somehow fail simultaneously, show the neutral title state.

Use the following controls exactly: Player 1 uses A to rotate left and D to rotate right, or the two left-side on-screen touch buttons. Player 2 uses Left Arrow and Right Arrow, or the two right-side touch buttons. Touch buttons should be large translucent dark controls with cyan or pink glow and left/right arrow glyphs, supporting press-and-hold and pointer release/cancel. Space starts a race from the game-over/menu state and toggles pause during a race. R restarts with a fresh random obstacle seed. Include clickable Start race, New seed, and Pause/Resume buttons.

Build a glassy dark HUD over the canvas. At the top, show a cyan Player 1 score card on the left, a centered status card, and a pink Player 2 score card on the right. The live center status should say “Race live” and include both current speeds; the hint should explain staying inside the gap. During pause show “Paused” and how to resume. Add bottom split labels identifying “Left view · Player 1” and “Right view · Player 2,” repositioned appropriately for portrait mode. Use responsive safe-area padding and hide touch controls, labels, and pause button when not racing.

On the initial/game-over state, show a centered blurred dark modal card with the large title Twin Tunnel, explanatory subtitle describing a local two-player head-to-head survival race, and three instructional cards: Player 1 A/D or left touch controls, Player 2 arrow keys or right touch controls, and the rule that both tunnels accelerate and crashing into a wall lets the other runner win. Include a Mode card explaining split-screen versus on one phone or keyboard and a Next upgrade card mentioning ghosts, power-ups, or shared-seed/online possibilities as informational text only. Provide bright cyan “Start race” and pink “New seed” buttons. Keep the overall visual language dark navy/black with cyan and magenta neon accents, rounded translucent panels, subtle borders, backdrop blur, and responsive mobile-friendly layout. Do not add power-ups, ghosts, online networking, audio, lives, weapons, or other mechanics not described here.

More free browser games

Browse the whole Arcade →