Back to the Table of Contents
View entry in Giant List
Bill left the game industry in the mid-1980s, living in semi-retirement in the San Francisco Bay area. In the 1990s he returned, porting "Pinball Construction Set" to the Sega Genesis as "Virtual Pinball." More recently, he has been working for 3DO, creating the 3-D engine used in "Bladeforce."
What was the first game that you wrote?
The first game I wrote was a copy of "Pong," which had just appeared at Kip's in Berkeley. I had bought an Apple II and learned 6502 assembly language. The first version was done in lo-res—40 x 24—and was so fast that you couldn't see the ball. Next I converted it to hi-res using Woz's shape table routines, and it was so slow you could see the ball drawing in a spiral pattern. So I developed my own graphics routines. When I finished my version of "Pong," it was kind of a magical moment for me. It was night, and I turned the lights off in my apartment and watched the trailing of the ball on the phosphors of my eighty dollar black and white TV. I traded this game to Apple Computer Inc. for a Centronics printer.
How long did it take you to become proficient at programming the Apple II?
I learned 6502 assembly and figured out hi-res graphics very fast, in a few weeks. I was very motivated, since I was so excited about computer graphics on my Apple. The "Pong" game was really my learner program, although I remember hacking on Woz's "Breakout" game to make it play faster.
After I had traded my "Pong" game to Apple, I decided to write more games and try to make some money. I was a graduate student in Computer Science at UC Berkeley. A friend introduced me to a computer rep who traveled to all the computer stores, selling 8" floppies for CPM systems. This rep, whose name was Al Remmers, thought he could sell some of my games, and we made a deal to split the gross fifty-fifty. I was shocked when the first month's check was for $7000.
What's the story behind the 3-D graphics system you wrote in 1981?
I wrote a vector graphics library for the Apple II and first used it to make a few games. In those days, I didn't design a game so much as see an arcade game and clone it. I wasn't that interested in playing or designing games. My real love was in writing fast graphics code. It occurred to me that creating tools for others to make games was a way for me to indulge my interest in programming without having to make games.
What Apple II graphics routines were your favorites?
The one I remember was a hack to draw proportional font text really fast. This used special tables and depended on the font having no characters with width greater than 5 pixels, just enough to do a decent "m" or "w." This code was used in "MousePaint," the "MacPaint" clone for the Apple II mouse.
How did you get your 3-D code running at an acceptable rate?
The key routine was the line drawing. I wrote code that broke down the problem into the nearly horizontal, mostly horizontal, mostly vertical, and nearly vertical cases. Then I wrote four handlers that each specialized in one case. Also, I didn't attempt to clip the lines, so they would wrap around. I didn't know how to do clipping in those days.
What inspired you to write a pinball simulation?
I was working at Apple in 1981, and there was a pinball craze going on among the engineers there. Everyone was interested in playing pinball. So I decided to do a pinball game in hi-res. I saw an opportunity to do a game that hadn't been done and at the same time would be interesting to program, since there were graphics and physics problems that would have to be solved.
What was the trickiest part of writing "Raster Blaster"?
The collision detection was kind of a nightmare, because no matter what I tried the ball would sometimes stick to a wall and freeze or slide right through. I made a scan-line table; for each scan line on the screen I entered a list of wall locations, together with the slope of the wall at that point. To collision detect the ball with the game board, I used the ball y-coordinate to index into the table and the x-coordinate to check against all the walls at that y. It's a bit more complicated than this, because the ball can rest against a wall as it rolls—for a nearly horizontal wall—and because there are some physics that need to be modeled—the ball slides and spins, which causes it to hug curved walls.
What led you from "Raster Blaster" to "Pinball Construction Set"?
I was exposed to GUI's at Apple, and I had the pinball simulation from "Raster Blaster." I saw that it would be a small step to do a construction set. This was the kind of program I liked, since there was no game to write. But it was a lot of work, since I had to implement file saving, a mini sound editor and a mini paint program.
How was your company, BudgeCo, started?
I realized I could do what my "publisher" was doing. In other words, put the program in a Ziploc bag with a sheet of instructions and sell them a thousand at a time to a distributor like Softsel, which was big in those days. So my sister and I started BudgeCo. I wrote the programs—"Raster Blaster" and "Pinball Construction Set"—and she ran the business. But it was getting harder to sell software. Before, it had sold itself. By 1983, you needed reps and a whole sales organization. We continued until the industry grew, and we either had to grow or ally with someone bigger. I didn't want to be an entrepreneur, so when EA approached me I was ready to sign.
Were you surprised at having your picture all over the box and being in the "Software Artists?" ad?
No, since by the time EA started, I had already gotten a lot of publicity. I've never been quite sure why. There was beginning to be a lot of interest in computers and computer nerds. Maybe I didn't quite fit the mold, yet I was a good programmer who had done some interesting things, so people were intrigued.
How well did "Pinball Construction Set" do commercially?
I think that over all formats it eventually sold over 300,000 copies.
Back in the mid-eighties, you were talking about a "Construction Set Construction Set." Where did that line of thinking lead?
I tried to design such a program in the years after "Pinball Construction Set." I discovered that it's tremendously difficult to design something that has the power of a programming language and the approachability and ease of use of a "Pinball Construction Set" or "SimCity." I think the construction set construction set is kind of a doomed concept. Construction sets are an exciting category, and I wish there were more of them. It's not easy to design them.
Why did you retire from the game business in the mid-1980s?
I was burned out from trying to constantly out-do myself. This was after spending a lot of time thinking what to do after "Pinball Construction Set."
What did you do during that period?
I filled a lot of notebooks with design ideas. I spent a few summers in Maui windsurfing. I did some programming for Apple that got bundled with the Apple II mouse.
What made you decide to enter the game industry again?
I realized that what I loved to do is build things and that I wasn't happy unless I was excited about my work. So I decided that even if I was only programming video games, I could be happy as long as I was trying to do the best video game.
Have you used "Pinball Construction Set" recently? What do you think of it now?
No, I haven't used it in years. I guess I've had enough of pinball. I'm a terrible pinball player, by the way. I'm proud of "Pinball Construction Set," since it contains a lot of really good programming. It would still be a challenge to program something like it on a modern platform.
What about "Virtual Pinball" for the Genesis? How did it come about?
I wanted to get back into game programming. EA and I thought this might do okay on the Genesis. I liked the challenge of the restrictions (no keyboard, disk, mouse) and the power (fast graphics, 68000 processor) and thought I could do a good job. It turned out great, in my opinion. I made the collision detection and physics more robust and it got me started on my current path, to develop technology for 3-D graphics and modeling.
Do you still work in assembly language or have you switched to C?
I do both. I still do a lot of programming in assembly, because it's necessary to get the highest performance out of a machine. It interests me that compilers still can't approach what a good human coder can do.
Your Apple games were all solo projects, but most games now are created by teams. Do you prefer working alone or with a group?
I like working in a group, since then someone else can do the parts I don't want to do! The downside is if you don't have a great team it can be frustrating.
What current games do you enjoy?
The last game that I was obsessed with was "Sonic the Hedgehog" on the Sega Genesis. The game is easy to learn, but hard to master. I spent a few days trying to complete the last stage of the Marble Zone. There was one part where you had to jump from platform to platform, all of them moving, with steel weights dropping down from the ceiling. If you fell, you would go all the way down into some molten rock, lose all your rings, and have to start all over again. There was a spike that would come out of a wall, just when you thought you'd finally made it. That was my favorite part. When I finally got through that I really had a feeling of accomplishment, even though all I did was learn how to push some buttons in certain complex patterns. Also, the overall look and sound of the game is of very high quality. That motivated me to get to that next level even more, since I wanted to see what it looked like.