Ken Silverman (11/29/98)
...on the one and only Build engine, made famous by Duke Nukem 3D
Interview by Brad Wernicke - Originally seen at Dukeworld
Ken Silverman, maybe you've heard of him, maybe you've haven't. He made his exit from the gaming industry almost as quickly as he entered it. He's had a hand in many released games, from many different game developers. Although others at 3D Realms, mainly Todd Replogle (Duke Nukem 3D) and Frank Maddin (Shadow Warrior) have had a hand in game specific enhancements, Ken Silverman is the primary architect of the Build engine. Ken perhaps said it best himself, with the following message hidden within Duke Nukem 3D, "BUILD engine&tools; programmed by Ken Silverman of E.G. RI. (c) Copyright 1995 Ken Silverman. Summary BUILD = Ken. !!!!"
Ken took some time out of his schedule, and met us on Undernet IRC's #3drealms channel. We threw a series of questions at Ken, who is now 23, and is a full time student at Brown University and as it turns out, it was Ken's first time ever on IRC.
Ken, how did you get started in the game industry at such a young age?
Ken: Well it all started in 1992, I was working on a game called Ken's Labyrinth as the time which was the first Wolfenstein clone. In the end of 1992, before I released it to shareware myself, I sent a beta version of it to several companies. One of them was Apogee. The others were just companies I found on game boxes. Apogee wasn't interested in marketing my game due to the primitive graphics, although they were impressed with my engine.
Then January 1, 1993, I released Ken's Labyrinth to the internet myself. Actually my brother did it for me - I was only 17 at the time. A week later Epic MegaGames decided they would market the game without too many changes.
How did you become so experienced with computers by that age?
Ken: Well my first computer was a TI-99 4/A that my parents bought for $50 after Christmas in December 1983. My experience is largely due to my family, my mom is a computer programmer, and my dad is an engineering professor (at Brown). I have one brother, Alan, who is three years older than me. He certainly helped me because at the time (1983-84) he was a better programmer than me, and later taught me to use DOS. My family taught me basic and my mom got me started in C in 1988.
My first PC was a 386-20, bought in November, 1988. It was a Bar Mitzvah gift from my parents. I spent several years of hacking away and making demos to try to attract attention from my brother. I was EXTREMELY unpopular in school, and I guess the computer was my own world where I could forget about school.
How did the Build engine come about in the beginning?
Ken: After Ken's Labyrinth, I started working on two new engines when I was 17. One was like Comanche, the other was like Doom, although both sucked at the time. It was originally thought that Epic would use my next engine, although I decided that their marketing wasn't much better than what I could do myself. Sometime in the summer of 1993, I sent some beta copies of my newer engine titled "Build" to a bunch of companies.
In August of 1993, Apogee offered me a contract including a salary. It was a tough decision to leave Epic, especially since Apogee and Epic were big shareware rivals at the time. But I signed on with Apogee because they had a track record of more professional games.
Why is the engine called Build anyway?
Ken: There was never an official name for it. At first, I hated the name "Build", I thought 1 syllable was too short. But eventually it grew on me. I don't recall if had a previous name, but I do remember that I was calling it Build in 1993.
Was it difficult juggling work and school at the same time?
Ken: I started my freshman year at Brown in September, 1993. At first I was going to major in Engineering, but now it's Applied Math. Originally, my parents and I thought I could handle programming and schoolwork together. But that wasn't the case as I let my classes slide. I failed 2 out the 4 courses. One of the courses I failed was CS15 - Introduction to Computer Science. It's ancient history now (but I'm low on college credits!)
Progress was slow that semester, although I did get a lot of phone calls from the programmers of the other teams. When I got my first report card (in January of 1994), I decided to take a leave of absence. Actually it was my dad who helped me make that decision, and Apogee wasn't too unhappy to hear the news either.
You did most of your work on Build back home, how much did you work face-to-face with the developers of the other Build engine games?
Ken: Well, I live in Rhode Island and The first time I actually flew out to Texas was with my parents in February of 1994, when I was 18 years old. It was a short 3-day weekend trip. My parents went because I wasn't old enough to rent a car at the time. And this was my first time flying alone, etc.
I've been to Texas a total of ten times in my life from 1994 to 1996. The trips averaged around one month, although I spent the most time in Texas in 1995. Also, on 3 of the trips I also went to Seattle to meet with the Blood team and the Powerslave team (before they broke off from Apogee).
I worked mostly with Todd Replogle (Duke Nukem 3D), Frank Maddin (Shadow Warrior), and Nick Newhard (Blood) I happen to have a unique coding style - the code is not documented well, and it wouldn't be considered "elegant" by any means. The reason I bring this up is because my coding style matched Todd's the most, while Nick was an "elegant" coder and used C++, and Frank was kind of a mix of both.
What languages is Build written in?
Ken: Build was written in Watcom C and assembly (both inline and in separate modules). I would say my real strength is in assembly optimization. I never program in assembly to begin with, though. I usually program in C, and then eventually convert some important routines to assembly. I don't do C++, and probably won't anytime soon.
The C code for the Build engine has about 8000 lines (Note my code is very compressed; no comments, multiple statements per line, etc.). The Build editor code is another 8000 lines. There are also 5000 lines of assembly in Build. It took about a minute or 2 with full optimizations to compile on my P133 at the time.
[ Next Page ]
[ Page 1 ][ Page 2 ]