I don't really see the appeal compared to ordinary programming. My favorite programming game has actually been a flash game where your goal was to transform binary strings (represented as sequences of blue/red dots) into other binary strings. You were still writing in Befunge, but the rest of it came off as trying to be helpful to the extent possible, rather than giving you a goal and then disabling the tools you'd want to use to get there.
Finding the most optimal solution in real programming is impossible because the scope is always enormous.
I stopped playing exapunks because of this before the end. The limited instruction set, limits on movements, etc. are cool - they force new solutions. Not having functions or advanced templates is just annoying - I need to implement the same thing multiple times, by copy-pasting.
Pretty much everything programming isn’t in the real world.
It's also much easier to find a solution if you know there is a good solution to be found.
http://pleasingfungus.com/Manufactoria/
Probably my favourite flash game.
It's even less of a game, but I also had a lot of fun with http://incredible.pm .
Some things off the top of my head that I find annoying:
- Puzzles start feeling like they're asking more for busywork than for puzzle-solving. I enjoy thinking about "how do I do this?" I don't enjoy thinking "well, I know exactly what I want to do, but it's a huge slog to actually go through the motions."
- You can't rotate the thing that accepts a polymer. So if you end up making the correct thing, but your orientation is off, you get to manually re-lay every part of your machine, instead.
- Everything uses the same clock.
- You can't even apply purely mechanical fixes for everything using the same clock, like a three-arm grabber with one of the arms cut off. There goes the conceit that the rules are justified by the theme.
I like that Opus Magnum scores you separately on time, space, and monetary cost. That was a good idea. I like working out fundamental minimums for how quickly I can produce something (based on the source pieces I'm allowed...) and designing something that can achieve that. The animation of a completed machine is fun to watch.
I think the monetary-cost mechanic seems underdeveloped.
I think you will enjoy this puzzle game:
http://qrostar.skr.jp/en/jelly/
Don't let the cutesy graphics fool you, this is a masterpiece in puzzle design.
In case you are not on Windows or don't want to download the exe for some reason right now, you can try this html simplified version
I guess it’s like Harvard vs. Von Neumann. Harvard is more practical, but Von Neumann allows more fun hacks.
Plus, it has trains :-)
Which will run over the programmer.
Though I already have weekend programming projects that are more fulfilling and work towards something more concrete than "yay, solved a puzzle", and the games just made me wonder why I wasn't putting this time into those hobby projects. Factorio made me feel this way too.
On the other hand, I've been playing Morrowind lately (OpenMW) which gives me a nice mental break from programming. Apart from the fact that I couldn't help but write a parser for its game files once I saw how simple and documented the format was. Bit more fulfilling to have a `tes3_parser.go` at the end of my puzzle-solving session than to have solved some contrived TIS-100 puzzles for a fantasy computer.
https://en.uesp.net/wiki/Tes3Mod:Mod_File_Format
Factorio was fun at first, but then it quickly felt like a pencil and paper optimization problem for something that doesn't even exist. Whether that tickles your fancy or not is probably like whether cilantro tastes like soap to you or not.