Underground 2 Revived
Chrome과 Firefox에서 Need for Speed Underground 2를 WebGPU로 두고 팬 프로젝트입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A lightweight browser Grand Prix game: one or two players, up to 19 bots, on a faithful Silverstone built from real survey geometry. No build step, no dependencies to install.
# any static server works; for example
python3 -m http.server 8000
# then open http://localhost:8000/
Opening index.html straight from disk also works in most browsers (the game uses plain scripts,
not ES modules). Chrome, Edge, Firefox and Safari on a laptop or desktop are the target; phones get
on-screen buttons for one player.
| Action | Player 1 | Player 2 | Gamepad |
|---|---|---|---|
| Throttle / brake (reverse when stopped) | W / S | ↑ / ↓ | RT / LT |
| Steer | A / D | ← / → | Left stick |
| DRS (only in a DRS zone when armed) | Left Shift | Right Shift or . | A |
| ERS boost | Left Ctrl or Space | Enter or Right Ctrl | B / X |
| Camera (chase / cockpit / TV) | C | / | Y |
| Request a pit stop | P | Backspace | RB |
| Choose tyres for the stop (soft / medium / hard) | 1 / 2 / 3 | 8 / 9 / 0 | |
| Pause | Esc | Start | |
| Mute / restart | M / R (split screen: restart from the pause menu) | ||
| Controls screen (menu or pause) | H |
In single player either key set drives the car. The menu's CONTROLS button (or H) shows all of this in the game. In split screen each view shows its player's keys while the cars wait on the grid.
Press P (Backspace for player 2) to request a stop and 1/2/3 (8/9/0) to choose the compound. Be on the pit side of the track at the entry; the lane drives you at the 80 km/h limiter (5 s penalty if you cross the limit line too fast). A 15-person crew changes the tyres in about 2.5 s, wear resets, and you rejoin. Bots pit on wear or a planned lap. The pit lane has garages, tyre racks, pit-wall engineers and idle crews.
Liveries are painted procedurally in js/teams.js. If a file exists at
assets/liveries/<teamId>.png (1024×1024) it is drawn over the painted sheet, so you can drop in your
own decals. Layout: top view of the car in the upper half (nose on the left, left side of the car at the
top), left side in rows 512–768, right side in rows 768–1024. Team ids: rossa argent taurus papaya verdant alpenne wilhelm hayes kinetik vector.
js/data/silverstone.js holds the centreline as metres in a local tangent plane plus named corners,
DRS zones, pit lane and scenery polygons. Any closed loop of points in the same format works; the track
builder resamples it, computes curvature, walls, kerbs, gravel placement and the racing line automatically.
index.html page, menu, HUD markup
css/style.css
js/data/silverstone.js circuit geometry (derived from OpenStreetMap)
js/util.js helpers, procedural textures
js/teams.js teams, drivers, livery painter
js/track.js resampling, elevation, lookups, racing line, track surface and furniture
js/scenery.js terrain, grandstands + crowd, buildings, trees, sky
js/carglb.js loads the GLB car and composes per-team liveries
js/carmodel.js procedural fallback car model
js/infra.js hoardings, fences, tyre stacks, screens, flags, paddock
js/car.js vehicle physics
js/ai.js bot drivers and speed profile
js/race.js race director: grid, lights, laps, DRS detection, collisions, classification
js/hud.js per-player HUD, minimap, tower, results
js/audio.js synthesized engine and cues
js/input.js keyboard / gamepad / touch
js/main.js renderer, cameras, loop, menu
vendor/three.min.js three.js r128 (MIT) plus its EffectComposer, bloom, FXAA and Sky modules
js/particles.js dust, gravel spray and tyre smoke
The game is static files with index.html at the repository root, so it deploys unchanged on Vercel,
Netlify or GitHub Pages. Serve it over HTTP; the car model is loaded with fetch.
Circuit geometry derived from OpenStreetMap data, © OpenStreetMap contributors, licensed under the ODbL. three.js is MIT licensed. Team and driver names in the game are fictional. The trackside advertising, the two works teams (Lumi Racing and Intake Racing) and the menu partner links are for Lumi and Intake; see CREDITS.md.
js/carmodel.js: lofted chassis, nose
and sidepods with inlets, airbox and shark fin, four-element front wing with curved tips and endplates,
rear wing with painted endplates, beam wing, swan-neck mounts and a working DRS flap, floor with edge wings
and diffuser strakes, full wishbone / pushrod suspension with uprights and brake-duct winglets, halo,
driver with helmet, HANS and arms on a steering wheel with a live display, headrest, mirrors, T-cam, pitot
and rain light, 18-inch wheels with covers and branded tyres with compound-coloured sidewalls. Ten teams in recognisable colour schemes, two drivers each, with
numbers, driver codes and sponsor-style decals painted into a livery sheet. A contact shadow sits under
every car.