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를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
public facing side of the Aleucia TTRPG world. Runs on Node + Vitest (jsdom environment). The suite covers:README 전문 보기 ↗
public facing side of the Aleucia TTRPG world.
npm install
npm test
Runs on Node + Vitest (jsdom environment). The suite covers:
tests/unit/ — the pure logic in assets/js/*.js (auth/session handling, the
auth guard, the content-store cache, character-data helpers, world.js
helpers, the relationship graph, the player nav menu). These scripts are
loaded exactly as a <script> tag would, so no source changes were needed
to test them.tests/data/ — validates data/*.json against data-schema.json's field
list, and cross-checks the exported data itself (relationship edges resolve
to real entities, image paths resolve to real files, manifest counts match
the data on disk, the auth.js roster matches data/characters.json).tests/static/ — every protected page loads assets/js/guard.js first (see
SECURITY.md), and every internal link/asset reference across the site
resolves to a real file.CI runs this on every push and pull request via .github/workflows/test.yml.
data/maps/index.json's imageFile entries are the full-resolution map
exports (several MB each), which is too slow for the location and assets-list
card grids to load a dozen of at once. scripts/generate-map-thumbnails.py
derives a compressed thumbFile for each map that's missing one, or whose
source image changed (Cast's imageHash no longer matches the recorded
thumbHash).
.github/workflows/map-thumbnails.yml runs this automatically on every push
that touches data/maps/index.json or data/assets/maps/** (i.e. every data
re-export from the vault; Cast carries thumbFile/thumbHash forward for
maps whose image is unchanged, so only new or replaced images are redone) and
commits any new thumbnails back to
the branch — new maps get one without anyone having to remember to run the
script. tests/data/data-integrity.test.js fails if a map is ever missing
its thumbFile, which is the signal that workflow didn't run (e.g. a fork
PR, where the default GITHUB_TOKEN can't push back).
To run it yourself — required for a fork PR, or just to check before pushing:
pip install Pillow
python3 scripts/generate-map-thumbnails.py
Every spell gets a spell writing circle, drawn per the Gorilla of Destiny's
Spell Writing Guide
and shown in the spell's expanded card on the Spell Book. scripts/generate-spell-circles.py
(standard library only, no pip packages) writes one SVG per spell in
data/spells.json to assets/spell-circles/<spell-slug>.svg, and removes
circles for spells that are gone. Damage type and area of effect aren't in
spells.json, so they are read from the rules text; each SVG's <desc> lists
the values used.
It is part of the build: npm run build runs it, and
.github/workflows/spell-circles.yml runs it on every push that touches
data/spells.json and commits the result (GitHub Pages only runs Jekyll, so
the circles are committed, like the map thumbnails). npm test fails if a
circle is missing, orphaned or stale — rerun npm run build to fix.
GitHub Pages (and browsers) cache assets/css/style.css and the page
scripts, so a page can load new HTML/JS alongside a stale stylesheet and
render broken. Every page links the stylesheet as style.css?v=N — bump
N in all *.html files whenever a change adds or renames CSS classes
that new markup depends on.