Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 1, 2014
arrowPress Releases
October 1, 2014
PR Newswire
View All





If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 
Beyond Hope of Regeneration: My Life with BASIC
by David Pittman on 04/30/14 12:12:00 am   Expert Blogs   Featured Blogs

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

 

It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

Edsger W. Dijkstra

I don't clearly remember when or how I was introduced to BASIC. If I had to guess, I would put the year at 1990. I lived in Lincoln, Nebraska. I was about six years old. I hadn't yet learned multiplication tables, but I could tell a computer what to do. I was a wizard.

Our family had owned a Commodore PC for a couple of years. My twin brother Kyle and I learned at a young age how to boot it, navigate MS-DOS, and load a game on the 5¼-inch floppy disk drive. We played The Ancient Art of War, Prince of Persia, Impossible Mission II. We immersed ourselves in those worlds, and then imagined new ones. We wanted to make games. We examined the disks' files, hoping to find some secret knowledge, but found only mysterious binary formats.

I had some vague understanding of programming at the time. I knew that there were Computer Wizards who could write in this arcane, unreadable machine language. I opened an executable file in WordPerfect, poked at its leading bytes, and then was disappointed when it no longer ran. I would never become a Computer Wizard this way!

The seminal moment is lost to time, but somehow, somewhere, I learned about BASIC. I vaguely recall my father showing us how to launch GW-BASIC (the version of the language and IDE bundled with early versions of MS-DOS), but it was meaningless to me without an understanding of the language.

We didn't watch a lot of television growing up, but we sometimes watched reruns of a 1980s PBS science program called 3-2-1 Contact. My favorite episodes—or the only ones I remember anymore— were a few that dealt at least superficially with computer programming and computer-generated imagery. I vividly recall an animated CGI sequence of a cyber-ant crawling across a cyber-world. It looked like nothing I had ever seen on our computer's CGA monitor. I wanted to learn how to make images like that.

We spent a lot of time at the library in those days, reading and borrowing children's books. Whether by intent or serendipity, I can't recall, but we found issues of 3-2-1 Contact magazine, a children-oriented companion to the TV show. And in those worn pages, we found BASIC program listings. I remember taking the magazines down to the library's basement, where its photocopier stood, and making copies of the code for whichever game or demo sounded most exciting.

You know that ozone smell of a page fresh off the copier? It's a nostalgic trigger for me. That's what GW-BASIC smells like.

Learning to program by reading undocumented code is not an easy task, especially for a six-year-old, but I gradually learned to modify programs, then to develop my own. I wrote interactive fiction. I built mazes. I drew terrifying magenta box worlds. I was a budding Computer Wizard. I wasn't learning good programming practices, but programming was not the goal in and of itself. I wanted to make games, and programming was the way to do that.

A few years passed. Our family moved to Great Falls, Montana and bought a new computer. I migrated to QBasic. (I was initially reluctant to try it, perceiving the more sophisticated IDE to reflect a language aimed at grown ups for making grown up programs.) I was a little older. I had a more developed understanding of mathematics. My programs became bigger, more complex, more structured. I dabbled in C++ around this time, buying into the popular notion that it was a more "real" programming language, but I would always come back to QBasic. It was comfortable, powerful enough, and not burdened with obtuse compile and link steps. I felt competent in QBasic.

In our teenage years, Kyle and I purchased Visual Basic and ordered the DirectX SDK on CD-ROM (to circumvent a 100+ MB download in the age of 56K modems). I developed my most advanced games to date, but I also found myself feeling less competent and increasingly frustrated by the limits of my programming knowledge. I had been making games—or at least small game demos—for close to 10 years, yet I had never learned such important concepts as containers, recursion, or pointers.

I set aside programming for a while. I dabbled in modeling and animation. I learned to play the guitar and taught myself music theory. I played Thief, System Shock 2, Deus Ex. I wondered if game development as a career was beyond my reach.

Finally, I went to college, studied computer science, and filled in the gaps in my programming education. I wrote programs in C, C++, Java, Lisp, and more. I graduated and moved to Plano, Texas to attend the Guildhall at SMU. I graduated again and moved to San Rafael, California to work in games. Years later, I quit my job and started up Minor Key Games with Kyle.

I never came back to BASIC. There's no reason I would; the world had moved on from BASIC, and I with it. I wield more sophisticated tools and languages now. I am more competent in C++ than I ever was in QBasic. But I still think about BASIC once in a while, with more than just wistful nostalgia.

The confluence of events in my own life that led me to programming is fun to talk about, but it is only half of the picture. BASIC was designed to be accessible to everyone. It was easy to read. It was bundled with MS-DOS. Incredibly, there may have been fewer barriers to entry to learn to program in 1990 than today. Without the Dartmouth wizards who pioneered an approachable language, I would likely not have found programming at such a young age. The whole shape of my career may owe a debt to them.

That's what I think about now when I think about BASIC. I think about my own son, now almost two years old, and how he will learn to interact with computers. I think about other children growing up without the privilege of a programming-inclined parent or teacher, and I wonder about the barriers to entry today. Despite the near ubiquity of computing devices that we own, carry, and wear, we must actively seek out development tools and resources. What if learning to program could be as quick, as easy, as basic as learning to operate a smartphone?


Related Jobs

Red 5 Studios
Red 5 Studios — Laguna Hills, California, United States
[10.01.14]

Web Developer/Web Architect
Halo
Halo — Kirkland, Washington, United States
[10.01.14]

Senior AI Engineer
Telltale Games
Telltale Games — San Rafael, California, United States
[10.01.14]

Tools Engineer (Qt)
Telltale Games
Telltale Games — San Rafael, California, United States
[10.01.14]

Narrative Technology Engineer






Comments


Kale Menges
profile image
The smell of GW-BASIC. Man, that is poetry, David. I've always associated Q-BASIC with sawdust. I started learning it when I was 12, while staying with my grandparents for the summer. Grandpa always did a lot of woodwork and kept a lot of his tools and small projects in the same workspace as the old Compaq I was learning on, circa 1993. He had dared me to learn how to make a game. Unfortunately, that took me another decade and a half...

Alex Nautilus
profile image
The limitations of BASIC made us all more creative and competent.

A W
profile image
GW-BASIC Is the language of basic I learned when I was a kid and much like you I got most of my coding from 3-2-1 Contact. My Tandy 1000 had a MS DOS Floppy and I use to boot GW-BASIC from it. I learned a lot staying up hours on end making code. The best thing I did was making a character have basic skills like Mario. able to jump and understand gravity and where the ground limits were. Able to shoot minuses from two directions. I even did some top down stuff with it. I had developed ambitions ideas later on that I could never fully realize. Like I wanted to do a game that involved a journey into the body to kill germs, and a game that was like a survival horror where you only collected men by saving them, meaning you had only a predetermine set of persons before it was game over. I also wanted to do one where it was like a fantasy realm, and you had to learn to survive by hunting you food and traveling to different areas, kinda like an Organ Trail type game. Alas programing was just no the thing I ended up doing, but I know if it was my life, I would have no problem doing it as I always like solving problems.


none
 
Comment: