Hacker News
points by waltbosz 3 days ago | 0 comments
When I was a kid making games, I used ZZT. My brother recently got back into it and started teaching his kids for to make ZZT games. I found the programming language too constrictive. It didn't have great support for things like variables and loops. I still enjoyed it. My brother reasoned that the small instruction set makes it easy for his kids to learn to code in it. I suppose that's true. But he never learned to code in higher level languages, so he doesn't really know how frustrating it is to have to write so much ZZT code to accomplish something which would be so simple in another language.
[–] debo_ 3 days ago
My earliest "gnarly bug" experience was that the "set flag" operations in ZZT are limited to 8 flags, but it doesn't throw an error if you exceed that limit; it just wraps to the zeroth flag. It took me a full year to figure it out as a ten-year old.
[–] dormento 3 days ago
> It took me a full year to figure it out as a two-year old.

o_O

Edit: i see you corrected it now, but with hn you never know..

[–] willismichael 3 days ago
Well, it was limited to 8 flags.
[–] debo_ 2 days ago
As a computing native, I mix up my 2s and 10s all the time /s
[–] soupfordummies 3 days ago
warms my heart to see this so high. that summer I was 10 and discovered ZZT and the surprirsingly robust editor and language was really where it all began for me tech-wise. and I was just thinking about it two days ago
[–] debo_ 2 days ago
I joke that I learned how to SmallTalk before I learned how to small-talk.
[–] dasyatidprime 2 days ago
I've ha-ha-only-serious described ZZT-OOP as “object-disoriented concurrent INTERCAL” before. The #zap/#restore and #lock/#unlock commands rhyme somewhat with INTERCAL's ABSTAIN/REINSTATE (or IGNORE/REMEMBER, seeing as keeping important state implicitly in the program counter is a pretty important technique in ZZT), and sending a ‘message’ is basically remote GOTO.

Bonus points for using an extended editor to put normally-impossible values in stats fields to exploit different engine behaviors.