Up until about six years ago, my experience with the world of programming and code amounted to understanding what <b>formatting</b> meant in html, and vaguely remembering that one game about steering a turtle using basic commands like "FORWARD 10". I enjoy games, but I do not usually care to see the chaotic tangle of code that lives behind the screen. As long as it works, lads, I'm happy.
But about six years ago, I met my partner, who will be deeply embarrassed to know that I consider him a programming wizard. He has a degree in computer science, and thinks that BASIC is "fun". Despite this, I fancied him like mad, and when you're a romantic dork, you try to impress people you fancy by attempting to learn the things they like.
So I started learning a few programming languages. Nothing too intense, mind you — I dabbled in C#, and made what is essentially a mildly interactive PowerPoint presentation called Awkward Dating Simulator, and then I started learning Tracery, a modified version of Javascript, to make Twitter bots like Pleasant Subtweets (which tells you nice things once every three hours) and my personal favourite, Get Facts, which tells you... facts? Sort of? Both are fully automated, and procedurally generate each tweet, loaded up with words that I wrote. They're pretty cool, if I do say so myself.
But here's the thing: Learning programming is almost exactly the same as learning a language. It's not particularly fun a lot of the time, and it begins to feel impossible right around the time that you learn of the existence of deponent verbs, or quaternions, and you wonder how the hell an entire industry is founded on this godforsaken thing.
And with programming, like with learning any other language, there are programs that try to make it fun. For natural languages, that's apps like Duolingo, which gamify the process and reward you for doing well and being consistent. They are accompanied by friendly, colourful graphics and goofy, short-form stories that entertain as well as edify.
Programming has video games, because of course it does. The people making the video games are the nerds who learned how to program in the first place.
If you're a fan of logic puzzle games, chances are you've already played a programming game — they're not always entirely obvious. I would argue that Opus Magnum, a gorgeous puzzle game that will probably never come to console, is a programming game — it tests your "if this, then that" abilities without ever outright saying that it's doing that — and pretty much every Sokoban-style block-pushing game is a crash course in dependencies, too. And don't forget Baba Is You, the adorable-yet-fiendishly-tricky puzzler that literally tasks you with understanding and changing variable definitions in order to complete the game!
https://twitter.com/Catfish_Man/status/1505624754778083329
My partner, the lovable dork, enjoys playing the really obvious programming games — in particular, one called TIS-100. Made by Zachtronics, the developer behind Infinifactory, TIS-100 is nerd heaven. It comes with a printable manual, styled after a 1980s computer instruction manual, which you will need to reference if you want to complete the puzzles within. It is, quite frankly, unplayable to anyone who isn't already a programmer, because it's so deeply entrenched within the world of code.
But, of course, many programming games are a little more accessible, while still wearing their programming influences on their sleeve. Human Resource Machine, which hit Nintendo Switch five years ago this week (in Europe), is Tomorrow Corporation's take on the niche genre, accompanied by its follow-up, 7 Billion Humans.
It was here that I first dabbled in programming-just-for-fun — not to create anything, not with the aim of making a working project, but merely for the joy and logic-puzzliness of programming.
Human Resource Machine and 7 Billion Humans take the unsettling aesthetic that Tomorrow Corp is known for as established in World of Goo — the big eyes, sketchy, skinny limbs, the Tim Burton-esque pallor — and apply it to one of the simplest, earliest ways of telling a computer what you want it to do, called Assembly.
Assembly is what's known as a "low-level" language, because it's extremely close to the language computers speak. Modern programming languages, like C#, are "high-level" languages, which have been abstracted away from strings of numbers and letters to make them closer to English, and therefore easier to learn, and to write.
Knowing Assembly is like knowing how to speak Ancient Greek, except it's actually useful
But Assembly is where coding heroes are made. Knowing Assembly is like knowing how to speak Ancient Greek, except it's actually useful (source: I have a degree in Ancient Greek and it is not very useful). It's the language that old consoles used, from the Sinclair ZX Spectrum to the NES, SNES, and SEGA Mega Drive. The tales of genius programmers from those days, like Satoru Iwata's optimisation work on Pokémon Gold and Silver that allowed for the addition of the entire Kanto region (a rumour now reportedly debunked as of October 2023) , are all about programming in Assembly, which makes the stories even more impressive.
Plus, Assembly is really cool! Because it's a low-level language with minimal abstraction, it comes with a bunch of benefits, like tiny file size and the ability to add complex effects that run lightning-fast. It's just that it really sucks to learn, because it's hard.
Tomorrow Corp's games are more abstracted than Assembly, of course — instead of talking to a computer, you're piloting little office workers around the place — but the connection to this incredible part of video game history is still strong. I am no Satoru Iwata, sadly, but to be able to tread the same path as him, even just in a quirky video game, feels special. It also gives me a more complete picture of a video game, because the game itself is just the tip of the iceberg — the result of years of work on this near-incomprehensible codebase that dwells beneath the surface.
And, look, I won't lie — Human Resource Machine is really, really hard. The first few levels are pretty easy to understand, as they teach you basic mechanics like "pick up" and "put down", but it's not long before you're having to understand complicated "if" statements, logic gates, logic gates, comparators, and doing your own memory management. 7 Billion Humans is arguably even harder than that, since it introduces parallel programming. It melted my brain. My partner found it fascinating.
I'm never going to be a programmer. I'm too easily distracted, and programming is basically knitting, except there's five different colours of yarn, and you're doing it all by hand, and if you forget what one of them was supposed to do or where it was supposed to go, then you have to start all over again. My brain doesn't work that way!
But being able to understand the strange, complicated world that my partner loves, even a little bit, means that I can visit him in that world sometimes. I can't speak the language, and I probably never will. But at least I can read the menus.
Got a Nintendo Switch and not put off by all that programming speak up there? You might want to keep reading then...
The Best Nintendo Switch Programming Games
If you want to play programming games on the Nintendo Switch, here are some good ones:
Game Builder Garage (Switch)
Game Builder Garage is a frighteningly powerful game creation tool dragged down by a few limiting factors. The lack of an object creation tool (and pyramids) means that most games are going to look like they were made in a game creation suite, but the sheer scope of what’s possible helps to take the sting out of the tail. This will actually teach you how to make games, the tutorials that lead you through are by-and-large excellent, and the inclusion of USB mouse support is a godsend. We’re probably unable to even conceive of half of what Switch owners will be able to create using this software, but we’re certain this is helping propagate the next generation of game developers.
You can also play a less-refined, earlier version of what would eventually become Game Builder Garage in the Labo kits — Nintendo's cardboard "Toy-Con" that let you build your own controller mods. Labo introduced the Toy-Con Garage within its software, which allows you to create rudimentary node-based scripts that can edit the possibilities of what the Toy-Con can do!
Please note that some external links on this page are affiliate links, which means if you click them and make a purchase we may receive a small percentage of the sale. Please read our FTC Disclosure for more information.
Baba Is You (Switch eShop)
Baba Is You is like a compilation of gift shop brain teasers; they’re not for everyone, but some people can’t get enough of them. And while it may sound like just another sketchy smartphone game, it’s surprisingly one of the most unique puzzlers you can find on the Switch and the way in which it encourages you to break its rules and create your own ones is refreshing and unique. Its sudden difficulty spike and lack of a hint system could easily discourage some from continuing, but if you enjoy a good brain teasing, you could easily spend hours getting lost within Baba’s puzzles. Just make sure to take a break or two, or you may forget which Baba is you.
Human Resource Machine (Switch eShop)
Human Resource Machine is a grim reminder of what life can be if you allow yourself to waste away and become part of the corporate machine. Beyond that, it's also a decent puzzle game if you're interested in simple coding and assembly language. This Switch version doesn't bring any significant changes along with it to make it stand out from previous platform releases, but it still manages to deliver a unique puzzler experience that will leave you scratching your head if you don't throw your Switch against a wall first. If nothing else, Human Resource Machine is reassurance that even if there is no escaping the soul-crushing banality of reality, at least we have video games!
7 Billion Humans (Switch eShop)
We thoroughly enjoyed our illustrious career in data manipulation – if you’ve got the head for it (or if you’ve ever enjoyed an episode of Silicon Valley), 7 Billion Humans is as perfect an introduction to programming as you could hope for. It gives the layman an appreciation of clean, efficient code, and the writing will keep more savvy players entertained for the duration. It offers more puzzling variety than its predecessor, but if your brain simply isn’t wired that way, you won’t like it any better. If that’s the case, we’d recommend sitting this one out and crossing your fingers that Tomorrow Corporation have something less esoteric in the pipeline.
while True: learn() (Switch eShop)
while True: learn() is a puzzle/simulation game about even more puzzling stuff: machine learning, neural networks, big data and AI. But most importantly, it’s about understanding your cat.
In this game, you play as a coder who accidentally found out that their cat is extremely good at coding, but not as good at speaking human language. Now this coder (it’s you!) must learn all there is to know about machine learning and use visual programming to build a cat-to-human speech recognition system.
SmileBASIC 4 (Switch eShop)
SmileBASIC is a series of games that teaches players how to create and play games in SmileBASIC, a language based on — you guessed it — BASIC. The Switch version of the game includes the ability to make games for the Toy-Con, which came with Nintendo's LABO sets, with a library of pre-installed sound effects, music, and icons to use in your game.
FUZE4 Nintendo Switch (Switch eShop)
As a gateway into the world of coding, FUZE4 is a nice little package that admirably attempts to soften the daunting prospect of writing code. It's not something we can wholeheartedly recommend unless you’re really interested in seeing how it all works, but to its credit, it does a decent enough job of showing you the basics whilst demonstrating what you could potentially create with a bit of time and practice.
On Steam, there's also TIS-100, Shenzhen I/O, Opus Magnum, and basically any puzzle game by Zachtronics, actually. Also, Hacknet!
Tell me your thoughts about programming games (and your favourite programming language) in the comments!
Comments 21
Ah yes, famous hacker Satoru 'Designing Games, Surfing your Mainframes' Iwata
TIS-100 is indeed brilliant and a good way to make programming as ‘fun’ as it can be. I dunno. I tend to be less about which languages I enjoy and more how enthusiastic I am about what I’m attempting to create. They’re just different flavoured paintbrushes used for different tasks. Any good project will use several different languages for the right tasks like a patchwork quilt. Except with teething problems, lots and lots of problems.
Human Resource Machine is also (better) on Wii U. The touch interface is brilliant.
I really enjoy these personal, introspective pieces, Kate. Thank you for sharing this!
I can agree, for me assembly was difficult. Took several classes with it in college (proudly passed them), and never looked back. I probably wasn’t doing it right and it’s been a while since I’ve even thought about it, but from what I remember all the memory optimization made my head swim after a while trying to keep everything straight between the basic logical flow and little tricks of combining lines and moving lines behind certain statements to make them execute just at the right (processor) time.
I've done a few Computer Science courses at school and coding is something that I really, really, REALLY want to learn.... but jesus is it absolutely brutal as someone who's never done it before.
I can come up with a competitive Pokemon team, calculate the exact EV's and IV's I need to KO a Pokemon or live a specific hit and come up with matching synergies for those mons together, but <, ~ and god forbid { make me cower in fear.
@Fizza who would win: fifteen pages of perfectly written code or { one squiggly boi
@Yorumi we ended up settling on "hacker" because this title was REALLY hard to keep short AND make it interesting 😅
@Pirate1 The one MIPS class I did was the worst experience of my life. I would rather eat a bowl of toenails than do that again.
This article reminded me a lot of what I’ve been going through since November trying to learn to play the piano. Every time I start a new song on a next level I immediately decide it’s impossible and I’m done. A week later I’m somehow playing it. Lol. ❤️❤️
@nessisonett haha, gross. But yeah, mine were x86 and RISC (which looks like what MIPS is).
+1000 for Zachtroics games. They are amazing. Space-Chem completely devoured my brain for weeks a few years back. Big fan of TIS-100 as well.
Not much of a coder these day but I loved programming in college because all of the assignments were basically big puzzles. "Use X tools to create a program with Y functionality". Unfortunately after I left I couldn't really get back into it as without the limited parameters of those college projects I found coding 'real' applications massively overwhelming. It did mange to make an app in pico-8 for generating backing tracks though (for guitar practice). That was super fun.
Ironically, my module in assembly, I think it was called Computer System Architecture, was the only one I got a first in during my 3 years of Computer Science degree. (Spoiler alert: I got a 'PASS' rating and lost the honours). Love the article though, Kate. Thank you!
Thinking about the game moving a little turtle around is giving me flashbacks.
I always found programming more like math than a verbal/written language-- it has a few basic rules and then it is just logic. Verbal languages on the other hand are a nightmare of rules which are constantly broken and random insertions of unrelated parts of other languages and horrible logical contradictions. Basically I suck at learning human languages, but programming ones are never too bad. Assembly is a bit hideous though.
I loved the concept of game builder garage but never made much myself because I'm ultra lazy during my game-playing time.
I can't program (I won't say code, because I feel that's reserved for those who actually have the skills), and there are so many languages that I don't even know where to start. I want to be able to do it, though, because I feel like I'm the only person on the internet who doesn't know how to at all...
I like making games using programming, I don’t enjoy playing programming games that much though.
I probably would have enjoyed them more when I was a kid or teenager.
I like the freedom of general purpose programming.
I remember making a game using winapi and C++.
It was super slow but it worked.
And just the idea of using windows GUI assets and windows to make a game was for me an interesting idea
I guess I enjoy making use of thing differently than how they were intended to be used. I guess that’s why I am all over console hacking news. Like running Ubuntu on your Switch. Neat!
As someone who cut his teeth programming 6502 assembly on a Commodore VIC-20 in the 80s, this stuff is right up my stack.
@FishyS everyone told me that programming was a lot like Latin, which I did at university — it's a very logical, mathematical language that's all about slotting things into the right places, and making sure all the endings agree with one another. I don't think programming is anything like it, though!!
Great read Kate, thanks. I tried to make some games back on spectrum/commodore and quickly decided that is was better to leave other people to that.
@Yorumi Where would I look for such "beginner" material? It's not so helpful to just say "Google it" (and I'm not saying that you did, but most probably would just tell me that), because that would imply that I should know exactly what to type into the search field.
Really nice to see this article shine a light upon the more obscure "hobby" games that exist in the wild. It's no mean task to take our innate thinking processes, and "gamify" them out of their shrouded complexity. All the if's, or's, (whose butt and when?), take up the role of rudimentary logistic functions and clever developers then impress those notions onto small, graphically pleasing puzzle pieces. Behind the scenes the powerful chemistry of our brains can then some how map our ideas of mathematical consistency into a game that people play for fun. Big picture aside, there are some excellent examples in the genre and I would be hard pressed to find a more complete list then is featured here.
Show Comments
Leave A Comment
Hold on there, you need to login to post a comment...