Appearance
Arcade › Tunnel Rush
Click the game above and it runs right here in your browser. No download, no installer, no account needed. Esom Thankgod built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Tunnel Rush yet. Play it, then tell Esom Thankgod what you would add next.
Tunnel Rush was built by Esom Thankgod 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 Tunnel Rush 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.
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 3D arcade racing game titled “Tunnel Rush,” viewed from a third-person chase camera behind a small hover kart. The player races forward through a long, dark, gritty underground subway tunnel with three parallel rail lanes. The camera follows behind and slightly above the kart, looking down the track; as speed rises, widen the field of view modestly for a sense of motion. The environment should include a dark arched half-cylinder tunnel shell with repeating structural ribs, rusty/dark rail beds and sleepers, raised side station platforms, warm yellow platform lamps, occasional transit signs, fog, and a subdued industrial palette of charcoal, brown, steel gray, cyan checkpoint lighting, and amber lamps. Use low-poly Kenney-style train-kit, city-road, and toy-car-style assets where available, with simple procedural fallback geometry if assets fail to load. Keep real-time shadows disabled for performance, relying on emissive materials and ambient/directional lighting. Add subtle full-screen horizontal speed streaks and scanlines over the HUD. The core loop is a 920-meter race. Start on the center lane at speed 22, with a 76-second target. The player can accelerate toward approximately 37 speed, brake toward approximately 14, or coast around 27. Forward progress is automatic while the race is active. Include a 2.25-second READY/SET/GO countdown before the timer and movement begin. Keyboard controls: W or ArrowUp accelerates, S or ArrowDown brakes, A/D or ArrowLeft/ArrowRight switch one lane left or right among the three lanes, Space jumps, and P or Escape pauses/resumes. On touch devices provide large bottom controls: left and right lane buttons, BRAKE, JUMP, and BOOST (accelerate). Include Music On/Off and Pause/Resume HUD buttons. Use pointer events for touch controls and do not block canvas interaction elsewhere. Place four cyan checkpoint gate beams at 180, 360, 540, and 720 meters, showing CHECKPOINT 1/4 through 4/4 as the player passes them. Place a finish gantry at 920 meters with two posts, an overhead beam, checker tiles, and a warm glow. Populate the fixed course with these hazards at the specified distance and lane (lanes are left/center/right): barriers at 55 left, 198 right, 344 left, 512 center, 680 right, and 846 left; gaps at 82 right, 228 center, 424 center, 548 left, and 762 center; parked subway trains at 114 center, 260 left, 388 right, 588 right, 724 left, and 878 center; track-switch hazards at 150 left, 306 right, 468 left, 636 center, and 808 right. The player must change lanes to avoid hazards. Barriers and gaps can be cleared by jumping while airborne, but trains and switches cannot be jumped over. A collision occurs when the player is in the hazard lane and within the hazard’s hit distance; on collision increment crashes, reduce speed to 10, move progress back 10 meters, show a crash message, and grant about 1.25 seconds of invulnerability. Allow at most three crashes; the third ends the race. Gaps should appear as black track openings with yellow edges. Switches should be orange warning wedges/misaligned rails. Trains should be visibly much larger than the kart and occupy their lane; barriers should be low construction barriers. Add three AI hover-kart racers named RUST, SPARK, and METRO, initially in the left, center, and right lanes, with blue, red, and green color schemes. They move automatically at roughly 23, 23.65, and 24.3 speed, subtly varying speed and occasionally changing lanes; they should avoid upcoming obstacles in their current lane and be visible when within a reasonable range around the player. Show their standings against the player. The player wins if they finish first or complete the course within 76 seconds, even if an AI finishes first but the player beats the target time. The player loses after three crashes or when the 76-second timer expires. When the player finishes, calculate rank among racers that have finished and show a win/lose result overlay. Include elapsed time, target time, speed in km/h (game speed multiplied by about 3.1), crashes out of 3, remaining finish distance, checkpoint count, and Rank 1/4 through 4/4 with racer names in the HUD. Use clear messages for READY, SET, GO!, JUMP, GAP CLEARED, BARRIER CLEARED, crashes, checkpoints, win, lose, and out-of-time states. The initial screen should be a centered dark translucent card over the tunnel with a large amber “TUNNEL RUSH” title, a description explaining the subway hover-kart race, lane switching, braking for gaps, jumping barriers, and beating AI racers, keyboard instructions, and a rounded amber/orange Start Race button. Style the interface with charcoal translucent panels, thin amber borders, pale text, glowing warm accents, and rounded controls. On pause, freeze timer, AI, hazards, and movement, pause the background music, hide the active race HUD/touch controls as appropriate, and show a centered PAUSED card with Resume Race and Restart buttons. On finish or loss, show a centered result card with the outcome, final time, crashes, checkpoints, and a Restart Race button. Add a looping audio track named “Subway Pulse” that starts from the Start Race gesture, defaults to enabled at low volume, and can be toggled with the Music button. Expose game-state debugging functions equivalent to window.getGameState() and window.setGameState(patch), including race status, player/AI positions, timing, checkpoints, music, and performance metrics.