128KB of RAM Made Better Games Than Unlimited Compute Does

#creativity#constraints#craft

The SNES had 128KB of RAM, and that was never a budget so much as a dare. The developers who took it made the most interesting work I can think of, because they couldn’t do the obvious thing and had to find something better.

Craft from constraint

So they reused sprites, flipping and recoloring one drawing until it passed for three different enemies; on the NES, the clouds and the bushes in Super Mario Bros. are the same artwork in a different color. They used Mode 7 to rotate and scale a flat plane until F-Zero and Super Mario Kart felt like 3D racing on hardware that couldn’t draw a polygon. They hid loading screens inside long elevator rides and slow hallways, a trick that never went away because it kept working.

Chiptune exists because composers had a handful of channels and a square wave, and dithering exists because palettes were tiny and artists figured out that alternating pixels could trick the eye into seeing colors that weren’t there. None of it was decoration. Each trick was someone solving a problem they couldn’t avoid.

Artifacts from physics

Nobody designed CRT flicker. Nobody chose scanlines, or the way a tube took a second to warm up before it snapped into a picture with that little static pop, and nobody asked for tape hiss, film grain, vinyl crackle, or JPEG artifacts. They were what the medium did whether you liked it or not.

We got attached to them anyway.

People install CRT shaders to put the scanlines back, add film grain to footage that was shot clean, and run filters whose whole job is making a photo look worse in one specific, nostalgic way. We’re paying to restore the imperfections the technology spent thirty years removing.

The tricks were craft and the flaws were accidents we grew to love, but they share a root: something was hard, and the difficulty left fingerprints.

The wall is gone

Storage is effectively free and compute is cheap enough that I can generate a working prototype in an afternoon while doing something else, which is how every project on this site started, including Keeplings, my habit app built around collectible creatures. The hardware doesn’t push back anymore, and the medium leaves no fingerprints because there’s barely a medium left. Mostly that’s good, since I’m not nostalgic for 128KB and have no interest in writing assembly to hit a frame rate.

But the wall was doing work nobody accounted for. The reused sprites, the fake 3D, and the elevator that was secretly a loading screen didn’t happen because someone felt creative that day; they happened because there was no other option, and the constraint left exactly one way out.

That pressure is what’s missing now. You can still choose to work within limits, and some people do, but a limit you chose is one you can drop the moment it gets inconvenient, and most of the time you will. So we get more things, faster, and they’re fine. They work, but nothing about them was hard enough to leave fingerprints.

Board game rules

Nothing about a board game is enforced by physics. You could move your piece anywhere, look at the other cards, or take money from the bank, and no compiler, memory limit, or piece of hardware would stop you.

Nobody does it, because the table does the enforcing. The rules are completely arbitrary and completely binding at the same time, and that’s the entire reason the game is fun; take them away and you’re just sitting around moving plastic. A self-imposed limit can hold the same way, as long as something outside your own willpower is holding it there.

The other half is resisting the easy option. The online version of the same game is faster and cleaner and does the bookkeeping for you, yet something is missing from it, because the setup, the shuffling, and the guy who takes forever on his turn were most of the game. Removing that friction feels like an upgrade right up until you notice what left with it.

So take the dare the hardware used to hand out for free. Build the wall, make something other than yourself enforce it, and stop optimizing away every bit of friction just because you can.