frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

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

https://bogomolov.work/blog/posts/wasm-vs-docker/
39•theanonymousone•2d ago

Comments

andai•1h ago
Unity compiles down to 3MB wasm. Though they don't need to ship the dotnet runtime, they use IL2CPP, a proprietary thing that translates dotnet code into C++. Then they run Emscripten on it.

Also I think Godot's WASM outputs used to be 2-3x smaller in Godot 3 (though the C# one was bigger).

You can ship a JS game in kilobytes, although atop 30 million lines of Chromium that's cheating of course :) still good fun.

https://js13kgames.com/

Notch also made a bunch of 4kb Java (not JS) games back in the day, which is probably what got me into this stuff.

https://web.archive.org/web/20090108001738/http://www.mojang...

silon42•27m ago
WASM requires a browser too, no? (or an equivalent runtime, possibly smaller depending on requirements)
glimshe•1h ago
Back in the Atari 2600 days, we had full AAA games that sold millions fitting in 4KB...
voidUpdate•48m ago
"AAA games" didn't even exist until 20 years after the 2600
Tsarp•1h ago
Docker can be small too. In this example I was able to compile a full server (rust binary) and package it in a docker (scratch image base) and the total was < 5MB.

https://github.com/srv1n/kurpod/pkgs/container/kurpod-server

wasm version compiles to under a MB though!

xattt•1h ago
Is it fair to compare WASM app to a base install?

The thing runs in a browser that has most of the stuff implemented to integrate with whatever system it runs on, and just needs to present.

It’s payload versus payload + runtime.

mmcconnell1618•52m ago
10MB for the Google Homepage! 44MB for Facebook Homepage! I have not been paying attention to website bloat. Wow, and people were annoyed when a site had to download a whole JQuery library for a single function.
2ndorderthought•48m ago
It's more or less an abomination. Dropping the frameworks and js jazz you could have most of the features of either of these sites served in the kb range. It would save millions of dollars in electricity, billions in infrastructure, and be more secure.
gear54rus•47m ago
Yes, it's absolutely the frameworks. That each weigh <100KB. Definitely frameworks :D

Edit:

I don't even know where you lot get these numbers from nowadays, smh.

Just checked, in Slovakia, google.com is 1MB (compressed) total with cache disabled. 400kib of those is my own extension that I installed which is counted among the 'loaded scripts'. Loads in 400ms, blink of an eye.

Framework rants are completely detached from reality, as always.

voidUpdate•41m ago
What else would it be? Google is a picture, a text box, and few buttons. Not exactly a lot of HTML
unglaublich•46m ago
Sure but in WASM, the browser's environment is taking responsibility for many OS concerns (graphics, IO, 3D, hardware). In a Docker image, all that logic needs to be bundled in libraries as you'll only get to "reuse" the hosts' kernel.

A 'fairer' comparison would be a optimized and compiled binary that dynamically links to the OS versus a WASM product (would be kilobytes-megabytes).

Or having the WASM app in a Chromium browser in Docker (would be gigabytes).

gbraad•44m ago
Quod is only 64K https://daivuk.itch.io/quod and looks more impressive
Mashimo•18m ago
There is also .kkrieger (2004) which is 96k

But the thing with what OP did is, that it runs in the browser and uses a common game engine.

po1nt•44m ago
WASM sounds great in theory but it's so much pain in practice. Once as a presentation demo I made it run on ESP32 but in the process of digging deep into runtimes and WASM spec, I wanted to disclose pros vs cons and it killed my presentation.

I realize wasm wasn't designed for embedded but it made me open my eyes to it's intricacies like minimum memory allocation, why not native 1 byte variables?

pjmlp•15m ago
If you want bytecode for embedded see stuff like BASIC Stamp or Parallax Propeller.
CamouflagedKiwi•38m ago
So the engine is 35MB, but what does it run in? By itself it's a binary blob that doesn't do anything.

Chrome seems to be ~404MB installed on here; that is conspicuously missing from the comparisons here to Docker containers which do account for more or less the complete runtime.

feverzsj•36m ago
I believe you can create this demo using webgl in less than 4kb.
AshleysBrain•33m ago
Shameless plug but if you like small file size overheads, our browser based game engine Construct[1] exports an empty web project with about 300 KB overhead for a fully-featured engine. We achieve this by going all-in on the web platform so we don't have to ship a heavyweight runtime with it, and using a modular approach where only the components you use get exported.

[1] https://www.construct.net

