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
Langit Merah: a retro arcade shooter made with Phaser.
Translation pending
GamesHTML · PythonGitHub @dynamolabsOnlineOwner 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 ↗Langit Merah ("Red Sky") is a small retro arcade shooter that runs in the browser. Fly your ship across a red night sky, dodge enemy fire, grab power-ups and take down the boss. It works on desktop and on phones. The in-game text is in Indonesian.
| Action | Keyboard | Phone |
|---|---|---|
| Move | ← → or A / D | Drag your finger |
| Shoot | Hold Space | Automatic |
| Pause | P | Pause button on screen |
Destroy enemies to build your combo, collect power-ups (gun upgrade, shield, extra life) and survive the waves until the boss shows up. Your best score is saved in your browser.
No build step. Open index.html in a browser, or serve the folder:
python3 -m http.server 8000
# then open http://localhost:8000
It is a static site, so any static host works. On Vercel: Add New → Project, import this repository, keep the framework preset as Other, leave the build command empty, and deploy. GitHub Pages works too (Settings → Pages → branch main, root folder).
| Path | What it is |
|---|---|
index.html | The whole game (Phaser 3.60). The BALANCE block near the top holds the tuning numbers. |
sprites-embed.js | Pixel art packed as data URIs, so the game needs no extra image requests. |
audio-embed.js | Music and sound effects packed as data URIs. |
assets/art/ | Source sprites (PNG), the sprite sheet and the script that generates them (make_art.py, needs Pillow). |
assets/audio/ | Music loop and sound effects (MP3 and OGG) and the script that synthesises them (make_audio.py, needs NumPy and ffmpeg). |
All art and audio were made for this game from code; no third-party assets are used. The only runtime dependency is Phaser 3.60, loaded from cdnjs.
MIT © 2026 dinamo (dynamolabs)