Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(2 edits) (+1)

A really fun and charming way of getting newcomers into "machine language".  I genuinely think a computing curriculum could use ideas like this. There is a bit of a learning curve at first, but I have a feeling this was probably the intention.
The use of colours is also worth a mention as they really help to sell the "toy-like" feel. 
Don't take the audio being at 1 stars personally. It just indicates that there is no audio. I think it was a wise decision not to have it given that it will not appear at machine-level.

(+1)

Thanks for the great comment! I got the original idea for this when I read the Understanding the Digital World textbook, by Brian Kernighan, where he used a Javascript implementation of a similar "Toy" using assembly. (I shared the Linux prototype of my Toy CPU with Brian. He liked it.)

I tried to balance "fun/easy to use" with "programming in machine language." That's a hard balance to make with machine language. :-) I used the Linux prototype in a 100-level course about "how technology works," for our unit on programming. I showed how to enter a "flash the lights" program, then we watched it run. I had my students write a simple program ("A+B=C") in machine language for the Toy, which I entered for them. They said it was hard to do at first, but they got it. And that made learning the "how it works" of programming much easier. I rewrote the "A+B=C" program in assembly, and in higher level programming languages .. the students were much more engaged and directly connected the "A+B=C" assembly program to machine language, and could see how "A+B=C" as a higher level language (like C) could be translated to assembly (and thus into machine language).

That's as far as we got, since it's not a computer science class. :-)

(+1)

I think getting the approval of the creator of your basis can be really encouraging for something like this.

It's also great how such a game can both be enjoyable whilst having some educational value. Very rarely can that kind of balance be found; especially when you're working with a rather abstract interface, like you were saying when it came to mixing fun and ease of use.