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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A browser-first sci-fi RPG centered on skill grinds, crafting, and server-authoritative loops. Built with agentic coding harnesses (Claude Code, Codex, Hermes) under human architectural review. Pre-alpha.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Status: Playable pre-alpha — active development. RuneSpace is a browser-first, low-fi sci-fi RPG with a real early-game vertical slice: server-authoritative Play orchestration, Travel/Scavenging, Ferrite Shale Mining, Refining, Welding/Cargo Hold repair, Inventory/Equipment, locations, Power Cell/Power Annex, NPC interactions, the Holo Hollow settlement with Local Places, character Credits, and NPC merchant Trade, missions, and skill progression. Still early and under active development.檢視完整 README ↗Status: Playable pre-alpha — active development. RuneSpace is a browser-first, low-fi sci-fi RPG with a real early-game vertical slice: server-authoritative Play orchestration, Travel/Scavenging, Ferrite Shale Mining, Refining, Welding/Cargo Hold repair, Inventory/Equipment, locations, Power Cell/Power Annex, NPC interactions, the Holo Hollow settlement with Local Places, character Credits, and NPC merchant Trade, missions, and skill progression. Still early and under active development.
RuneSpace is a planned browser-first, mobile-friendly, low-fi sci-fi RPG inspired by the progression, quests, social texture, and long-term grind of old-school MMORPGs and action-point games. It is not a RuneScape clone.
The architecture is a modular monolith with a server-authoritative game model: the browser is never the trusted source of progression. Gameplay outcomes are resolved by server-side domain logic and persisted server-side. The generic transaction/locking/action-cursor/lazy-resolution lifecycle lives in server/action-resolution.ts; server/play.ts owns composed activity resolution and shared Play state assembly (server/play-state.ts) and the client shell (features/play/). Activity resolvers (Mining, Refining, Travel, Welding) own only their activity; feature-specific UI stays feature-owned.
| Concern | Choice |
|---|---|
| Language | TypeScript (strict) |
| Framework | Next.js (App Router) + React |
| Styling | Tailwind CSS |
| Database | PostgreSQL |
| ORM | Drizzle ORM |
| Validation | Zod |
| Unit tests | Vitest |
| Browser tests | Playwright |
| Package mgr | pnpm (committed lockfile) |
| Deploy | Docker / Coolify |
| Minigames | Phaser (later, isolated boundaries) |
Pinned versions: Node 22, pnpm 9.15.4 (see package.json engines/packageManager).
Prerequisites: Node 22, pnpm 9.15.4, Docker (for Postgres), and optionally Playwright browsers.
# 1. Install dependencies (frozen lockfile)
pnpm install --frozen-lockfile
# 2. Start PostgreSQL (writes to a docker volume)
docker compose up -d
# 3. Configure environment
cp .env.example .env
# (default DATABASE_URL matches docker-compose.yml)
# 4. Apply committed migrations
pnpm drizzle-kit migrate
# 5. Run the dev server
pnpm dev
# open http://localhost:3000
To install Playwright browsers for local e2e tests:
pnpm exec playwright install --with-deps
See .env.example. Validated at startup by server/env.ts (Zod).
| Var | Required | Notes |
|---|---|---|
NODE_ENV | no | development | test | production |
DATABASE_URL | yes | PostgreSQL connection string for the pg Pool |
| Command | Purpose |
|---|---|
pnpm dev | Start the dev server |
pnpm build | Production build |
pnpm start | Start the production server |
pnpm lint | ESLint (next lint) |
pnpm format | Prettier write |
pnpm format:check | Prettier check |
pnpm typecheck | tsc --noEmit (strict) |
pnpm test | Vitest unit tests |
pnpm test:integration | Disposable PostgreSQL integration tests |
pnpm test:e2e | Playwright browser tests (local) |
pnpm test (Vitest, pure domain/schema logic — fast, no DOM).pnpm test:integration (Vitest against a fresh disposable PostgreSQL database; migrations and cleanup are automatic).pnpm test:e2e (Playwright, focused journeys, using a disposable database). CI runs the 70-test canonical browser-journey selection across 13 behavioral specs via pnpm test:e2e:canonical; smoke, ownership, design-system, and QC Studio specs remain outside that merge-gate selection. See docs/testing-strategy.md for the sharded runner and opt-in screenshot lane.docs/testing-strategy.md.nixpacks.toml retains the package build and start behavior while asserting the committed Drizzle migration assets are available to the runtime.docs/deployment-database.md.docker-compose.yml provides a local PostgreSQL for development. The app itself is run with pnpm dev on the host (the container only covers the DB).Read these before contributing:
AGENTS.md — rules for coding agents (scope, SSOT, extraction, testing, PR workflow).docs/architecture.md — modular monolith, server-authoritative model, boundaries, dependency direction, and Play orchestration.docs/game-rules.md — current design direction (implemented vs. approved vs. future).docs/gameplay-foundations.md — server-authoritative timing, progression, inventory, and action contracts.docs/missions.md — declarative mission framework and authoring contract (single-phase, server-authoritative).docs/component-boundaries.md — extraction rules.docs/art-cookbook.md — art direction, generation workflow, asset preparation, and visual QA.docs/testing-strategy.md — risk-based testing.docs/development-workflow.md — one issue/branch/PR workflow and CI.docs/analytics.md — PostHog product analytics: event contract, privacy gates, Coolify configuration, and dashboard setup (issue #413).RuneSpace is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE.
docs/admin-console.md