Back to blog
4 min readBy VIBPS

How Need for Speed: Underground 2 runs in a browser

An unofficial browser port of the 2004 racing game shows what WebAssembly and WebGPU can do. Here is how its code, graphics and game files fit together.

Browser gamesHow software works

A PC racing game from 2004 can now run in a modern browser. The unofficial Need for Speed: Underground 2 browser project is interesting for more than nostalgia: it shows how the browser has become a place where substantial software can run and be shared. VIBPS did not build the port, and this article is based on the project's public documentation rather than a hands-on game test.

See the Underground 2 Revived app page on VIBPS

Is this a remake or the original game in a tab?

The project's repository describes a fan-made browser port of the PC game. It says the game's x86 code is translated to C ahead of time and then compiled to WebAssembly, a format the browser can execute. That is different from streaming video of a game running on a remote computer. The game logic runs locally through the browser's WebAssembly support.

The repository says it contains none of the game's code or data and is not affiliated with Electronic Arts. Its playing instructions require users to supply their own compatible PC game copy. The browser build is therefore not a general license to download or distribute the original game files.

Source: Project repository and requirements

What makes the graphics and sound work?

The original PC release used Windows-era interfaces, including Direct3D 9 for graphics. The browser project reimplements the interfaces the game expects. According to its README, Direct3D 9 rendering is mapped onto WebGPU, while audio uses Web Audio. WebGPU gives a web application access to graphics hardware; WebAssembly runs the translated program code. Neither technology alone would make an old Windows game work without the compatibility work around it.

Source: MDN guide to WebAssembly

Source: MDN guide to WebGPU

Can any browser game do this?

No single recipe fits every game. This project needed a way to translate this game's code, replace the Windows interfaces it calls, handle graphics and sound, and load the files supplied by the player. The project's playing guide also notes that WebGPU availability and browser configuration can stop it from running on a given device. Its README currently names recent Chrome and supported Firefox setups, so check the project's own requirements before trying it.

Source: Project playing guide and browser checks

Why this matters for software creators

The striking part is not that every old game will move to the web. It is that a browser link can become a way to encounter software that once required a traditional desktop installation. New browser-native games, AI-assisted experiments and conventional apps all benefit when someone can see the product, understand who made it and decide whether to try it. A playable link is only the first step; the creator still needs a way to share updates and find an audience.

If you have made a game or another app, give people a clear explanation of what it does, what they need to run it and where to try it. VIBPS lets makers publish an app under their account so people can find the app and its maker in one place.

Publish an app you made on VIBPS

Built around one question: what happens when software becomes easy for almost anyone to create?

Explore apps