A downloadable game

Download NowName your own price


^ Click here to play ^

Subleq is a programming puzzle game about using one operation to create a series of more complicated instructions. This game is inspired by the programming-puzzle games of Zachtronics, and was built to run inside of their latest game, "Last Call BBS."

Subleq stands for "SUbtract and Branch if Less than or EQual to 0." This mouthful of a description doesn't tell you much, but this one operation combined in the right ways is Turing complete. 

The logic behind how a set of subleq-powered operations is derived is surprisingly simple, and my goal with this game was to give you, as the player, the opportunity to build up a set of subleq instructions for yourself. I hope you enjoy :)

Rated 4.7 out of 5 stars
(3 total ratings)
TagsAutomation, Math, programming, Retro


Download NowName your own price

Click download now to get access to the following files:

subleq.js 23 kB


Log in with itch.io to leave a comment.

(1 edit) (+3)

About a week before I played this for the first time, I’d been through a period of intense despair and frustration at how needlessly arcane and byzantine and historically-burdened and inefficient humanity’s entire computation “stack” was - from the inexpressibly stupid and slow way we all write code using text editors, to the fact there’s no decent way to send a file between any given pair of computers sitting metres from one another, to the fact that the only real operating system out there names its OS directories things like “etc”, to the utter insanity of how hard it is to simply draw pixels to a screen using the 50-year-old piece of shit language that is still the current lingua franca of computers.

I started to become really infatuated with the completely unrealised power inside the idea of OISCs, and an overarching simplicity-focused computer philosophy hardware/OS/language/interface/culture, and hatched a pipe dream OS/package manager/ecosystem/social organisation where every time we trade away simplicity for performance, we do so explicitly, using a machine-readable dependency tree of underlying “optimisations” or “hacks” or “realities”. We could still, for the moment, build atop disgusting capitalist nightmare mazes like x86, an instruction set dictated by idiot parasites, the rules of which we have to forensically dig for, let alone understand and wield easily. But our code could, at runtime, programmatically stop making the assumption it’s running on, say, a graphics card, or assuming that it’s wise to avoid performing square root operations, or that changing data on “the filesystem” will be orders of magnitude slower than on “a register”, or that it’s even running inside a von Neumann architecture at all.

We could reach the promise of Turing equivalence and any software could run on any computer, however slowly, by just switching to deeper and deeper modes of emulation / translation as we are forced closer to the root of the “realities” dependency tree.

The computers we all actually run could be fully, deeply, trusted because we could understand, at every smallest-possible step, each new bootstrapped level of abstraction as we climb from lambda calculus, or a Turing machine, or a single instruction like SUBLEQ.

We could make cross-platform GUIs in the fucking 21st century without resorting to running an entire web browser just to get flexboxes and subpixel text rendering.

Ordinary users could never need to think about “installing” anything ever again if our package manager could fetch and execute the ENTIRE chain of dependencies, all the way to entire operating systems, for them.

Unless we have a socialist revolution in the next half decade or so and avoid the impending fascist barbarism and annihilation from growing out of global warming’s imperial clashes, the world will never see how much computers could help us until long after we’re both dead, but I just wanted you to know that the elegance of your design here had real impact on me, and there’s a seed of a far better future buried kilometres beneath the surface of “toys” like these.

Human beings with the capacity for imaginations like Alonso Church’s are forced to pick tomatoes or get crushed by the truck they’re dumping rubbish bins into, in a world where we’re simulating millions of rays of light diffracting through clouds at sixty frames per second to play videogames on our fucking phones, and none of this has to be.

I... oh my god
oh my god

This is beautiful

how do you change level

Press the number of the level on your keyboard. I probably should have explained that in the description of the game.

Thank you!

I beat you at your own game ;)

Loved it!


This is pretty nice! You really do get the hang of using Subleq after beating each level. Although since the test cases are random, you can pass all three cases while having bugs, which also makes bugs harder to find. Regardless, I had fun squinting at lowercase letters for 30 minutes.

I was able to match or improve all of your best low-char scores (with solutions that truly work in all cases). Here are my improvements, including the code, where slashes separate lines:

Level 48 Charsbam/cb/a/ac
Level 5
8 Charsda/bcm/ad/j
Level 610 Charsbak/n/dbm/n/z/a
Level 78 Charscb/bam/a/ac

Level 69 charsbal/a/z/dbz/j
Level 821 charseb/abm/dc/j/gak/ae/b/fa/bf/a/ad
Level 68 CHARSbak/a/dbm/a
Level 77 CHARSbaz/cb/ac
Level 817 CHARSec/ae/abn/dc/k/ca/bc/a/ad
(2 edits)


Level 815 CHARSea/fb/gc/a/o/ag/efn/be

there is also 7 line solution

Level 815 CHARSea/fb/gc/an/ag/efm/be

If you’re the same Snuke that made mao.snuke.org, thank you so much for your work, I had soooo much fun with it!