Ken Silverman's Official Home Page
I live in Rhode Island and my hobby is computer programming.
- Build Engine (1993-1996): Used in Duke Nukem 3D, Shadow Warrior, Blood, etc.. Also visit: Build source code and test game.
- Voxlap Page: (1999-2003): Fast CPU-based voxel engine, featuring dynamic terrain in a world made of little cubes.
- Ken's Labyrinth (1993) (The first Wolf3D clone)
- Projects Page: Other projects, both new and old, big and small.
- Utility Page: Various tools I've written over the years, including PNGOUT and KZIP.
- Kube Page: Cubic panorama viewer.
- QuickBasic Page: QuickBasic programs, ranging from silly games to hardcore test programs.
Do not hesitate to visit the official "advsys.net/ken" forum, hosted by Jonathon Fowler.
Story of my life
I am the younger of 2 brothers. According to my parents, I was born exactly at midnight on the night of Halloween (November 1, 1975). I was raised in Yorktown, NY until 1980 when my dad got a job as a professor at Brown University. So our family of 4 moved to a nice house in East Greenwich, Rhode Island, about a week before I started Kindergarten. My first computer was a TI-99/4A which my parents bought for $50 in December of 1983 during the "after Christmas" sale. Ever since then, I was hooked! (If you're really interested in how I got started, check out this long lost newspaper article from our local newspaper in 1984)
My family got me started in programming, but several years later I was beyond their help. In school, I used to love study halls because I would spend the time thinking about code. When my brother got shipped off to college in 1990, my hobby started to get more serious. I made games such as Kentris, Sibros, and Ken's Labyrinth (my first game on the market). In 1993, just a month before my first semester at college, I signed a contract with Apogee software to create a new 3D engine called the "Build engine".
My programming wasn't supposed to get in the way of college, but that's not the way it happened - I didn't do very well that first semester. When I found out I only passed half my classes, my dad decided to let me take time off to work full time for Apogee. So for 3 years I worked on the Build engine. While I spent more than half my time in RI, I ended up taking a total of 10 trips to Dallas and Seattle to help the game teams work with my code. After several games were released, things quieted down a bit and eventually I decided (with a lot of help from the parents) to return to college while I was still young.
College was fun while it lasted. Now I'm back to recreational programming full time. :)
When I show off demos, people often ask me which "computer courses" I've taken. I have to tell them the truth, which is "None!" Beyond the basics, I figured out almost everything I know about programming on my own. By starting young and being independent, I have the advantages of a better understanding and more experience.
Everyone in my family works in a technical field. My dad is a professor of electrical engineering at Brown and my mom works at GTech programming character recognition for lottery tickets. My brother is the head of his own small company, called Advanced Systems. (That's what "advsys" stands for) In the old days, he was as much of a computer nut as I was. He still is, but we've grown into separate fields of interest. For me, programming is not just an interest or a hobby - it IS my life.
- Computer programming! Was I clear enough about this?
- Optimization: My favorite one: "sub eax, 128" -> "add eax, -128" Think about it. Or not.
- Collecting maps: I can draw the borders of all U.S. states from memory. I used to draw maps for fun in elementary school.
- Solar energy: Bought a 1kW photovoltaic system from Solar Works. See how much power they're producing: SILVMETR.ZIP (105,581 bytes, 03/24/2005) Also check out the panoramic graph on this page.
- Astronomy: I look(ed) forward to waking up early on June 8, 2004. Play with my GLOBE simulator to find out why. Ok, it's the transit of Venus! Using a pair of binoculars and a card to project the image on, I managed to get this lovely photo. Venus is the small notch on the right - probably already on its way out. I realize the camera was at an angle.. I would have gotten it right if I had 3 hands :) Anyway, if you feel like calculating AU with this, I can say the photo was taken at 7:09am EDT (Sorry, I don't have seconds) and at 41.6611°N, 71.4845°W. So there's my lousy contribution to science! :) P.S. good luck!
- Geometric puzzles: Rubik's cube, mazes, you name it - they all make great programming projects.
- TV! You just can't escape it in our family.
- Piano: I can play just about any song I've heard. People say I have a good ear.
- Music: Besides my own, I like to collect TV theme songs and anything by Weird Al Yankovic.
- Sports: volleyball, bicycling, ping pong, softball, juggling, cubing, cubing while bicycling.. :)
Ken's primary computers:
All computers have been sold, discarded, permanently lent, or returned except for: the TI-99/4A, the Pentium 133 (upgraded to 200 MMX), Pentium III 933, Pentium 4 3.6 HT, and the Core i7 950 3.07 which I am currently using. The dates listed are the day I copied the hard drives and transferred email settings. This did not always occur on the day I received the system, due to hardware issues.
- 12/??/1983: TI-99/4A
- ????? 1984: Kaypro II (CP/M 2.2)
- Late? 1985: HP 9836C Series 200 (98611A Opt.655 BASIC System + 98612A Opt.650 Extended BASIC 2.1)
- 11/23/1988: 386DX-20 (Proteus)
- 10/26/1990: 386DX-33 (Touche)
- 07/??/1992: 486DX-50
- 11/04/1993: 486DX2-66
- 08/11/1994: Pentium 90
- 03/??/1995: Pentium 100
- 07/27/1995: Pentium 75 (TI Travelmate 5000 laptop)
- 12/06/1995: Pentium 133
- 05/27/1997: Pentium II 266 (Gateway)
- 01/07/1999: Pentium II 450 (Comtrade)
- 07/12/2000: Pentium III 933 (Dell 4100 series)
- 09/11/2002: Pentium 4 2.8 (Dell 8200 series)
- 01/05/2005: Pentium 4 3.6 HT (Dell 8400 series)
- 09/21/2007: Core 2 Quad 2.66 (Newegg / custom built)
- 11/13/2010: Core i7 950 3.07 (Newegg / custom built)
Courses I took (note: past tense) at Brown University:
Major: Applied Math (ScB)
|Semester 1||Fall 1993||EN3, MA18, |CS15, CH21
|Semester 2||Spring 1997||EN4, MA42, MA52, PH24, PL54
|Semester 3||Fall 1997||EN41, AM33, MU11, |EN51
|Semester 4||Spring 1998||EN52, AM34, AM27, EC11, |MA126
|Semester 5||Fall 1998||AM165, EN157, EN163, GE5
|Semester 6||Spring 1999||AM166, EN158, EN164, AM120, EN196
|Semester 7||Fall 1999||AM117, AM121, EN253, MU40
|Semester 8||Spring 2000||AM194, EN160, GE1, EL4
|Stikeout: no credit / dropped
Other cool STuf...
(03/06/2000) I plugged my name into Yahoo's search engine and I found some really neat stuff! Apparently, somebody spent the time to write a colorful review about my site. Sounds to me like this fan has a serious case of jealousy!
Continuing with my tradition of shameless self-promotion, I found something else which blows everything away: This quote from John Carmack. I am truly honored that he would pick me out of a crowd like that!
(07/11/2000) I found another quote from Carmack.
Web Site Update History:
05/05/2011: Add POLYDRAW to projects page: a shader prototyping environment started by Tigrou here, and heavily updated by myself.
01/28/2010: Big EVALDRAW update: Fast new compiler written by Robert Rodgers; structure support; errors now highlighted.
10/26/2008: FLYDUCT added: a silly game featuring heightmapped rendering on the inside of a cylinder.
03/01/2007: RUBIX updated. It now features menus, a history slider, and a custom 3x3x3 solver written by Ben Jos Walbeehm.
12/27/2006: Added QuickBasic page.. happy holidays!
12/26/2006: Changed email address in contact info.
07/23/2006: Big update to EVALDRAW, including support for sub-functions and many new library functions for graphics & sound.
07/06/2006: Added opening dialog box to PINGBALL, giving command line newbies the opportunity to appreciate all its silly features.
05/18/2006: Released source codes to my voxel modelling tools (SLAB6, POLY2VOX, KBARF). Also: big PNGOUT/KZIP update.
02/27/2006: PNGOUTWin beta released by Ardfry.
12/24/2005: Released GROUDRAW.ZIP (more voxel demos) and POLYTEX.ZIP (Build successor that never made it).
11/??/2005: Founded Ardfry Imaging, LLC with partner David Blake.
11/12/2005: PNGOUT for MacOSX released; hosted at JonoF's site.
10/17/2005: Released Cubes5 source code.
09/14/2005: Released complete Voxlap engine source code.
03/24/2005: Irfanview 3.97 supports saving with a PNGOUT plugin. Get the latest PNGOUT plugin here.
11/05/2004: Voxlap library released.
10/14/2004: Released EVAL library, KWINCHEAT source, 8 old Ken-Build maps, and POLYMOST.BAS
10/07/2004: I asked Jonathon Fowler if he would add a forum to his site about my stuff... and here it is: http://www.jonof.id.au/forum/
08/09/2004: Tom Dobrowolski released MoonEdit (formerly Multi-Editoro), a multi-user text editor. It uses code from EVALDRAW and my Windows layer.
07/30/2004: Big update to EVALDRAW, including nice GUI, new compiler features, and many more example programs.
04/11/2004: Jonathon Fowler ported my PNGOUT utility to Linux.
03/28/2004: Wrote another VESA patch fixing hi-res modes on Nvidia GeForce 4 chipsets. I call it AXVGA
03/17/2004: Released Ken's Labyrinth Developer's Toolkit
03/06/2004: Reorganized Utility page slightly and added KWINCHEAT: AI that plays Minesweeper, Solitaire, and Internet Checkers for you!
02/29/2004: 2 new applications added to projects page: PINGBALL and EVALDRAW.
12/25/2003: SLAB6 update: added key repeating, a save option for Build-compatible KVX files, and 3 new sample KVX's.
12/23/2003: "Polymost" (Build in OpenGL) released! Build Page
09/08/2003: New Voxlap screenshots and Voxlap Cave demo! :)
02/14/2003: Ported KCIRC to windows for better speed, resolution, and compatibility.
10/09/2002: Added KC and KPIC (Win32 text editor and picture viewer) to Utility page. Added an old CAVE demo from 1994 to Voxlap page.
09/21/2002: Ken's Labyrinth page updated with link to LAB-SDL, a brand new port of the game to modern OS's by Jan Lönnberg.
03/15/2002: SLAB6 updated. I added 3D box selection, dragging, flipping, rotation.
01/15/2002: Added some new info & screenshots to my Voxlap page. Added 2 utils: PNGOUT & HEARTEST to my Utility Page
01/10/2002: SLAB6 updated. I added a 2D slice editor, a windows version, 2 new objects, and some other small stuff.
07/01/2001: Released Ken's Labyrinth source code. You won't learn much from it, but you might be able to fix some bugs :)
06/16/2001: It's been a while... so I threw some new screenshots on my VOXLAP page... enjoy! :)
05/06/2001: Put a little sample program on the bottom of my VOXLAP page
04/20/2001: Wrote Winamp plug-in IN_KEN.ZIP that plays all of my music file formats (.SND, .SM, .KSM, .KDM).
12/15/2000: Kube Page updated.
11/20/2000: Made Voxlap Page less hidden and added some items to it. Also, check out the new Kube Page.
10/08/2000: Put up a rare version of Ken's Labyrinth.
09/21/2000: Added 2 programs to Utility Page: KZIP & ZIPMIX. Used these utilites to reduce the sizes of all .ZIP files on my site.
08/30/2000: Added a new link at the bottom of the Build Source Code Page.
08/12/2000: Converted all .GIF's on my site to .PNG's. .PNG is far superior to .GIF for many reasons. Go here if you want to see why.
07/15/2000: Added some more Q&A to both Build & Buildsrc FAQ's. Also added a little util in the description of SLAB6 (in the projects page).
03/19/1999: My web site is born.
(In order of first contact)
- Jonathon Fowler On 09/12/1999, he simply wanted to greet himself. A year later, when I released the Build engine source code, he jumped all over it. It was his destiny to do a port to modern OS's. When 3DR followed suit with the Duke3D code, I worked with him to add bells & whistles. Jonathon also hosts the forums for my site.
- Tom Dobrowolski On 11/11/2000, he just wanted to say 'hi'. A year later, I impressed him with some Voxlap screenshots and we've been in regular contact ever since. Tom and I have collaborated on many projects, most notably the Voxlap Cave Demo. Today, his interests include automatic world/model generation and creative user interfaces.
- Dennis Radon On 06/02/2001, he asked if I liked fan mail. Dennis has been very supportive over the years.
- Jan Lonnberg On 08/29/2002, he wanted my approval for his port of Ken's Labyrinth. He did a great job with it.
- Ben Jos Walbeehm On 11/05/2002, Ben Jos was wondering how KZIP worked. We started out as competitors. More recently, we collaborated on Rubix. He always tells it like it is, and never runs out of things to say.
- David Blake On 04/14/2005, he was already thinking about commercializing my projects. Less than a year later, we released PNGOUTWin. David has a knack for the software business, and I look forward to producing more with him.
- Peter Houska On 11/07/2005, he called himself yet another fan. Look through his projects page, and you'll see that he's a lot more than that. While similar in look, Peter comes up with his own tech.
- Robert Rodgers On 04/04/2006, he introduced himself as my 'humble servant'. Humble is right. Robert has accomplished a lot so far. He reminds me of myself when I was in high school. I have my eye on him ; )
I love to read what fans have to say about my work - whether it be praise or criticism. You can contact me at this address:
* No unsolicited attachments over 50KB
* When giving out my contact info, please use "http://advsys.net/ken" and not my E-mail address.
Alternatively, you can contact me through my official forum called "advsys.net/ken" at http://www.jonof.id.au/forum/. (Thanks to Jonathon Fowler for hosting this for me!) Here, you can talk about anything related to me or my web site. I check it nearly as often as I check my E-mail.
"http://advsys.net/ken" and subdirectories maintained by Ken Silverman.
This text is here to ensure this site stays high on a web searcher's list, (even though it seems to have no effect): Ken Kenneth Silverman Kenneth J. Silverman Build engine Duke 3D Duke Nukem 3D Shadow Warrior Apogee 3drealms 3d realms Blood Redneck Rampage Ken's Labyrinth lab3d kentris klab lab3d $ken.zip Ken S. -Ken S. build engine / network / tools Build editor editart editart.exe wad2map wad2art kgroup kextract wad2map.exe wad2art.exe kgroup.exe kextract.exe transpal transpal.exe convmap build.exe buildhlp buildhlp.txt computer nickname: Awesoken awesoken KenRI KenRII KRIen Ken238 Ken1111975 (13771009)