This is the first part of the Learning Curve trilogy.
As the years progress, the human brain archives ancient experiences it decides aren’t so relevant any more. It shoves the past into a blender face first, making it difficult, if not impossible, to identify events let alone organise them into a sensible chronological sequence. Cause and effect are corrupted.
But there remain flashes of important moments and here are some from my videogame childhood: running home in tears when a café owner switched off a Check Man (Zilec-Zenitone, 1982) arcade cabinet seconds after I’d inserted my one coin for the evening; walking back to the bus stop from Porthcawl beach where there was one last videogame arcade to visit, a place in which we discovered Tutankham (Konami, 1982) and Jungle Hunt (Taito, 1982); losing a whole morning to an obsession with my first virtual world, Adventure (Atari, 1979) on the Atari VCS.
I know that we bought an Atari VCS during a stay in London because I recall seeing its box, complete with screenshots and Ingersoll Electronics logo, bundled onto a National Express bus bound for Wales. I know the most anticipated Christmas presents at that time were Atari cartridges. I could usually tell which presents were the cartridges but never opened them all in one go, as I wanted to savour the annual tradition of the Christmas unboxing.
Childhood seems longer than it is. Although I am left with an impression that the VCS dwelt in our house for many, many years, this cannot be true. I have a receipt here that says we bought it in a store called “GEM Electronics” on 23 August 1980, and I have another receipt saying we purchased an Atari 800 on 8 October 1982. I can rescue cause and effect from these receipts. They imply we sold most of our VCS games in 1982, just two years after we bought the console.
The reason my parents sold the console was practical. Primary school wasn’t stretching me enough and I was the kind of child who engorged his brain on Open University television programmes. A primary school teacher even told my parents off for teaching me at home, pushing me ahead of the class, but they confessed it was because I watched adult literacy programmes like On the Move. My parents decided to buy a computer to prevent me from getting bored, to channel my energies. We didn’t have much money, so the VCS was sold to raise funds for a 32K Atari 800 Home Computer with an Atari 410 Program Recorder.
It was hard to say goodbye to those black, chunky cartridges and their colourful boxes, but we didn’t say goodbye to every game. My little sister had told prospective buyers that we didn’t like Basketball (Atari, 1978) so they took her sage advice and did not buy it. I still have this box today.
But I’m not here to tell you about the Atari VCS. I’m here to tell you about my years as a game developer.
I was 9 years old. In the months before the computer arrived, a London-based friend of the family had sent a VHS tape of what games on his Atari 800 were like. We watched the tape again and again, studying Star Raiders (Atari, 1979), Star Warrior (Automated Simulations, 1980) and Scramble clone Airstrike (English Software, 1982) frame by frame. It was Let’s Play, 1982 edition. The predetermined final death in Airstrike, at the end of the tape, was always so frustrating. We’d will the ship to survive but it exploded right on cue, every time. As well as the video, I studied pamphlets and magazine articles about the Atari 400/800 machines. This slow drip of information built into incredible anticipation.
Then, finally: I came home from school one lunchtime and, just as I went to knock on the window to be let in, my father pulled up the net curtains to reveal an Atari 800 computer. My head TOTALLY ASPLODED.
I can’t recall any time I was allowed to skip school except for that crazy afternoon, the afternoon my father brought the machine to life. We got BASIC up and running and tested out some of the free bundled programs that the distributor Silica Shop provided with the computer. But our first mission was to type in the game Wild Strawberries from Computer & Video Games magazine (Oct 1982). Wild Strawberries was a version of Space Panic (Universal, 1980), one of our favourite arcade games, a nerve-shredding platformer with great sound work (although it doesn’t sound quite right on MAME or YouTube, as it has lost the raw reverb of a real cabinet). We spent the better part of a day typing it in as none of us had experience with a keyboard. The results were predictable. The game didn’t work.
There were many typos but the main one I remember caused the enemy strawberries to travel straight off the top of the screen, probably leading to ERROR 141. It took hours to pour through the badly printed listing to pin down every mistake (except for one which we didn’t discover for years but left in because it made the game better). We finally had the game working in the evening, after dark. This was kind of a big deal. We had typed in a program from a magazine and were able to play an awesome game. This meant we didn’t have to buy expensive commercial games: you could just pick up a magazine for small pennies instead.
We didn’t understand the code, of course, it was all gobbledegook. It wasn’t Wild Strawberries that made me interested in programming, it was the books and magazine listings themselves. Hardcore programming books have always felt a little like spell books to me; even if you didn’t understand, their mysterious contents smelled of power and intelligence. I had the official Atari BASIC manual on hand and it was a true technical reference and what I mean by that is “virtually unreadable”. Nonetheless I went through it repeatedly, getting comfortable with strange terms like filespec and IOCB and learning the difference between a physical line and a logical line. I remember my father proudly pointing out to my grandfather how smart I was because at that very moment I was reading about the USR function, a command to call machine language subroutines from BASIC. I protested that despite my study I did not understand USR at all but he said I was trying to – and that was the important thing. In truth, I probably learnt more from the other chunky Atari BASIC book we had.
If program manuals were spell books then code was the language of magic. I was so fascinated by code that I drew my own game magazines full of fake listings for fictitious machines. Hours were spent studying real code of different computers, identifying commonalities, differences and eccentric features such as smuggling machine code into the REM statements of a ZX81 BASIC program. POKEs and PEEKs were even more intriguing; by addressing the right memory location, you could make anything happen. On the Atari, I could POKE 710 to change the colour of the text window or POKE 756 to use a custom character set. I could PEEK at 53279 to check if the START, SELECT or OPTION keys were depressed. Why were these particular numbers so special? I didn’t know because it was magic.
Mine is not a unique story. Schoolchildren of all ages across the United Kingdom were going through a similar process, levelling up from game player to game maker after getting access to a home computer. I started making my own little games which were more like Twine, such as Crusader which was the closest I could get to the epic arcade game Defender (Williams Electronics, 1980). I didn’t have any books on graphics or animation so had to figure out how to make something move across the screen myself. There was no internet and if you didn’t have a book you were on your own. What I was doing was discovering how to code through sheer force of will. I figured out I could keep printing a character at a different position and erase the previous one to look like movement. Every tiny victory was another inch up the mountain of code excellence.
I employed my new-found knowledge of animation in our first proper game, something called Spiral Chase in 1983 (well, Spirel Chase). My father directed the design and this would be the template going forward: son casting spells, Dad proposing ideas and critique. He would criticise when a game just didn’t feel right and I would be hurt because I was a child, still lacking an appreciation the importance of craft, of polish. These were tough lessons but vital ones. A game had to be fair not a braggart’s unplayable showcase of coding skills. It had to feel right. It had to look right.
Where I really cut my teeth was on games conversions. I would take game listings from other computers – the Sinclair ZX81 or the Oric-1 – and rewrite them line by line in Atari BASIC. Blitz, where you bomb a city so you can land, was one such conversion and was published in Home Computing Weekly #51. We earned £15 for our efforts (this is £40 today).
I was in comprehensive school by this time and the headmaster was so impressed with this achievement he wanted to see the hands that had typed in the code. I thought he was joking because the hands hadn’t done any of the actual, er, thinking. He wasn’t. For his appreciation, I laid my hands out on his desk.
We later published another listing in Home Computing Weekly #83 for £35, named Runaround after an Asimov short story. This was a game built from scratch, based on a game my father saw while browsing other computers in a shop. A year later we wanted to republish both games in an up and coming UK Atari fanzine called Page 6, but the publishers of HCW declined. When we sold them the programs, we also sold them the copyright and world publication rights which they were loathe to return.
I began to acquire heroes like Tom Hudson and Brian Moriarty from seminal Atari magazine A.N.A.L.O.G. and also UK local Marc Freebury who wrote both games and technical articles in Home Computing Weekly, then later took over the helm at a tape-based magazine called Atari Computing.
We tried to get our Wumpus game called Escape published in A.N.A.L.O.G but Charles Bachand didn’t like it because it was totally random; every time you entered a room, the exits were different. We hadn’t intended to make a game that could be mapped and thought the randomness was just fun. I’m not here to justify the design choice, though.
In time, I asked for a copy of De Re Atari as a birthday present, which was the Necronomicon of Atari programming tomes. Chris Crawford wrote many of the chapters and it explained how the hardware worked and how you could use it. We ordered the book at our local computer store which probably wasn’t a good idea as it treated Atari computer owners as eccentrics who didn’t have a real computer. Atari had a definite presence in the UK but the computers that came to represent the British videogame childhood were the ZX Spectrum and Commodore 64.
It didn’t arrive for my birthday and the order was eventually cancelled. One day, after coming home from school, my father took me aside to explain he’d seen a weird error number in BASIC – one that I didn’t recognise – and told me to go look it up. Inside the folder where the Atari BASIC manual was supposed to be was a mint copy of De Re Atari. I don’t know where my parents got it from in the end.
Despite having the hots for the Atari Necronomicon, this book was way above my intellectual pay grade, full of dense technical language that was tough to understand. One of the appendices is a wonderful treatise by Chris Crawford on “Human Engineering” which was full of HCI recommendations years before such thinking became commonplace: “Some programs have nasty messages that bark at the errant user, warning against making certain entries. These are analogous to scowling monitors in the school halls, and are useful only for making an adult feel like a child. The ideal program is like a tunnel bored through solid rock. There is but one path, the path leading to success. The user has no options but to succeed.”
In time, we got a disk drive and no longer had to endure the disgrace and danger of storing programs on tape. I also took on the challenge of machine language, becoming astonished at how much code you needed to accomplish, like, anything. I worked on small routines in machine language and made edits to games directly on disk to give them more lives or, even better, infinite lives.
My proudest hack was for Bill Williams’ Necromancer (Synapse Software, 1982). Normally you would use trial-and-error to look for a bit of code which set the number of lives or decremented those lives but, in Necromancer you had a “strength” number. To finish the first scene you had to lose all of your strength, but losing all your strength on the other two scenes would end the game. Disabling the “reduce strength” routine outright would prevent the player from progressing onto the second scene, so this was not an option. Bear in mind that adding code to a program saved to disk was difficult so I sought to edit what was already there. I hacked it so that holding the trigger on a second joystick enabled the strength reduction routine, which you would hold down on the first scene (maybe with your foot) and release for the remainder of the game. Every tiny victory was another inch up the mountain of code excellence.
In 1991, I headed off to university still devoted to the Atari. Although the Atari computer world was now shrinking, the scene retained many hardcore enthusiasts and we didn’t feel any urgency to move on. We’d spent a decade getting to know our machine; we weren’t about to chuck all the knowledge out the window because of “progress”. Pah.
But I was missing something. All of the games and articles published under my name were lies. My father, happy for me to take full credit, had always been part of those efforts. He’d directed development, honed the writing and put the packages together for submission. What was missing was self-confidence. I wanted to prove that I could create something alone, something I could say was truly mine.
A rite of passage was missing.
Bonus
I decided to post a video showing a bunch of my early game works – the ugly and the not so ugly, the complete and the incomplete. Don’t feel bad if you don’t watch the whole thing, just skip through. All of the titles mentioned in this article appear and quite a few more. There is too much ambition (for example, Dungeon Construction Set) and I am very bad at finishing projects outside of my father’s direction (Blitz, Runaround, Escape).
Download my FREE eBook on the collapse of indie game prices an accessible and comprehensive explanation of what has happened to the market.
Sign up for the monthly Electron Dance Newsletter and follow on Twitter!
Ah, lovely. I learned a very small amount of QBASIC on my Dad’s PC, but was never focused enough to really take it beyond a few screens of text adventure with a crude inventory. 🙂
Your dad sounds great!
Great piece. Feels like something you’ve been writing mentally for years. I mean… you keep receipts of 30 year old purchases, and you have screenshots which I have no clue as to how they were taken. Your books and papers and letters look mint, like they were frozen in time. Like you were saving them for some important moment. My guess/impression is that this piece (or the whole trilogy) is not that moment yet, but an announcement of something great that is to come.
/me curious
/me shamelessly pressuring for you-know-what
/me’s crystal ball is actually better than it seems
I’d say something, but I’m pretty sure I’m not born yet. Eagerly waiting for the next one.
You can see exactly where our paths split. You saw code and became fascinated. I saw code and became bored instantly.
Brilliant piece and it was great to read.
I still wish I’d learned to program my Spectrum in machine code. That could have been life-changing, I think. Instead, while I had some appreciation of how it worked I did all my actual programming in BASIC. My proudest hack was getting into the latter sections of Agent X 2 (which loaded in several parts, each requiring a password from completing the previous one) by telling it to start running from a different address – by trial and error I managed to get it to skip the password routine and thought myself very clever.
@Shaun: The story missing here is when I decided to make a text adventure and started with the room descriptions. I had to stop because BASIC told me it was out of memory. I don’t think I’ve got a copy of this anywhere (although I do recall the title was “AMCS” and what the story was vaguely about). My dad lurks here from time to time, so I’m sure he’ll see your comment =)
@Nicolau: I’ve written a chunk of this previously, years before Electron Dance was a thing. I always planned to one day rewrite and expand for Electron Dance but didn’t want to be self-indulgent about it. There had to be a point. I also had this dream that I would conclude the story with “And why am I telling you about my game dev skills now? Because I am releasing a game.” Except that hasn’t really come to pass. Or has it? I’m participating in Richard’s “Fear of Twine” so something will emerge from that.
I kept a lot of the receipts and documentation (you will see more) because all of this history is really important to me. I spent a couple of hours going through all of my stuff and took pictures for the article. The screenshots were taken using an emulator. Most of my code and games survives today as floppy disk images on my PC.
@David: Thanks! I like to think part 2 is … a bit crazy. But we’ll see if anyone else thinks it is insane.
@badgercommander: Ha, there we go. And did I end up in the games industry? No, sir.
@Phlebas: Ah, sounds great. Hacking programs like this was tricky and rewarding. I never did anything like hack protection – that was beyond me – but messing around with game structure and the like was my bread and butter.
Well, Joel, I guess you were the original Zinester.
I’m about ten years younger, but I had a similar bedroom coding experience–my uncle was very much a hacker type (and also a musician, hm) and at some point when I was about 6 or 7–late 80s–he got a new computer and gave his old Apple IIE to me. The thing had two boxes of all this arcane pirated software–it wasn’t until I became an adult that I understood what messages like “Cracked by The Stack” meant, and it’s kind of hilarious to think about that–but yeah, I loved making my own programs and stuff, and I remember getting books out from the library and slowly typing the code in.
I actually had a funny experience the other week–our internet was out and I was playing around in Twine, and I wanted to grab some Javascript and obviously couldn’t copy/paste, so I ended up looking it up on my phone and retyping it–and, you know, I’m a professional typist whose highest WPM was measured at about 135 WPM, and I still made a billion typos in the code–I guess that’s something inherent to retyping 🙂 I remember when there was, like, a hundred-line code that had one error in it and how horrible that was because a hundred lines is super long! Thinking back, several of these books must have been imports from England that my library somehow got their hands on–I definitely remember references to tape decks and unnecessary Us in “colour display” and things like that–and so not only did I find some of the slang bizarre, but the programs didn’t always work 100%–different computers had slightly different implementations of BASIC–which instead of just giving me a moment to be amused at an odd spelling or perplexed by a Captain Pugwash reference would cause the program to not work.
I remember very particularly one book that I think I might have gotten at a dollar store when I was maybe even as old as nine or ten, but it was one of the more interesting ones–most of the books that I had read had were from one series that my library stocked, each focusing on a different theme (one was graphics, one was games that had a version of Wumpus as the final program, things like that) but starting simple and gradually going more complicated. This book dealt with one large program–a little text adventured centering around a scuba diver trying to find a treasure inside a shipwreck. The book didn’t particularly teach me any new commands or anything like that, but what it did focus on was structuring a large program. It started off with the basic design of the game–let’s figure out the basic flow of what we want the player to do, let’s draw a map, let’s add in a couple puzzles, let’s change things that don’t work–and then it broke the entire program down into chunks and did a detailed runthrough of what each part did and how they interacted. And THAT was a pretty important lesson in life as well as computers!
But yeah–this is kind of exactly the reason I want to do Fear of Twine, because working in it really reminds me of those days of playing around in BASIC and discovering what you can do–everyone talks about how simple and accessible the language is, but you can really do some interesting things if you poke around with it and if you think about it in a more object-oriented kind of way. (And it is an open invitation to anyone on this thread or elsewhere if you wanna make a Twine for it, just drop me a note cause I want a headcount.)
It’s cool that you had the opportunity to make a couple bucks off this thing when you were a kid, and it’s interesting to put some stuff you’ve mentioned about your dad these days in this context.
@marchand: Since you’re in the room, Urquel is one of the best Twines I’ve ever played, I thought it was absolutely wonderful.
@Richard: I don’t recognise the scuba diver example but the book you describe sounds a lot like some of the Usborne BASIC books I grew up with – I still have a few at home! As you say, regardless of the language the guide to the program structure is an invaluable resource.
@Richard: Aw, that makes my heart warm! I was initially afraid I wouldn’t fit the “alternative voices” description you vaguely mention on the exhibition’s announcement (mostly because I made one of the first Twines I even remember) but now I’m definitely submitting something!
@phlebas Yes, that was the name! I had totally forgotten it! So they WERE from the UK–I’m very confused how I managed to get them: I specifically got them from my school library (thanks, Mrs. Grider, I hope everything is peaceful and organized in Heaven!), and so I have no idea why a New Jersey Catholic school ended up with them. Come to think of it my town library had a UK book or two–was it possible there was just more being published “over there” than “over here”? My understanding is that stories like Joel’s weren’t completely uncommon, given the relative cheapness of things like the Spectrum, and coupled with less of an emphasis of publishers in the country led to more of a hobbyist, bedroom coder scene, or a more deeply-ingrained one, and so was there more demand? (This is all my interpretation of the history based on stuff I’ve read, so if one of you fogies who was actually there wants to correct this impudent whippersnapper, please!)
@Marchand Oh no, I didn’t intend to give that impression but I can definitely see that! I kind of used it to make it more inclusive–like I’ve asked some friends who’d never even heard of Twine or never even considered making one and was hoping to attract maybe some writers or maybe even full-on visual artists to try to make one; maybe I should amend the description to pitch a little more to “a mix of alternative and accomplished voices” or something like that–I’ll think about some better language. I know I’ve got Amanda Lange and Jonas Kyratzes working on Twines for it, and they’ve of course both made some before. Lange in particular said she hadn’t quite found her voice with the tool yet and was looking forward to an opportunity to experiment. Meanwhile Gnome Dimopoulos is going slowly insane with this political sim that I’m kind of terrified of, and then we’ve got Joel’s piece which I’m beginning to have speculations about, every one of which is awesome.
Also I know what Eric Brasure is working on and I’m very happy about it.
As for Urquel, one of the ways so many people critique Twine is that it’s inferior to Parser; I loved yours because it’s VERY MUCH a work that could not be implemented in parser–the link text illustrates the schism between the protagonist, player, and player avatar in a way that would be either too convoluted or impossible to do in a parser format. And of course the writing is excellent.
@Joel Don’t worry, I’m leaving for work now, your comments thread is safe for the next 7 hours at least.
Now added a video to the article demonstrating just how fantastic my early game work was. All my friends will be so impressed.
I might’ve had a similar experience, except for two things:
1) My first system was the Sega Genesis, but all the coding books I could find stopped just barely after text adventures. I wasn’t going to clone Sonic anytime soon, and I knew it.
2) I got grounded a lot! Even when I got specialized game making software down the line, the huge breaks in being able to use it drained my enthusiasm.
I suppose I feel better knowing that someone with your background fell out of it, too!
I always feel a little cheated out of the real programmer experience, having been born so much later at a time when computers were much more mature.
I remember playing Doom sitting on my dads lap, learning how to type “xpilot” into the terminal of the DEC workstation at the university where he taught, and then trying to convince the college students I was playing with that I was only nine years old.
I first learned to program in RoboWar (with the help of my dad), a mac OS robot AI programming game with a FOURTH like language, when I was about 10. There were all these existing robots with source code available, and you could tweak them and see their behavior change. My dad printed out the manual with all the built in functions and I spent months and months in the basement reading it and working on robots.
I wrote my first game on a TI-83 calculator, which is probably not very different from an ATARI… It had a BASIC interpreter which was really very slow, but fast enough to write simple text based action games. Everyone had these calculators and it was pretty easy to share programs with other people, but by then the internet existed and my BASIC games were not very exciting in the eyes of my classmates compared to the best assembly games from the web…
Apologies. I’ve read all the comments here, but just been too busy to respond what with making a quick video last night and putting together tomorrow’s edition of Marginalia today. I shall return!
@Richard – The original Zinester? I’m coming to that.
I don’t know if I can lament the loss of this more disconnected, typing-based culture and I’ve written about whether anything was lost from this era. I’ve also previously admitted I was one of those who disliked the barrier for entry into game dev being lowered so far that it could include any one; this was the result of having spent over a decade becoming a machine expert. No one wants to feel their own skills are being devalued.
I have great memories and I wouldn’t trade my personal experience for another. But I don’t know if I feel the need to sic this culture on the modern audience. I’m not impressed by developers “cliimbing that mountain” to make their own Atari 2600 or C64 games in a modern setting. It doesn’t interest me, now. That culture and context is dead. (You could argue that a hybrid retro/futuristic culture, old machine/internet backbone is a new context but GOD you will some endurance to persuade me.)
I’ve written Learning Curve for three reasons. One of them is a historical note. I think the slow grind of working alone on an island towards some coding goal is a special thing and, unless you’re travelling off the internet for good, this will never happen again. Life is now too fast to “waste time” in this way, especially when you can pick up Unity or Flixel or GameMaker and throw stuff on the screen in minutes.
My story is definitely not uncommon. Practically everyone I knew had a computer and, as I said, I lived in a town that was suffering economic decline with its core industry being taken apart by government. I thought things were also pretty big in the US, though. The biggest Atari magazines (ANALOG and Antic) were published in the US and so much software emerged from there. Maybe it was a different kind of home computer revolution? My BASIC book, my memory map, my flight simulator adventures book and my machine language book all came from the US.
You may also be interested to note that you’ve demonstrated that using the term “alternative voices” is problematic. The language of inclusivity duals too easily as clique-making exclusivity. Whenever I read about “alternative” events, it is often underpinned with a certain meaning or expectation (thinking somewhat of the changes in the IF community). It may not be explicit or even acknowledged by those who created the alternative venue, but it’s there. I might be too cynical here but, I guess talking to Richard Goodness, you’re likely to agree.
What I find amusing is that even you fell into this trap.
By the way, does anyone make Hunt the Wumpus games any more?
@BeamSplashX – Amusing that getting “grounded a lot” destroyed your potential gamemaking career. Considering what work in the game industry is like, it was probably a lucky escape.
@Arthur – Hello! As I said above, I don’t know if you’re really missing out so much. There is another problem that if you were grew up between the 80s and late 00s then you might have fallen down a hole in videogame evolution. I’ll be clearer about that in the final part.
I’m excited for your game on the TI-83 calculator. Not that I want to play it, but I can imagine your personal pride when completing it. I just want to say “well done”, but it’s probably a few years too late.
Sorry these responses were so late. I knew I’d end up writing reams and reams…