rockyj•33m ago
That is a strange title / comparison. Docker images (even slimmed down) have an OS (most likely a Linux distribution), some libs and the runtime needed for a programming language. On it's own a "game engine + WASM binary" is not comparable.
adamtulinius•27m ago
Maybe it's a good reminder to _not_ bundle an entire OS in a Docker image
mrweasel•10m ago
For debugging image it's sometimes nice to be able to actually do stuff in the container, but for production image I'd agree.
bogwog•17m ago
Seriously, this is a ridiculous comparison. It's apples to oranges.

This site used to have interesting technical discussions, but now its all either AI cheerleading, or vibe coder blog posts.

CamouflagedKiwi•32m ago
> Same as ARM nodes a few years ago: cheaper, denser, widely available – still not the default choice.

Because ARM nodes save you a bit of money (they're cheaper but a bit slower, maybe you end up saving 20-30%) but the move isn't trivial for many tech stacks. When you try it you find you have some Python dependency with a C bit that doesn't have an arm wheel, or your browser automation can't run Chrome on those nodes (there isn't a linux/arm64 build of it). If you're using Go you can cross-compile, although it will likely fail without explicitly disabling cgo, and do you know what the consequences of that are?

Basically it very often ended up being more trouble than it was worth.

zeroq•30m ago
kkrieger enters the chat
jezzamon•26m ago
Amazing that the point of this article is that 35MB is small and everything else is bloated
neomantra•23m ago
I've been playing with Golang and WASM lately; hands-on WASM was new to me.

I found that many dependencies in the ecosystem (especially older ones) do not support GOARCH=wasm nor GOOS=js / GOOS=wasip1. I've had to fork and add support and then do go.mod replace directives. It can get messy.

Golang build tags make it awesome to have different implementations for different systems.

In the browser, it's all single threaded, so goroutines starve each other. I had to put in "breaths" for interactivity.

There's no local filesystem, so you have to figure out other solutions. Some dependencies use the filesystem as an implementation detail or try to shell out. The program will build, but will error at runtime.

That said, it is pretty sweet when it works. You can make WASM games with ebitengine [1] and it emits instructions for a WebGPU renderer; very efficient and many interactivity concerns are handled for you. The NTCharts demo page [2] combines Zig (Ghostty), WASM+Typescript+GLSL (Ghostty Web), and Golang (booba/ntcharts). The WASM size for the demos there is ~5MB each.

My goal is to make tools for terminal remoting and simplify bringing TUIs to the browser. [1] https://ebitengine.org

[2] https://nimblemarkets.github.io/ntcharts/demos/heatpicture-p... press 't' for kitty graphics

amelius•15m ago
Aren't Docker images deduplicated internally, so you'll only notice their size when you try to ship them?
chubs•14m ago
I recently ported an old brickout clone I made to Sokol (a C header-based game library). The whole executable is 500kb (macos), surely could be smaller with eg symbols stripped, and it has a whole 3d engine (not that i'm using much more than one custom shader to blit the screen, but it is using 3d engine infrastructure nonetheless). I was impressed that in this day and age such efficiency is still fashionable in some corners. The whole game is about 2mb zipped. Are shameless plugs allowed? If you're curious have a peek! github.com/chrishulbert/brickwarrior
l23k4•7m ago
Garbage AI slop.
circuit10•4m ago
Seems like the anti-clickbait title editing removed the “hundreds of”? This confused me because I thought “oh, they’ve stripped down a Docker image to only 1 megabyte, and then a full game engine adds 34MB more” (I missed the WASM on the first read)
Keyframe•3m ago
Runs in any browser, zero install.

Meanwhile: Error - The following features required to run Godot projects on the Web are missing: WebGL2 - Check web browser configuration and hardware support

This is on Chrome 148.0.7778.96 (Official Build) (64-bit) on Fedora 44, 14900K, 4090 RTX, 128GB RAM

35MB WASM which relies on browser, which relies on drivers and OS, AND it doesn't work as advertised. I get the point, but point was mistaken.

Learning Software Architecture

https://matklad.github.io/2026/05/12/software-architecture.html
200•surprisetalk•3h ago•31 comments

Screenshots of Old Desktop OSes

http://www.typewritten.org/Media/
331•adunk•7h ago•147 comments

EU to crack down on TikTok, Instagram's 'addictive design' targeting kids

https://www.cnbc.com/2026/05/12/tiktok-instagram-social-media-addictive-eu-crack-down.html
126•thm•2h ago•71 comments

Postmortem: TanStack NPM supply-chain compromise

https://tanstack.com/blog/npm-supply-chain-compromise-postmortem
909•varunsharma07•15h ago•381 comments

A HN post with negative points – how?

https://news.ycombinator.com/item?id=48104663
36•donohoe•2h ago•21 comments

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

https://bogomolov.work/blog/posts/wasm-vs-docker/
40•theanonymousone•2d ago•33 comments

They Live (1988) inspired Adblocker

https://github.com/davmlaw/they_live_adblocker
345•tokenburner•12h ago•104 comments

Text Blaze (YC W21) Is Hiring for a No-AI Summer Internship

https://www.ycombinator.com/companies/text-blaze/jobs/P4CCN62-the-blaze-no-ai-summer-internship
1•scottfr•1h ago

If AI writes your code, why use Python?

https://medium.com/@NMitchem/if-ai-writes-your-code-why-use-python-bf8c4ba1a055
610•indigodaddy•16h ago•637 comments

Music has scales / raagas. What about storytelling in movies and prestige shows?

https://arc.quanten.co/archetype
29•phaedrus044•4h ago•33 comments

Optimize for change not application performance

https://www.echooff.dev/blog/developer-experience-is-a-performance-feature
23•lo1tuma•2d ago•10 comments

UCLA discovers first stroke rehabilitation drug to repair brain damage (2025)

https://stemcell.ucla.edu/news/ucla-discovers-first-stroke-rehabilitation-drug-repair-brain-damage
376•bookofjoe•19h ago•72 comments

Coursera and Udemy are now one company

https://blog.coursera.org/coursera-and-udemy-are-now-one-company-creating-the-worlds-most-compreh...
62•Anon84•2h ago•19 comments

Rtwatch: Watch videos with friends using WebRTC

https://github.com/pion/rtwatch
48•nateb2022•2d ago•6 comments

Chasing Chicago's movable bridges (2014)

https://aresluna.org/seesaws-for-giants/
10•NaOH•2d ago•2 comments

Extremely Low Frequencies

https://computer.rip/2026-05-09-extremely-low-frequencies.html
117•pinewurst•9h ago•8 comments

Claude Platform on AWS

https://claude.com/blog/claude-platform-on-aws
166•matrixhelix•11h ago•73 comments

Toxicity on Social Media – The Noisy Room

https://thenoisyroom.com
107•skm•5h ago•72 comments

Houses are for living, not for speculation

https://en.wikipedia.org/wiki/Houses_are_for_living,_not_for_speculation
49•robtherobber•1h ago•27 comments

Google says criminal hackers used AI to find a major software flaw

https://www.nytimes.com/2026/05/11/us/politics/google-hackers-attack-ai.html
203•donohoe•23h ago•148 comments

I let AI build a tool to help me figure out what was waking me up at night

https://martin.sh/i-let-ai-build-a-tool-to-help-me-figure-out-what-was-waking-me-up-at-night/
212•showmypost•16h ago•218 comments

Remembering Planet Source Code: Sharing Code Before GitHub Made It Easy

https://www.pietschsoft.com/post/2026/05/05/remembering-planet-source-code-sharing-code-before-gi...
29•pabs3•3d ago•3 comments

I hate soldering

https://user8.bearblog.dev/rant/
150•James72689•4d ago•137 comments

Software Internals Book Club

https://eatonphil.com/bookclub.html
122•aragonite•10h ago•20 comments

Unitree GD01: China's $537k rideable transformer robot is now in production

https://gagadget.com/en/709729-unitree-gd01-chinas-537k-rideable-transformer-robot-is-now-in-prod...
56•rguiscard•3h ago•37 comments

Don't hijack my mouse pointer

https://ruky.me/dont-hijack-my-pointer/
14•rukshn•1h ago•8 comments

Boriel BASIC

https://zxbasic.readthedocs.io/en/docs/
56•AlexeyBrin•3d ago•20 comments

Nullsoft, 1997-2004 (2004)

https://slate.com/technology/2004/11/the-death-of-the-last-maverick-tech-company.html
301•downbad_•4d ago•83 comments

Show HN: A modern Music Player Daemon based on Rockbox firmware

https://github.com/tsirysndr/rockbox-zig
96•tsiry•3d ago•22 comments

Interaction Models

https://thinkingmachines.ai/blog/interaction-models/
254•smhx•16h ago•32 comments