Wednesday, March 11, 2026

Assembly language programming is brutal, pretty, and maybe even the path to better artificial intelligence

Share

Roller coaster mogul was not the most fashionable computer game in 1999. But if you look beneath the pixels – the rickety queues, the crowds of hungry, thirsty, vomiting people (and the janitors washing behind them) – deep at the code level, you will see an artistry so obsessive that it borders on madness. Chris Sawyer, the sole creator of the game, wrote the entire game in assembly language.

Some programming languages, such as Python, Go, and C++, are called “high-level” because they function similarly to human language, written in commands and idioms that might be fit for a poetry slam. Generally, software such as a compiler turns this into what the machine actually reads: blocks of ones and zeros (or maybe hexadecimals) that tell the actual transistors how to behave. Assembly, the lowest of the “low-level” languages, has almost identical compatibility with the machine’s native language. This is coding straight to the metal. Building a complicated computer game from assembly is like weaving a tapestry from shed cat fur.

Why would anyone do this? I recently asked Sawyer, who lives in his native Scotland. He told me that one reason is efficiency. In the 1990s, all the high-level programming tools weren’t available. The compilers were terribly tardy. The debuggers sucked. Sawyer could have avoided them by doing his thing in x86 assembly language, the lingua franca of Intel chips.

But we both knew that wasn’t the real reason. The real reason was love. Before moving on to roller coasters, Sawyer wrote another game in assembly language, transport tycoon. Players control city roads, railway stations, runways and ports. I imagined Sawyer as a model train hobbyist – laying out each section of track, hand sewing the artificial grass, each detail a choice and a responsibility. To transfer these carefully crafted bitmap pixels to the display, Sawyer had to unleash the chip’s full potential. “RollerCoaster tycoon It only happened because I knew the limits of what was possible,” he told me.

Working within boundaries? Perhaps it’s a foreign idea in this age of digital abundance when calling a single function in an AI training algorithm can engage a million GPUs. With assembly, you get one thing and one thing only, and that’s the thing you ask for – even though many programmers have learned the hard way if it’s wrong. The editing is brutal and beautiful in this way. This requires you to say exactly what you mean.

I made the montages It’s a disservice to the creators. They wanted it to be easier, not harder. I imagine they were tired of loading punch cards and flipping switches on their steampunk leviathans. Perhaps they dreamed of a world like ours, where computers could do so much with so little guidance.

Latest Posts

More News