[ad_1]
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!
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, 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)
Publisher: Nintendo / Developer: Nintendo
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!
Baba Is You (Switch eShop)
Publisher: Hempuli / Developer: Hempuli
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)
Publisher: Tomorrow Corporation / Developer: Tomorrow Corporation
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)
Publisher: Tomorrow Corporation / Developer: Tomorrow Corporation
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)
Publisher: Smileboom
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)
Publisher: FUZE Technologies / Developer: FUZE Technologies
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!
[ad_2]