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
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
One game codebase (HTML5 canvas) wrapped as a native Android app with Capacitor. The same www/ folder will later become the Mac app.查看完整 README ↗One game codebase (HTML5 canvas) wrapped as a native Android app with Capacitor. The same www/ folder will later become the Mac app.
| Path | What it is |
|---|---|
src/template.html | The game engine: rendering, battles, Traits, Linker Sync, space flight |
data/core_battle.json | Trait library and signature moves shared by every batch |
data/batches/batch01_kessler/ | Batch 1: 300 Alienmon and 14 planets of the Kessler System |
tools/build.js | Merges all batches into the engine and writes www/index.html |
www/ | The built game Capacitor packages into the app |
art/raw/ | Original ChatGPT renders, named after the Alienmon (e.g. Gearhound.png) |
art/sprites/ | Cleaned game sprites made from art/raw |
art/characters/ | Player (boy/girl, 4 directions), NPC and Keeper sprites, named by role (vashti.png, hank.png...). Planets point to them with npcArt and Keeper art in planets.json |
art/scenes/ | Environment scenes used as battle backgrounds and landing scenes. Each planet picks one with scene (and an optional color sceneFx) in planets.json |
art/ui/ | Title screen (title.jpg), starship sprite (ship.png), launch/landing cutscenes (cut_0-2.jpg, 640x576), original art sheets, and the Google Play feature graphic (1024x500) |
docs/ | Battle/Sync rules, expansion guide, per-Alienmon Trait list |
You need Node.js 18+, Android Studio (with an Android SDK and an emulator or a phone in developer mode) and Java 17+.
npm installnpx cap add android (first time only; creates the android/ project)android/app/src/main/AndroidManifest.xml, add android:screenOrientation="portrait" to the <activity> tag.npm run android — builds the game, syncs it into the Android project and opens Android Studio.Offline font: download PressStart2P-Regular.ttf from Google Fonts into www/fonts/ so text renders without internet.
App ID: change appId in capacitor.config.json to your own reverse domain (for example com.yourstudio.alienmon) before the first npx cap add android. It can't easily change after you publish.
Icons and splash: add a 1024x1024 assets/icon.png and assets/splash.png, then run npx @capacitor/assets generate --android.
.aab to an internal testing track first, then closed testing, then production.art/raw/<Name>.png, using the exact Alienmon name.pip install pillow numpy scipy (first time only).python3 tools/process_art.py art/raw art/sprites art/holes.json removes the white background, trims, centers and shrinks each image to a 192px sprite with a 64-color palette.npm run build. Any Alienmon with a sprite uses it; the rest keep their placeholder pixel sprite.If a creature has large white gaps inside its shape that should be see-through (like Orbitusk's orbit rings), add it to art/holes.json. Battle back views currently use the mirrored front art; dedicated back renders can be added later.
src/template.html or data in data/.npm run build and open www/index.html in a browser to test quickly.npm run android when you want it on a device.Saves are stored on the device (WebView local storage). The Android back button acts as the B button.
See docs/PLATFORM_ROADMAP.md for the Mac plan and docs/EXPANSION_GUIDE.md for adding new batches of Alienmon.
A planet listed in data/painted_maps.json is explored by walking over a full illustration instead of the tile map.
Each entry gives the image key (from art/scenes/), the scale, a packed walk mask and drift-grass mask (8 px cells),
the start point, the exit line to the landing pad, and hotspots (Recovery Bay, shop, talking NPCs, a battle-ready
Alienmon, and solid blockers). The masks were drawn as polygons; art/painted/mask_check.png shows them over the art.
UNLOCK_ALL in src/template.html opens every planet. Set it to false to restore Signal Shard gating.
art/fx/ holds the move effect sprites, keyed by type in FXT inside src/template.html.
data/world_map.json drives on-foot travel across art/world/molten_frontier.webp (stitched from the six 512px sections in art/world/molten_frontier_sections/; the earlier Kessler overview map is kept in art/world/previous_kessler_map/): a packed walk mask (8 px cells),
region nodes (each links to a planet key, so entering a node loads that planet's town and pools), and NPCs
(talk or trainer; trainers build a team from the nearest region's Alienmon and pay out once).
art/world/walk_check.png shows the walkable area in clear, blocked in red.
Special node kinds: bay opens a Recovery Bay, space flies the ship to the star chart. zones pick which planet's wild
Alienmon appear by x-position (coast = Thalassa, lava fields = Pyros).
audio/save_the_stars.mp3 (96 kbps re-encode of the original in the same folder) loops in the background.
Volume is MUSIC_VOL in src/template.html (0.18). Players toggle it with the Music option in the START menu or the M key;
the choice is remembered. Browsers only start audio after the first tap or key press.
audio/lets_go_alienmon_title.mp3 ("Let's Go! Alienmon") plays on the title, character select, intro and starter screens, then crossfades into the gameplay track.
Four original looping tracks are synthesized live with Web Audio (no audio files): Frontier Walk (world map),
Dustmere Breeze (towns), Starlight Drift (space) and Battle Spark (battles). They live in the CHIP object in
src/template.html: each has a tempo, a chord per bar, and an 8-step melody per bar (- holds, . rests), so
new tracks are easy to write. The START menu Music option cycles Chip / Song / Off (M key too).
CHIP_VOL sets the chiptune volume.
START > Arena opens a real-time 1v1 against the computer at level 50 (src/arena.js). Both Alienmon are copies, so the party is never changed; only a win/loss record is saved (G.rta).
Move shapes, cooldown tiers and the HP scale are in data/arena.json. The full plan is docs/arena/ARENA_BUILD_PLAN.md, and the render prompts are in docs/arena/prompts/.
Imported arena art (python3 tools/import_arena_sheet.py) lands in art/arena/ and is picked up by the build automatically. Until then the arena uses the battle sprites, battle backgrounds and move effects.