Thursday, January 30, 2014

The Meaning of The Game of Life

When it was family board game night in the '70s, I always picked The Game of Life or Careers (or sometimes Masterpiece ... I was a weird kid), not Uno or Aggravation. I guess I liked the complexity; I even found Monopoly too predictable (it's a Markov chain, after all). My love of complexity was given a mainline overdose in 1979 when my dad became the first person in our town to own a home computer, a Texas Instruments TI-99/4 with a whopping 4K of RAM. (That's 1/16 as much as a Commodore 64.) He also had a subscription to a programming magazine, so every month I would read through mostly incomprehensible (to me) lines of badly-typset BASIC (a different dialect than TI BASIC, which caused me no end of grief), and occasionally laboriously type some in. There was Eliza the automated psychotherapist, the Lissajous fractal generator ... and Conway's Game of Life.

In 1970, British mathematician John Conway invented a set of rules for cellular automata that would allow you to start off with any combination of black and white squares on a grid like a chessboard and by applying three simple rules determine whether in the next turn a square would stay the same or change colour. Since computer time was too precious to be wasted on mere experimentation, Conway designed Life with pen and paper and only computerized it when he knew he would get a passable result. And what a result! While most cellular automata (a concept invented as a side project by scientists working on nuclear bombs) until then had been uninteresting, quickly gravitating to all black or all white squares, Conway's developed long, sometimes extremely stable cycles, with some shapes persisting, some cycling, some even spawning other shapes, looking like birds or stars or spaceships or even cells... it was a perfect storm of mathematics, armchair philosophy and whimsy at a time when computing was just starting to be able to accommodate all three.

There are many websites (and a humungous wiki with hundreds of named patterns) devoted to The Game of Life, but it seems to have lost its place in the geek imagination over the last ten years or so: most of these sites use Java applets that are routinely disallowed by modern browsers. To see Life in action, you pretty much are now stuck with Animated GIFs or downloadable freeware. Life is the first computer program I actually understood. I typed it into my poor overworked computer (it got so hot I actually burned my elbow once), and when it ran, the 7 or 8 second pause for recalculation between iterations didn't bother me. (At the time, everyone compared computer pauses to how long it would take a human to do with a slide rule and graph paper, so it was miraculous.) Then in the next issue, there was a revised code of the same program that ran over twice as fast by holding only three lines in memory at a time instead of the entire array. My mind was blown and I sat down with a pencil for hours and marked up the code to understand why this was so.

Then I gave up coding for 30 years to study opera and work in underground journalism, but that's another story.

(I've come full circle with keyboards, however: I now use the first chicklet keyboard I've had since 1979. Oh, and in the meantime Steven Wolfram claims to have reinvented science (or something, I only understand about 5% of it) using cellular automata with catchy names like Rule 90, not to be confused with Rule 34... don't worry, the link is safe for work).

To celebrate The Game of Life, I've rewritten some BASIC code using Joshua Bell's terrific javascript emulator (he was kind enough to help me implement it, since my BASIC is way better than my javascript). Enjoy, and marvel at what passed for computer graphics when Jimmy Carter was president. If you're a programmer, feel free to look at the code and smirk at the LET syntax, lack of ELSE statements and highly vulnerable GOTOs (I wrote so many infinite loops it was practically my breakfast cereal ... unlike Mikey, who preferred Life).

Note: Blogger seems a little finicky (and/or I'm a little incompetent) when it comes to displaying javascript. If you don't see a big black box above this sentence, click here or here. But not here or here. And definitely don't click here.


Post a Comment

Please leave comments & corrections here. Courtesy is appreciated.

Popular Posts

Scroll To Top