Recreating GunZ The Duel as a web version using Three.js
GunZ was a fast-paced online third-person shooter (TPS) developed by MAIET Entertainment.
Around 2007, the GunZ source code (mostly written in C++) was leaked.
After that, many developers created tools, private servers, custom clients, and various fan projects.
I was also one of them — I messed around with it quite a bit between ~2012 and 2016.
Now, years later, what I really want to try is:
bringing GunZ back to life… in the browser.
Here are some early demos from the project.
Demo: https://gunz.sigr.io/test/web-world/
Repository: https://github.com/LostMyCode/three-gunz/tree/master/test/web-world
I finally built a GunZ map reader/converter!
Still working on proper lightmap support though.
Demo: https://gunz.sigr.io/test/web-palmpoa/
Repository: https://github.com/LostMyCode/three-gunz/tree/master/test/web-palmpoa
For this one I used Blender 2.8 to convert the original GunZ model (.elu) into .glb format.
From the original Three.js map loader demo (2021) → I finally achieved the full port!
The complete original GunZ The Duel client (including MatchServer) now runs entirely in the browser using WebAssembly.
- Original GunZ binaries compiled to WebAssembly via Emscripten (real native execution, not a remake).
- D3D9 rendering translated to WebGL in real-time (custom wrapper – check my other projects).
- Networking via WebSocket proxy.
- Filesystem handled with IndexedDB (all .rs, .elu, sounds, etc. load and persist in browser).
- MatchServer also compiled to WASM → Play solo/local deathmatch without any external server!
Just open the link and play – no downloads, no installs, nothing required.
▶ Playable Demo (Browser GunZ Full Version):
Click here to play instantly
This project started as a fun Three.js experiment with GunZ maps... now it's a full browser revival of GunZ.
Huge thanks to the community for the motivation back then!
GunZ forever in the browser era 🔥
If you're interested in collaborating (perf improvements, multiplayer WebRTC proxy, etc.), feel free to open issues or reach out.
Last updated: March 2026


