The Didactic Novel
slimemoldtimemold.com
slimemoldtimemold.com
A page with a link to several of these: https://blog.nina.coffee/2018/08/27/all_nature_method_books....
(the site that it refers to is where I initially found the same list of books, but it seems to be defunct)
https://vivariumnovum.it/risorse-didattiche/propria-formazio... (defunct, it seems)
Hack ‘n’ Slash is my best example, it gets across some basic ideas about data structures, gameplay scripting, and cheat methods. But I don’t know how much of that can be picked up purely from the game, since it’s all through stuff the player has to figure out how to do (even with some prompting). You don’t get to learn from watching a character figure it out. Not that one or the other is better, I’m just curious about other examples.
Its gameplay is that you write (an extremely simple) assembly bytecode for virtual machines called the "Exa"s, those virtual machines then infiltrate computer systems across the network and perform your program there. The whole thing is visualised as tiny little robotic virus-like creatures, representing the malicious scripts you write, hopping around in an arena representing the network they haunt.
Aside from the amazing and nostalgic story and the obviously educational value of teaching a player the bare basics of assembly programming, there are more subtle educational content being sneaked into the experience. Off the top of my head:
1) The Exa is extremely primitive, it has a single general purpose 4-digit-wide register that can hold decimal numbers from -9999 to 9999 (and occasionally strings), and another one mostly like it but test-and-jump instructions additionally treat it as an implicit second operand, that's it. No stack, no procedures, no nothing. Just 2 registers, and a very simple set of 2 dozen or so instructions. Oh and there's also a limit on the code size, it varies on each level but it's about 100-150 instructions.
2) But the Exa is Turing-complete, because it has a special instruction MAKE that creates a file, files are infinite length comma-seperated list of values, you can only write to it by writing to a special register on the Exa. Juggling values between files and registers is thrilling mental gymnastics.
3) Exas can fork, this is the primary mechanism that gets around code size limitations. Forking works just like OS processes, a new copy of the Exa with the same code is created and the child jumps to a label while the parent falls through the code. I learned and internalised all of this before I knew what 'Process' in the OS sense even means, that's how beautiful this game is. There are even a mechanism for communication between Exas (i.e. IPC), complete with rules about what happens if an Exa writes to the network register and nobody reads it or vice versa.
4) Sometimes you manipulate external devices (neurones, ATM machines, satellite dishes, Etc...) by writing to special registers, just like you manipulate files by writing to a special register, this is yet another sneaky educational bit: the Everything-is-a-file of Linux and Unix OSes, the interface for hardware mimics the interface for files and networks.
Also checkout other Zachtronics games like kohctpyktop, TIS-100, and shenzenIO. Every one of them has something awesome to teach you, but it's Exapunks that burned itself deep inside my brain and heart.
These games also tend to have a very little pre-scripted narrative, which is why I also didn't mention Kerbal Space Program or sims generally. Opus Magnum and Exapunks have more, but it's still just a way of introducing self-contained puzzles, nearly completely disconnected from what the player does. Hack 'n' Slash isn't a great champion at this, either, but it's a little better integrated.
I bounced off Exapunks pretty early, haven't opened the second zine. I'll give it another try, your points about forking and IPC are interesting.
Shōgun
Cryptonomicon
Harry Potter and the Methods of Rationality
... The Didactic Novel