ZomboidWeb / Progress

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

SubsystemOriginalIn the browserFunctionsStatus
Game codeJava on the JVMTeaVM, compiled to WebAssembly GC (184 MB)—Working
GraphicsOpenGL through LWJGLTranslated to WebGL 2, including the fixed-function pipeline and GLSL rewriting2,236 / 2,244Working
Window, input, systemGLFW and LWJGL systemCanvas, keyboard and mouse events, a native memory arena460 / 865Working
LightingLighting64 (C++)JavaScript port50 / 50Working
Vehicle physicsPZBullet64 (Bullet, C++)Java port, called directlyJava portWorking
Zombie populationPZPopMan64 (C++)Java port, called directlyJava portWorking
PathfindingPZPathFind64 (C++)The game's own Java pathfinderJavaWorking
Polygon clippingPZClipper64 (Clipper2, earcut)Java bridge to clipper2-wasm and earcutJava bridgeWorking
Models and animationsAssimp through jassimpImported ahead of time, read in the browser8 / 10Working
SavesSQLite JDBC driverOfficial sqlite-wasm, databases kept in IndexedDBJava driverWorking
ImagesSTB image librariesBrowser image decoding; Java PNG encoder for save thumbnails7 / 177Working
FilesLocal diskCached data chunks, files fetched as needed, IndexedDB for anything written—Working
SoundFMOD StudioSilent stubs0 / 445Not started
Menu videoBinkA still background instead of the video1 / 11Placeholder
MultiplayerRakNet, ZNetNot ported; single player only0 / 139Not planned
Debug interfaceDear ImGuiNot needed for play0 / 1,687Not needed

Known issues

IssueEffectStatus
Memory grows in a loaded worldAbout 100 MB a minute; a session reaches the browser's 4 GB heap after roughly 30 minutesInvestigating
No soundFMOD is not replaced yetOpen
FirefoxRuns out of memory compiling the 184 MB moduleBrowser limit
Spawn-map previewsPreview images inside zip files do not show on the spawn selection screenOpen