The Technology Behind ID's Games
orac2 writes: "The current issue of IEEE Spectrum has an article on the groundbreaking technology behind iD Software's games, from the days of Commander Keen through to Return to Castle Wolfenstein. Graphics technologies covered include the original 2-D buffer trick that made side-scrolling games on the PC feasible, as well as the more modern Raycasting and Binary Space Partition Tree techniques. Carmack is quoted extensively."
"First, they decided to see if they could recreate on a PC the gaming industry's biggest hit at the time, Super Mario Brothers 3. This two-dimensional game ran on the Super Nintendo Entertainment System, which drove a regular television screen."
If they can't even get that right, how am I to believe what they say about frame buffering, Hmmmmmmmmmm?????
I'm going to go get some pie instead.
C code is C code. No new languages, techniques, or processes will ever replace an experienced architect. Crap passes through an IDE every bit as well as the good stuff.
I have a volunteer who works with me. The kid is brilliant, and has programming mojo pouring out of his eyebrows. But there are so many debugging techniques, algorythems, and habits that he doesn't have. (Yet.)
I'm not saying older in neccissarily better. Experience is the key. 20 years of experience is 20 years of experience whether you start at 7 or 27. In my case it's 7.
"Learning is not compulsory... neither is survival."
--Dr.W.Edwards Deming
Age has nothing to do with it, it's all about experience and continuing to learn. Older programmers are better as long as they continue to learn and maintain curiosity about "new stuff". Experience + current knowledge > current knowledge. The myth of older programmers not being as good is really that many older programmers stop learning. For a while they are able to outperform younger programmers due to experience but eventually their laziness catches up and they being to underperform.
Good article, but the Commander Keen scrolling trick was old news by then. Lots of Apple II, Atari ST, and Amiga scrolling games did the same thing. Impressive? At the time, yes. But let's not get too carried away with giving Carmack credit for everything.
The article doesn't say that The Carmack invented smooth scrolling full stop. It said that he figured out how to do it in EGA mode on the PC. The market for EGA cards was much larger than any of those closed (but optimized for cool graphics and sound unlike the PC) platforms.
Kind of like how someone figured out how to [kind of] play digital sound through the standard PC beeper. Of course the Amiga, etc. could do that with dedicated hardware but that's not the point.
To add another perspective:
The mathematicians I have met (I'm one of them) by-and-large feel that new math ideas are *discovered* instaed of *created*. The distinction is important. Truth and algorithms already exist, we're just trying to *find* them and sort through the crap. Just because no human has previously written down some piece of truth or an algorithm before you do, doesn't mean you invented that truth or algorithm.
We're all standing on the shoulders of reality, trying to decode what we see. John Carmack's comment about struggling with a problem in order to understand it seems very much in line with this view, and very much inline with the academic research process. Academics don't get research done just by sitting around, trying to be creative. We do research by repeatedly struggling with a problem until we figure out which defects in our brain prevented earlier understanding.
-Paul Komarek