NFS 언더그라운드 2 PC판, WebAssembly 재컴파일로 브라우저 멀티플레이 구현
GitHub 계정 th0mk의 팬 프로젝트 nfsu2-web은 Need for Speed: Underground 2 PC판 코드를 C와 WebAssembly로 재컴파일해 브라우저에서 실행하고, 같은 서버에 접속한 이용자들이 자유 주행에서 만나도록 합니다. 차량으로 표시되는 플레이어 수는 설정과 서버 부하에 따라 달라지며, 미니맵에는 차가 보이지 않는 가까운 이용자도 표시됩니다. 직접 서버를 구축하려면 북미판 1.2 PC 게임 사본이 필요합니다.
GitHub 계정 th0mk가 공개한 nfsu2-web은 2004년 PC 게임 Need for Speed: Underground 2를 브라우저에서 실행하는 팬 프로젝트입니다. 연결된 Underground 2 Revived 페이지에서 게임을 시작하고 조작법을 확인할 수 있으며, 키보드·게임패드·레이싱 휠·터치 입력을 지원합니다. 프로젝트는 Electronic Arts와 제휴하거나 회사의 승인을 받은 서비스가 아니라고 밝힙니다.
nfsu2-web은 원작 PC판의 코드를 정적 재컴파일 방식으로 브라우저에서 실행할 수 있게 만듭니다. README에 따르면 기반은 Talha Müderrisoğlu가 만든 NFSU2Recomp로, 2026년 10월 16일 MIT 라이선스 버전에서 가져온 코드만 사용합니다. Capstone을 이용하는 Python 도구는 실행 파일 SPEED2.EXE의 함수들을 C 코드로 변환하고, 빌드 단계에서 C 코드를 WebAssembly 모듈로 컴파일합니다. 이 과정을 거쳐 브라우저가 실행할 모듈을 만듭니다.
재컴파일된 코드가 원작의 환경에서 작동하도록 프로젝트는 Windows, Direct3D 9, DirectSound, DirectInput 인터페이스를 구현합니다. 그래픽은 WebGPU로, 소리는 Web Audio로 처리합니다. 웹페이지는 게임 스레드를 공유 메모리를 사용하는 Web Worker에서 실행하고, AudioWorklet으로 소리를 재생합니다. 게임 코드는 브라우저 안에서 실행되며 서버는 웹페이지와 모듈, 게임 자료를 제공하고 플레이어를 연결합니다.
Rust로 작성한 서버는 게임 자료를 브라우저에 필요한 만큼 제공합니다. 첫 실행 때 게임 코드는 약 7MB 내려받고, 게임 자료는 플레이 중 요청합니다. 자료는 브라우저에 저장돼 다음 실행 때 다시 받을 양을 줄입니다. 영화 파일을 제외한 게임 자료를 미리 내려받는 기능도 있습니다. 브라우저 저장 공간으로 약 2GB가 필요하며, 네트워크 전송량은 1GB를 조금 넘습니다. 프로필과 저장 데이터는 브라우저에 남고, 클라우드 저장 기능은 저장 데이터와 사용자 이름을 기기 사이에서 동기화합니다.
멀티플레이 이용자는 같은 서버 주소로 접속합니다. 각자 커리어를 시작하거나 불러온 뒤 자유 주행에 들어가면 서로를 찾아 차와 이름을 볼 수 있습니다. 서버는 각 이용자의 설정에 따라 가까운 플레이어를 연결합니다. 차량 표시 상한은 16·24·32·48·64대 가운데 고를 수 있으며, 기본값은 컴퓨터 32대, 태블릿 24대, 휴대전화 16대입니다. 서버가 바쁠 때 실제 연결 차량 수는 이 상한보다 적어질 수 있지만 최소 8대까지 연결됩니다. 표시 차량이 많으면 프레임 속도가 낮아질 수 있습니다.
차량이 화면에 표시되지 않는 가까운 플레이어도 미니맵에서 방향을 확인할 수 있습니다. 미니맵은 서버가 초당 네 차례 보내는 정보로 도달 범위 안의 가까운 플레이어를 최대 64명까지 표시합니다. 따라서 차량으로 표시되는 수와 미니맵에서 파악할 수 있는 인원은 다릅니다. 다른 이용자가 레이스나 상점, 메뉴에 들어가면 자유 주행의 차와 지도 표식에서 사라지고, 돌아오면 다시 나타납니다. 게임의 온라인 레이스와 로비도 지원합니다.
이용하려면 WebGPU를 지원하는 브라우저가 필요합니다. 프로젝트 안내는 최신 Chrome과 Edge 등 Chromium 계열 브라우저, WebGPU를 지원하는 Firefox, Safari 26을 지원 환경으로 들고 있습니다. Safari 26 지원 대상은 Mac과 iOS 26 또는 iPadOS 26 기기입니다. 다른 컴퓨터에서 접속하는 서버는 HTTPS로 제공해야 합니다.
공개 페이지에서 플레이하는 경로와 직접 빌드해 서버를 운영하는 경로의 조건은 다릅니다. 직접 구축하려면 북미판 1.2 PC 게임 사본과 프로젝트가 지정한 SPEED2.EXE가 필요하며, README는 다른 버전이 작동하지 않는다고 설명합니다. 저장소에는 원작 게임 코드나 데이터가 포함되지 않으므로 서버 운영자는 게임 자료가 들어 있는 폴더를 마련해야 합니다.