Skip to content
HN On Hacker News ↗

Docker images are hundreds of MB; a full game engine compiles to 35MB WASM

▲ 96 points 75 comments by theanonymousone 2w ago HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully human-written

21 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 1 of 1
SEGMENTS · AI 0 of 1
WORD COUNT 240
PEAK AI % 21% · §1
Analyzed
May 12
backend: pangram/v3.3
Segments scanned
1 windows
avg 240 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 240 words · 1 segments analyzed

Human AI-generated
§1 Human · 21%

I exported a game skeleton to WebAssembly a few hours ago and was surprised by the artifact size. Full 3D engine – GL Compatibility renderer, Jolt physics, GDScript runtime, Ink narrative interpreter. The binary: 35MB. Runs in any browser, zero install.Facebook’s homepage loads 44MB. The game engine is 35MB.# Try itFullscreen, WASD, Esc.# The thing that weighs less than a base imagepython:3.14-slim-trixie – the slim base, before you add a single dependency – is 144MB. Even a careful minimal build with uv lands at 282MB.# LandscapeSizes from my browser and local Docker cache:ItemSizeGoogle homepage (all resources, 43 requests)10MBthis game (Godot 4, full engine)35MBFacebook homepage (all resources, 379 requests)44MBlivekit/livekit-server (Go, WebRTC)75MBpython:3.14-slim-trixie144MBpython:3.14-slim-trixie + minimal deps282MBREST API from my job300–400MBnode:latest (19M pulls/week)421MBghcr.io/gohugoio/hugo423MBPython-based AI agent from my job1.45GBHugo: 423MB to generate static HTML. The game engine is 35MB 😌The Go binaries (livekit at 75MB) are already close.# The open questionOn one hand, Go could be a solution, but wasip1 is still preview – no sockets in the standard runtime, no threads. Zig is closer, but not there either. Only Rust and C/C++ are practical options today.On the other hand – Cloudflare Workers can load WASM modules, containerd has runwasi, Kubernetes has kwasm experiments, WASI runtimes exist.So why has WASM adoption stalled? The transfer-size case is already there: roughly 10×. Why isn’t that enough to become standard practice?Same as ARM nodes a few years ago: cheaper, denser, widely available – still not the default choice.