Programming for fun

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)
  • Shapez.io
  • Modding communities for various games
  • minecraft–since I haven’t played

Boardgames

  • Robo Rally?
  • ???

Websites

  • Advent of Code
  • Code.golf
  • Regex.golf

Other

  • Microbit controllers (which I already used for girls day)
  • Do those programmable Lego pieces still exist ?

Can you help me make the list longer?

4 Likes

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.

http://landoflisp.com/

3 Likes

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?

3 Likes

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.

1 Like

Short polyglottist’s impression of Lua:

Speed wise it’s in a class with other interpreted languages.

Designed to run on low-end systems, very low memory footprint. Benchmark at RogerBW's Blog: The Weekly Challenge 300: What a Beautiful Nest .

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.

2 Likes

Why is it so popular as a modding language? I might be inclined to blame WoW?

1 Like

I suspect because it’s easy to cut-and-paste fragments together, without much understanding.

3 Likes

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.

2 Likes

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.

2 Likes

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.

3 Likes

The Dragon and Flagon is another programming board game in the vein of Robo Rally.

Space Alert fits as well, with an added chaos bonus of a timer throwing challenges your way.

6 Likes

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.

3 Likes

Another programming game:

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.

(Spoiler alert: Mistakes will be made :).

6 Likes

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)

2 Likes

I just learnt this. Ruined my day!

5 Likes