Implementation progress · updated 2026-10-17
What runs in the browser
Project Zomboid is Java plus native libraries. The Java runs as compiled WebAssembly; every native library needed a replacement. Function counts are the native entry points the game declares and how many have a real implementation in the browser build.
12 / 16subsystems working
2,236 / 2,244OpenGL functions on WebGL 2
0errors at build time
1open bug blocking long sessions
Subsystems
| Subsystem | Original | In the browser | Functions | Status |
|---|---|---|---|---|
| Game code | Java on the JVM | TeaVM, compiled to WebAssembly GC (184 MB) | — | Working |
| Graphics | OpenGL through LWJGL | Translated to WebGL 2, including the fixed-function pipeline and GLSL rewriting | 2,236 / 2,244 | Working |
| Window, input, system | GLFW and LWJGL system | Canvas, keyboard and mouse events, a native memory arena | 460 / 865 | Working |
| Lighting | Lighting64 (C++) | JavaScript port | 50 / 50 | Working |
| Vehicle physics | PZBullet64 (Bullet, C++) | Java port, called directly | Java port | Working |
| Zombie population | PZPopMan64 (C++) | Java port, called directly | Java port | Working |
| Pathfinding | PZPathFind64 (C++) | The game's own Java pathfinder | Java | Working |
| Polygon clipping | PZClipper64 (Clipper2, earcut) | Java bridge to clipper2-wasm and earcut | Java bridge | Working |
| Models and animations | Assimp through jassimp | Imported ahead of time, read in the browser | 8 / 10 | Working |
| Saves | SQLite JDBC driver | Official sqlite-wasm, databases kept in IndexedDB | Java driver | Working |
| Images | STB image libraries | Browser image decoding; Java PNG encoder for save thumbnails | 7 / 177 | Working |
| Files | Local disk | Cached data chunks, files fetched as needed, IndexedDB for anything written | — | Working |
| Sound | FMOD Studio | Silent stubs | 0 / 445 | Not started |
| Menu video | Bink | A still background instead of the video | 1 / 11 | Placeholder |
| Multiplayer | RakNet, ZNet | Not ported; single player only | 0 / 139 | Not planned |
| Debug interface | Dear ImGui | Not needed for play | 0 / 1,687 | Not needed |
Known issues
| Issue | Effect | Status |
|---|---|---|
| Memory grows in a loaded world | About 100 MB a minute; a session reaches the browser's 4 GB heap after roughly 30 minutes | Investigating |
| No sound | FMOD is not replaced yet | Open |
| Firefox | Runs out of memory compiling the 184 MB module | Browser limit |
| Spawn-map previews | Preview images inside zip files do not show on the spawn selection screen | Open |