About 20 minutes into Expanunks—a new PC game from developer Zachtronics—I felt like the stupidest person the planet. I leafed through the instructions I’d printed—yes, printed—trying to understand how I was supposed to program my little EXA (think of it as a little code carrying robot) to transmit data to a different EXA. It took me back to high school, sitting in my computer science class struggling with C++ while my classmates seemed to breeze through.

This was just the tutorial, but Exapunks expected me to mostly work it out on my own. After a few minutes of experimenting, I did. Clearing the small hurdle made me go from feeling like the dumbest person in the room to the smartest.

That’s the power of Exapunks, a game set in an alternate 1997, where a terrible plague called “the phage” is ravaging the population, computers run everything, and the players have to hack to stay alive. The player character has the phage and needs medicine that costs $700 a day to stay alive. A mysterious computer program makes an offer—hack for me and I’ll keep you alive. One hack for one dose.

If it all sounds like a William Gibson novel, that’s the point. Expaunks is steeped in 1990s Cyberpunk aesthetic. Zach Barth—founder of Zachtronics—grew up reading 2600, a hacking magazine that’s also behind the HOPE conference, and would buy old computers at swap meets. He went to DEF CON—a yearly hacker convention—to do research for the game. Exapunks writer Matthew Burns read Wired and other cyberculture magazines. “Of course, the idea that being a hacker could be cool was practically enshrined for us and many others in the movie Hackers,” Barth told me over email.

Just as important to Exapunks is the idea of being a punk. It’s about more than just the aesthetic of neon signs and dark alleyways. “In the days of the actual cyberpunk movement, the late 80s to early 90s, the emphasis was much more on ‘punk’ in the sense of someone who stands in opposition to big systems of control,” he said. “That’s the sense we tried to capture.”

Image: Exapunks

Exapunks starts when a hacker named Ghast knocks on the player's door and gives them a magazine called Trash World News that serves as both the game's instructional manual and lore book. The file is actually a printable PDF with instructions on how to assemble it in the real world. “We recommend you print and assemble the zines for the most authentic and enjoyable Expanuks experience,” the game says. “However we have included a digital version with a screen-friendly layout.”

Holding Trash World News in my hand complimented the experience. I had to reference the book constantly to understand the game’s concepts, reference unique lines of code buried inside the text, and understand the game world. The reference material is important because this game is about hacking and hacking means learning to code.

Exapunks’s alternate future uses EXA, little executables that shuffle around computer networks carrying lines of code back and forth. Players create and manipulate these EXAs in a 2D isometric space using simple command lines. Say there are two computers, represented by two tiled blocks on the screen, each labeled 800. One has a file labeled 200 and the other doesn’t. I need to move the file from one to the other. I’d program an EXA to pick up the file, move between the computers, then terminate. To do that I’d write simple command lines that look like this:

GRAB 200

LINK 800

DROP

HALT

The EXA then runs through the program, grabbing the file, linking across the two computers, dropping the file, then halting. This is just a simple bit of code, but as I learned to move across multiple computers, manipulate several EXAs at once, and program basic if/then statements into the code, the game became much more complicated and beautiful. These are the kinds of game Zachtronics is known for. Shenzhen I/0 and TIS-100 also got players doing rudimentary programming.

But Exapunks is the only game I’ve ever played that made the hacking seem real. I was actually doing basic coding. Barth told me he got the idea for the game’s coding from the STUXNET virus—the cyberweapon that felled one of Iran’s nuclear facilities. “STUXNET is a fascinating story, and it sparked the idea of these malicious programs that are designed to unfold like origami into a specific network and manipulate it in some way,” he said.

The player injects little EXAs into systems and programs them for mischief. The programming language used starts simple but grows in complexity as the game goes on. Again, Barth and his team took inspiration from the real world, including UNIX programming concepts such as files, pipes, and processing forks as well as x86 concepts such as test instructions that set flags and conditional jumps.

“The idea for EXAs and how they work is maybe more interesting, and draws on the the types of technology people were interested in developing in the 90s,” Barth said. “Java, for example, which was advertised as a universal language that would run on any platform, and which inexplicably showed up prominently in the advertising of things that supported and used it.”