Zachtronics Industries makes incredible engineering games. I haven't tried this one (though plan to tonight), but if this looks interesting to you, definitely check out some of his older work.
Ruckingenur II in particular is interesting. It places you in the role of a hardware reverse engineer, tasked with tinkering with circuits for anything ranging from basic electronic locks, to the copy protection on the Gamecube, with the goal of bypassing different security mechanisms. It's a really novel game.
Looks cool, and I've enjoyed Zachtronics games before. I wish the demo video was longer and gave a better idea of the gameplay, though. I might throw the $7 at it anyway to find out.
I've had a vague desire for a game like this lately. I wasn't really around for the early computing era (my first computer was a 486), but I've played with the old machines and learned a lot of the history. There's a special kind of fun to be hand with them, and a sort of peace in working with their simplicity. They offer an oasis from the ever increasing complexity around us. Like the peace one gets from working on a garden; it's still work, but the work is simple, rewarding, and just for your own benefit.
My desire went so far as to build and tinker with my own game. It was to be like Elite, but you pilot your spaceship using only a Commodore 64 esque computer. You had to program everything for it. There were no flight controls or anything, instead you wrote programs to control the thrusters how you wanted, control weapons, drive the radar and plot the detected objects on the screen, etc. If you wanted keyboard controls of the thrusters, you made a program for that. And I had plans to add inter-ship modems so you could build scout ships with automated scouting programs that send back their data.
It was HTML5+JS based, and I got it to the point of having a working asm.js 6502 simulator, various peripheral hardware, MS BASIC, thrusters, radar, and a solar system to explore. But I got busy and had to stop. One major roadblock was that BASIC was terrible at all the register banging required to write most of the needed programs. So to make it "fun" I would have had to bring up a respectable DOS-like OS, a C compiler, and a code editor.
I really loved the idea though. It had all the fun, cool, retro elements of working on a C64, combined with the fantasy-lore of space adventures. My head swam with neat ideas like adding radiation dangers which could begin flipping RAM bits; interacting with space stations using your on-board modem so that all the Elite-like markets were operated like old BBS software; wormholes that gave you access to alien systems with powerful but undocumented peripherals; etc.
> I wish the demo video was longer and gave a better idea of the gameplay, though. I might throw the $7 at it anyway to find out.
Just spent about an hour and a half playing with it. What isn't obvious from the video is that the resources at each compute node are very constrained. You only get one accumulator register, and one additional "backup" register that isn't directly addressable. Furthermore, the size of each node's program is limited to 15 instructions (and comments count toward that limit, for extra evilness).
The result is that the learning curve is pretty steep. For the first few levels, the problems are simple enough that you have a lot of flexibility in how to implement a solution. But once the problems get more complicated, you have to start getting creative in how you split the work across processors. It's actually more comparable to designing a pipelined CPU than it is to assembly language, IMO.
I just spent over half an hour coming up with a solution for level 7. It's a pattern-matching problem that superficially looks very simple: on a real computer, you could easily solve it with a finite state machine. But here, that program is considerably too big to fit into a single node -- and state machines aren't known for being easy to parallelize. I finally solved it by (rot13'd for spoilers) znxvat guerr pbcvrf bs gur vachg fgernz, srrqvat rnpu pbcl gb n abqr gung frnepurq sbe bar bs gur guerr cnggrea punenpgref, gura pbzovavat gur erfhygf jvgu gjb vafgnaprf bs na "naq" tngr gung unf n qrynl ba bar bs vgf vachgf. I ended up needing 297 cycles, which is about in the middle of the histogram; clearly there are more efficient approaches, but I haven't figured them out yet.
> It's actually more comparable to designing a pipelined CPU than it is to assembly language, IMO.
In a way, yeah. But the 6502 was also quite constrained, and early systems further constrained it (e.g. the Atari 2600 only have 128 bytes of RAM). I think this game does a good job of emulating the amount of creative thinking programmers had to have to deal with the limits of those early machines. And the game does so while keeping things simple so you aren't spending your evening glazing over a 300 page 6502 programmer's manual.
Regarding level 7, definitely a tough one! I ended up making what looks like the first solution with 4 nodes and 22 instructions. It's possible to cram the logic into one node, with some misc. decoding in a second and the other two as just transports.
Back to your point, this isn't exactly like working with older, consumer computers like the Apple II, mostly because of the parallelism. I think that's because of Zachtronics' other games which involve a lot of data-driven, parallel engineering. Still fun though; well worth the $7.
I remember when I first installed Omega for the PC.
http://en.wikipedia.org/wiki/Omega_%28video_game%29
I thought it was the greatest game ever made at the time. However, it was too easy to optimize and win. If I ever decided to create a game, I was definitely going to do something along the lines of a programmable battle simulator.
This is a long winded way to say that I'm VERY glad to see Zachtronics making games which assume there is a market for gamers who enjoy programming. I hope to see more like this in the future.
Side note: Just purchased this on Steam. Looking forward to cracking it open.
Its been over 20 years. You might need a start label before your commands. But I really don't remember that much about the language, at least not without setting up a copy.
If you've not run it at all, contacting Steam support (yes, painful) has apparently got a fairly good chance of getting you refunded. (Also you only get one refund / one refund per $lengthy_period)
If you're saying it works with Wine (which OS X version?), I'll do that. Unfortunately, only a fraction of games work with the combination of [Wine, OS X version] that happens to be my current system. Games that work with Wine in 10.6 won't in 10.10.
Ruckingenur II in particular is interesting. It places you in the role of a hardware reverse engineer, tasked with tinkering with circuits for anything ranging from basic electronic locks, to the copy protection on the Gamecube, with the goal of bypassing different security mechanisms. It's a really novel game.
You can play it for free here: http://www.zachtronics.com/ruckingenur-ii/