Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
First-person parkour tag for the browser. Slide, wall-kick, tag your friends with a 4-letter code.
GamesJavaScript · CSSGitHub @GrosessOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A first-person parkour tag game for the browser. You play as a little eraser-block person with stick limbs. Run, slide, wall-kick, and play with friends using a 4-letter join code.
index.html in Chrome, Edge, or Firefox. Double-clicking the file works fine.Each friend needs their own copy of the files, or you can put the folder online (see below) and send everyone the link.
A link like index.html?code=MOKU pre-fills the code.
Settings (sensitivity, FOV, volume, invert Y...) and rebindable controls are on the main menu and in the Esc menu. Resolution adjusts itself when frames run slow; turn on Performance mode in Settings on slower computers (lower resolution, no shadows).
| Key | Action |
|---|---|
| W A S D | Move |
| Shift | Run (no stamina) |
| Space | Jump. In the air next to a wall, it's a wall kick toward where you're looking |
| C / Right click | Slide (when running fast) or crouch |
| (contact) | Run into someone to tag them (pass the bomb, steal the crown, catch the runner) |
| F | Talk (your head flaps open; everyone sees it) |
| Tab | Big leaderboard (a small one is always on the right) |
| R (hold) | Look behind you |
| Esc | Pause menu |
CPUs: the host can add CPU players (Easy / Medium / Hard) in the Lobby tab of the pause menu, and remove them with the ×. They play every mode with the same movement as people. Easy CPUs only walk, hop and drop; Medium ones also mantle and use jump pads; Hard ones jump gaps, aim where you're heading, slide to close in, and flee toward spots they can reach before you.
Your stats (games, wins, tags...) are saved in your browser - see Stats in the main menu.
Floors are 4m apart everywhere, and jumps under low ceilings are capped, so you never bump your head. Orange walls are wall-kick routes.
| Map | Setting | What it is |
|---|---|---|
| Rooftops | void | City roofs 4-24m over the void with 3m alleys you can kick up, fire escapes, kick signs, penthouses, sky bridges, pipes to slide under |
| Container Yard | sky + sea | Container piles up to 18m, container bridges, skewed containers, a solid crane with kick towers, pipe racks to slide under |
| The Corridors | indoor | Two floors of looping 3m hallways drawn from ASCII grids in the map file: vents, slide bars, kick shafts and stairwells |
| Fog | fog | A suburban street lost in thick fog: gable roofs, kick alleys, fences, trailers, a treehouse, a park with a merry-go-round |
| The Playhouse | indoor | One big play hall: a castle, a balloon room, a spiral climb tower, a slide hill and a play deck on three heights |
| Moon Base | space | Low gravity. Habitat modules and tubes on a floating rock split by a rift, a comm tower, a lander, a hangar |
| The Kitchen | indoor | You're tiny in a giant kitchen: drawer staircases, chairs to slide under, a toaster launch onto the fridge |
| The Test Lab | indoor | White test chambers around a frosted-glass atrium you can't wall-kick, crossed by bridges at two heights |
| The Clocktower | indoor | Spinning gears you ride (they turn your view), a pendulum, lifts, bells and glowing clock faces |
| The Skatepark | outdoor (walled) | A seaside skatepark: a big funbox with a slide tunnel, towers, corner platforms, ramps, containers |
| Bounce House | indoor | A long Z-shaped trampoline park: a bouncy runway down the middle, terraces stepping up both ends, a foam pit, bridges and a kick chimney |
| The Loop | fog | Endless: the map repeats forever - walk off one edge and you come in the other side |
Level features: jump pads (glowing squares), moving platforms you can ride, spinning bars that shove you, and kick walls (always bright orange-red).
Every file is static, so any static host will work: GitHub Pages, itch.io (upload a zip as an HTML game), or Netlify Drop.
| File | What's in it |
|---|---|
js/config.js | Every movement number (speed, air control, slide, wall kick, gravity), tag rules, default keys |
js/map.js | The map kit: box (can be rotated), ramp, pad, stairs, slab, bridge, tower (multi-floor buildings), kickShaft, enclose (indoor box), pile / container (shipping containers). mover (moving/spinning boxes), balloons, wall (invisible). Maps pick env: 'void' / 'indoor' / 'sky' / 'fog' / 'space', can override movement (move: { gravity }), and race courses set kind: 'race' |
js/maps/*.js | One file per map. Copy one to make your own, then add a <script> line for it in index.html. A map can list its own spots (spotlights) |
js/character.js | The block character (body + hinged head, stick limbs) and its animation |
js/player.js | Movement code |
js/world.js | Collision, moving platforms, balloons, level features |
js/game.js | Camera, HUD, menus, sounds, stats, and the rules for every mode |
js/net.js | Lobbies and join codes |
style.css | How the menus and HUD look |
Some easy changes to try:
airTurn in config.js.slideFriction.The game uses PeerJS (WebRTC), so browsers connect to each other directly. The host's browser runs the rules: timer, who's IT, duel scores, falls, map changes, and checking tags. If the host leaves, the game ends.
peerServer in config.js.