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

Hacker News Top News

Summary

The author compares the compact 35MB size of a WebAssembly-compiled Godot game engine to typical Docker base images, questioning why WASM adoption remains limited despite its significant size and deployment advantages.

No content available
Original Article
View Cached Full Text

Cached at: 05/12/26, 12:59 PM

# Docker images are hundreds of MB; a full game engine compiles to 35MB WASM Source: [https://bogomolov.work/blog/posts/wasm-vs-docker/](https://bogomolov.work/blog/posts/wasm-vs-docker/) 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\. ## [\#](https://bogomolov.work/blog/posts/wasm-vs-docker/#try-it)Try it [Fullscreen](https://pub-cab470135ad64bbf9490e4c1ce5fa431.r2.dev/stanica/index.html), WASD, Esc\. ###### [\#](https://bogomolov.work/blog/posts/wasm-vs-docker/#the-thing-that-weighs-less-than-a-base-image)The thing that weighs less than a base image `python:3\.14\-slim\-trixie`– the slim base, before you add a single dependency – is 144MB\. Even a[careful minimal build with uv](https://bogomolov.work/blog/posts/docker-uv/)lands at 282MB\. ## [\#](https://bogomolov.work/blog/posts/wasm-vs-docker/#landscape)Landscape Sizes 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\. ## [\#](https://bogomolov.work/blog/posts/wasm-vs-docker/#the-open-question)The open question On 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\.

Similar Articles

Fully in-browser container builds

Lobsters Hottest

A web application that builds containers entirely in the browser using client-side code, demonstrating the power of custom container tooling. Users can pick a base image, run a shell script, and export the resulting image as a tar file.

godotengine/godot

GitHub Trending (daily)

Godot Engine is a free, open-source, cross-platform game engine for creating 2D and 3D games, with a community-driven development model under the MIT license.