Open source gaming – or things I do when I should be working
by Richard Hillesley
"What I was proud of was that I used very few parts to build a computer that could actually speak words on a screen and type words on a keyboard and run a programming language that could play games. And I did all this myself" – Steve Wozniak
For some users computer games are little more than "the things I do when I should be working", a soothing distraction or a waste of time and space. For others games are a matter of life and death, the bane of partners, the be all and end all of computing, and the reason why we bother. So the addicts are pleased to go out and buy an XBox, a Nintendo or a PlayStation 3 rather than a full-blown computer, and are happy to play the night away.
The best games are a learning experience, an exercise in strategic thinking, memory retention, what-if scenarios and problem solving – not unlike programming itself. Each piece in a game like chess has a limited number of moves, yet the game itself is a world of possibilities, and like a chess player, a programmer has to think ahead, so it isn't really surprising that many coders approach programming as if it was a game of chess, and are also gamers.
Ryan 'Icculus' Gordon's take on this is that "everyone's a gamer if you find the right game." People who won't play DOOM will happily play Angry Birds all night long – and Gordon himself programmed the night away while working on porting Unreal Tournament 2003 to Linux.
"I found myself asleep under desks in Epic's offices," he says, "working for stretches of days at a time, living off microwave meals and take-out food, hacking all night and then breathing the morning air off the building's balcony as the sun rose. It was some of my best work. I lived in that codebase; it became part of me, and I became part of it."
"Everyone should work on a project like that at some point in their lives, when they have nothing to lose except their own sense of self", he says. "And after that, never again."
Gaming for the sake of the hack
The instinct of the best of hackers has always been to make and find new problems, and then to solve them. From the earliest days games were a means of stretching the capabilities of computers, and were part of the enticement for getting involved. The first electronic computers were the code breaking computers of the second world war.
Code breaking itself can be seen as a form of gaming – and Alan Turing would use "chess-playing as an example of what a computer could do. He specified a chess playing algorithm, implemented as 'paper machine'", a Turing machine. "Since there was no machine yet that could execute the instructions, he did that himself, acting as a human CPU requiring more than half an hour per move" in work which acted as a forerunner for the Turing Test.
Similarly, gaming played a large part in the culture of the hackers of the TMRC, or Tech Model Railroad Club, at MIT in the late 50s and early 60s. Members of the Tech Model Railroad Club went on to become the pioneers of the AI Lab at MIT and developed the first music software, the first display hacks, the revolutionary Incompatible Timesharing System (ITS), the Lisp Machine – the first single-user workstation – and a host of computer games that became the prototypes for those that followed later.
The most famous game to come out of MIT was SpaceWar, which was written by Steve "Slug" Russell, Martin "Shag" Graetz and Wayne Witaenem, on a DEC PDP-1 which was installed in 1961. Spacewar was based on the science fiction novels of E.E. 'Doc' Smith and was impressive enough to be used by DEC as a demonstration tool to show off the graphical and processing capabilities of the PDP-1.
Richard Greenblatt, 'the hackers' hacker' among the AI Lab hackers, wrote the first computer chess program deemed to be capable of playing chess "in human tournament competitions and be granted a chess rating", sometime in the mid-60s.
But probably the most played game to emerge from MIT was Zork, an early adaptation of the Colossal Cave Adventure strand of games. Zork was originally named Dungeon, but reverted to Zork when the makers of Dungeons and Dragons threatened to sue for trademark violation. Zork was slang among hackers for an unfinished program.
Zork and its derivatives were ported to virtually every home computer on the planet during the late 70s and early 80s, which was a time of growth for commercial games software and arcade games. Users now expect to be able to run infinitely more sophisticated versions of the same games, thanks to Moore's Law and the impetus of computer gaming.
Anything was possible
The community of internet linked programmers who created Linux grew up in an era when a computer in the home was a creative toy that you could open up and play with, break down and program, and even, when push came to shove, improve. The onus was on you to make things work.
Programs came with the source code. Many were text based adventure games. If you were curious or inventive, you could add characters or situations to the game, and pass it onto someone else. More importantly, it was fun, and variants of these games still exist, because the code was handed round, updated and passed on to the next generation.
Linus Torvalds had a Sinclair QL and wrote games for it. In January 1991, when he acquired a relatively sophisticated IBM PC with an Intel 80386 processor, the first thing he did was to install a computer game, the Prince of Persia, which he played for a month before he installed Minix and GCC and went to work on the terminal emulator that evolved into Linux.
Ryan Gordon had a Commodore 64. "The vast majority of my time on the C-64 was spent playing video games," he says, at a time when "every game felt wildly unique and brilliant and anything was possible. I don't know that I'll ever feel that way about gaming again. Even moving to 'real' game systems like the 8-bit Nintendo felt like a step down in many ways."