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
Find the wanted robot in a crowded neon city
Translation pending
GamesHTML · JavaScriptGitHub @tb-xOnlineOwner 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 3D hide-and-seek game, made for phones and tablets.
A crowd of robots walks the streets of a neon city at night. The WANTED poster shows the robot you're looking for. Find it and tap it before the time runs out.
Play: https://tb-x.github.io/robot-spy/
It is one index.html plus the sound clips in assets/, with no build step. three.js 0.169 loads from jsDelivr. Serve the folder over HTTP, for example:
python -m http.server 5203
Then open http://localhost:5203. Opened straight from disk the game still works, but the browser won't load the clips: you hear the built-in synthesized sounds, and the spoken lines are silent.
During a search a little spy tune plays. It's made in the browser as the game runs, so it never repeats exactly, gets a bit faster in the last 10 seconds, and dips while the voice is talking. The sound button mutes it with everything else.
On iPhone or iPad, open the game in Safari, tap Share → Add to Home Screen, then open it once from the new icon while online. After that it starts full screen and works without internet. Changes I publish arrive on their own: the next online launch downloads them and the one after shows them.
(How: manifest.webmanifest gives the icon and full-screen mode; sw.js, a service worker, keeps a copy of every file the game uses, including three.js, the font and the sound clips.)
At the top of the sound and music sections in index.html:
CLIP_VOL and VOICE_VOL: how loud the sound effects and the spoken lines are (0 to 1).CLIP_TRIM: per-clip volume trims that even out the clips. Lower a number if a sound is too loud.MUSIC_VOL: how loud the music is; MUSIC_DUCK: how far it dips under the voice.MUSIC_BPM and MUSIC_HURRY: the tempo, and how much faster it gets in the last 10 seconds.ASSET_V: bump it after replacing any file in assets/, so phones don't keep the old one.Voices and sounds: elevenlabs.io. All clips were made on 2026-10-08 with an ElevenLabs free plan, so they may only be used non-commercially and must credit ElevenLabs. They are not covered by any licence on this game's code.
assets/say-*.mp3, 12 clips): voice "Roger", model Eleven Multilingual v2. A briefing per level, the wrong-tap and "so close" lines, two "found it" lines, the scan hint, the five-seconds warning and the time's-up line.assets/sfx-*.mp3, 5 clips): ElevenLabs Sound Effects. Error buzzer, success jingle, radar scan, power-down and power-up chime.The music, the button tap and the last-five-seconds tick are synthesized in the browser.