Fri Oct 14 23:17:11 EST 2011

Why ZZT was so Great

I have a problem with my personal projects. I start lots of them, but I never manage to finish any. There's a common thread that runs through my various failures: my projects start with a grand vision, and when I try to implement them I become overwhelmed trying to hold the design and the half-finished structures in my head at the same time.

I'm going to try something different this time: publicly write stuff down. I normally write a a page or two of chicken scrawl and it's never clear enough.

What's the latest attempt? I want to make a ZZT-inspired game creation system. I'll probably call it Z+ (hence the tag). For those that don't remember, this is what ZZT looks like:

ZZT Title Screen

That's a 60*25 play area and a 20*25 status bar. The game shipped with a limited library of pre-programmed terrain and enemies, geared around making arcade/adventure-style games (usually with a plot like "collect the five purple keys to enter the final area"). What made ZZT more than an footnote of early-1990s PC gaming was its world editor and programming languge. It was one of the first games that let players create and share worlds, and the community that formed around this lasted for over 20 years. Its built-in language, ZZT-OOP, inspired many people to learn programming. The constrained display and character set lowered the artistic barrier to entry. World-builders only had 16 colours and 256 glyphs to work with, so the "graphics" were mostly symbolic (ZZT is similar to Dwarf Fortress in this regard).

Modern programming environments are also much harder to get going than those of the past. Even on developer-friendly systems like GNU/Linux, the user still has to download a toolchain, stuff around with driving compilers and linkers from the command line and deal with a nearly endless list of portability landmines. The beginner doesn't want to stuff around with that, they want to make cool things! Before _why performed internet seppuku, he wrote about "The Little Coder's Predicament". I share many of his concerns. ZZT was accessible in a way modern systems aren't.

To summarise:

  • ZZT's world builder has a low barrier to entry.
  • ZZT's constraints were part of its charm. Something that can do everything is often not particularly good at anything.
  • Low-fi graphics reduce the amount of artistic effort required.
  • Modern programming environments have a high barrier to entry.
  • A modern ZZT-alike would be a great starting point to teach programming.

Posted by Jack Kelly | Permanent link | File under: zplus, coding