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。 以下為已儲存的摘錄。
A 2D neon-cyberpunk tower defense game built with Phaser 3, TypeScript (strict) and Vite, intended for Poki.
Hold a ruined city's last reactor against 10 waves of corrupted machines. A full run takes about 5–8 minutes.
dist/ is a fully static site with relative asset paths, so you can upload it to any static host or zip it for Poki.
.github/workflows/deploy.yml builds and publishes dist/ on every push to main. You can also run it by hand from the Actions tab.檢視完整 README ↗A 2D neon-cyberpunk tower defense game built with Phaser 3, TypeScript (strict) and Vite, intended for Poki. Hold a ruined city's last reactor across a 4-sector campaign (44 waves, with Titan boss fights). Each sector takes about 6–8 minutes. Stars and sector challenges buy permanent upgrades in the Workshop.
Picking this up on a new PC? Start with docs/STATUS.md: setup, current Poki progress and the backlog.
Requires Node.js 20+ and Git.
git clone https://github.com/shafiq1rwan/neon-grid.git
cd neon-grid
npm install
npm run dev # http://localhost:5173
npm run build # type-check + production build into dist/
npm run preview # serve the production build locally
npm run package # build + zip for Poki into release/
npm run package builds and zips the game into release/neon-wasteland-v<version>.zip (index.html at the root), ready to upload to Poki.
dist/ is a fully static site with relative asset paths, so you can upload it to any static host or zip it for Poki.
.github/workflows/deploy.yml builds and publishes dist/ on every push to main. You can also run it by hand from the Actions tab.
One-time setup: in the repo's Settings → Pages, set Source to GitHub Actions. The game then appears at https://<user>.github.io/<repo>/. Asset paths are relative, so the repo subpath works.
Space next wave, 1–6 quick build (in drawer order), U upgrade, S sell, F speed, P/Esc pause.| Tower | Role |
|---|---|
| Pulse | Cheap, fast single-target bolts |
| Cannon | Heavy shells with recoil; pierces armor |
| Missile | Homing missiles with splash damage |
| Tesla | Arcs that chain between enemies; 2x damage to shields |
| Laser | Sustained beam after a warm-up; pierces armor (unlocked in Sector 2) |
| Cryo | Frost pulse slows everything in range; frozen machines take +15% damage (unlocked in Sector 3) |
| Enemy | Trait |
|---|---|
| Corrupted Drone | Basic |
| Rift Runner | Very fast, fragile, leaves a teal trail |
| Wasteland Juggernaut | Huge HP and flat armor; looks damaged below 50% |
| Shielded Specter | Energy shield absorbs damage first |
| Swarm Spawner | Releases swarmlings that follow the road |
| Titan War Machine | Sector 3 boss: massive armor, resists frost slow |
src/
main.ts Phaser config, audio unlock, Poki init
game/
config.ts palette, layers, economy and timing constants
data/ towers.ts, enemies.ts, waves.ts, maps.ts (all balance lives here)
entities/ Tower, Enemy, Projectile
systems/ Enemy, Tower, Projectile (pooled), Wave, Economy, Targeting
rendering/ Canvas2D art baked once into textures at boot
(TowerRenderer, EnemyRenderer, EnvironmentRenderer, EffectsRenderer)
scenes/ Boot, Menu, Sector (select), Game, UI (HUD overlay), Result
ui/ HUD, TowerMenu, UpgradePanel, Tutorial (hints), widgets
audio/SoundSystem.ts Web Audio synthesised SFX (no audio files)
platform/PokiAdapter.ts all Poki SDK calls, isolated from gameplay
utils/ MathUtils, ObjectPool, Storage, View (screen fitting), Fullscreen
scripts/package.mjs zips dist/ into release/ (npm run package)
.github/workflows/deploy.yml GitHub Pages deploy on push to main
output/marketing/ Poki thumbnail + generation prompt
Art: there are no image or audio assets. All art is drawn procedurally with Canvas2D (gradients and baked glow) into cached textures when the game boots. At runtime the game only draws sprites plus one shared Graphics object for arcs and beams.
Balance: edit src/game/data/*.ts. Tower levels, enemy stats, wave composition and HP scaling are all data-driven.
PokiAdapter uses only documented SDK v2 calls (https://developers.poki.com/guide/sdk-html5): init, gameLoadingFinished, gameplayStart/gameplayStop, commercialBreak, rewardedBreak.
commercialBreak() runs before each new run (Play, Retry, Restart). It never runs during combat. Audio is suspended while an ad plays.?poki to the URL. If the SDK is missing or blocked, the game runs standalone with no ads, and Revive is hidden (no reward without an ad).| Doc | Contents |
|---|---|
| docs/STATUS.md | Start here: new-PC setup, current Poki progress, backlog, release routine |
| docs/GAME_DESIGN.md | Rules, damage model, full tower/enemy/wave tables, UI, art direction |
| docs/ARCHITECTURE.md | Scenes, systems, rendering, events; how to add towers, enemies and maps |
| docs/BALANCING.md | Tuning levers, design targets, bot validation results |
| docs/POKI_INTEGRATION.md | SDK usage, event flows, ad rules, submission checklist |
| docs/POKI_SUBMISSION.md | Poki listing copy, categories, thumbnails, upload zip, requirements checklist |
| docs/TESTING.md | Debug snippets and manual QA checklist |
| CHANGELOG.md | Release history |
LocalStorage key neon-wasteland-defense:v1 (kept from before the rename to Neon Wasteland, so saves survive) stores: mute setting, whether the tutorial is done, best stars per sector (mapStars, which also drives unlocks), best wave reached and the win count. Progress is per browser, so it doesn't follow you to a new PC.