I am putting this in boardgames.
I am planning to give a short “talk” to my colleagues (it’s not exactly required but recommended we do so every once in a while). The topic I chose for this one is one near and dear to me since always–see title of this post.
I am collecting
computer games
boardgames
websites
other
That either educate about programming or at least provide a similar experience or just include programming for fun instead of work. One major question I want to be able to answer is “how do I get my kid interested in tech/programming” and the other is “what kind of programming or programming adjacent activities can I do to feed my brain logic-base dopamine?”
So far I’ve got:
Computer Games
Zachtronics (everything. My favorite is Opus Magnum)
Human Resource Machine + 7 Billion Humans (haven’t tried the latter)
This isn’t a personal recommendation, because I’ve never read the book. I’m just aware it exists. I really like Lisp as a programming language, and I think programmers benefit from knowing Lisp, and this is a book about writing small games in Lisp, so it seems like it should qualify.
In computer games, I hear about Factorio and Dyson Sphere, but I haven’t played them. Don’t know if they come under Zachtronics. For historical interest you might talk about Core War - Wikipedia .
On the boardgaming side, Colt Express is a much more accessible programming game, as is VOLT. (BGG says Flamme Rouge is “programmed movement” too, but I don’t think that’s meaningfully a programming game any more than “everybody picks a worker spot, then we resolve them in a set order” is.)
Oh, and you can code stuff up in Lua within Tabletop Simulator to make your board game emulation work better.
https://everybody.codes/ is doing the same kind of thing as Advent of Code. (First one was last November.)
Other: the Raspberry Pi was originally sold as a low-cost computer for educational use (they didn’t talk about all the other things you needed to suply). The ESP32 and similar microcontroller community?
I have played Dyson Sphere Programming and Satisfactory. They are both very good and my assumption is so is Factorio. They are the less abstract versions of shapez.io. Good call.
If I include those, I feel I might also include Oxygen not Included. The machine building and automation that is possible in this game comes very close to what I like about programming but I find it very difficult to explain why.
Lua absolutely needs mention as it is used for modding in many many games. Sadly, I’ve never gone beyond a super-simple WoW mod so I cannot talk too much about that.
The thing that feels clumsiest to me is that is doesn’t have any sort of list comprehension, no map or filter. Obviously you can do the same things in other ways, but that makes it verbose.
1-based indices, why?
There is no type safety.
An array is a table. A hash/dict/map is a table. Use an array-style function on a map and anything might happen.
Low resource demands from the interpreter make it easy to port to embedded systems.
There’s a fairly decent interface to let it receive data from a parent program, do some processing, and return the result. (I haven’t used this much.)
It’s easy to embed into a larger program in a relatively safe way, so it’s an obvious choice for a game developer who wants users to be able to program within the game environment but doesn’t want to include something like Python.
Unfurtonately, as @JGD says, it looks simple and often if you paste in a code fragment you found somewhere it will more or less work most of the time.
One thing that surpised me was I saw my son watching Wonderblocks - Wikipedia which is on CBeebies (target age 4-7 years) shwoing them programming concepts. As with the other ‘blocks’ series it’s very well done.
I don’t know much about it, but I recall one game developer singing the praises of LuaJit after spending quite a while evaluating various scripting language options for a custom game engine. If it’s reasonably easy to use, lightweight, and performs well, then I guess it ticks a lot of boxes.
I love Zachtronics, it’s a shame that they no longer exist as a studio. I’d also agree that opus magnum is their best.
I played The Farmer Was Replaced which is more of an explicit programming game. Strangely it teaches you to use pseudo-python rather than just using a python interpreter but it’s interesting in that it unlocks features of the language as you farm crops. I’m not sure whether it would be a good source to learn programming from, but it’s certainly trying to be. It could probably do with more explainers for complete beginners, but if someone wanted to learn a bit about programming and we’re interested I’d say go for it.
There are three different colour-coded types of asteroid on the map (and many of each type), and at the start of each round you roll three coloured dice to find out how each of the three types of asteroid will move that round. With that knowledge, you then program your ship’s movements for the entire round (against a timer set to an agreed time limit). Then you move the asteroids. And lastly, each player runs their program in the updated asteroid field, and finds out whether they actually figured it all out correctly.
I’ve been playing his games a long time. I was there when he invented Minecraft before Minecraft (Infiniminer…Minecraft is definitely a better direction)