I took an interest in programming in high-school and ran into Todd (mentioned in the article) in the lobby of an online first-person shooter. The topic of programming came up, and I explained where was at in this whole coding-thing.<p>After a few games, Todd gave me a challenge:
Thoroughly understand multilevel pointers, and then explain it back. In doing that, there would be a cash reward.<p>Hell yeah! So, I studied. Eventually, something clicked and I was able to answer those interview-style questions he threw at me. I ran the whole “money from a video game” thing past my parents, and Todd followed through on his promise. That small gesture fueled an understanding that projected into a career.<p>Interesting article, it's worth a read; there are good people behind it. Thanks again.
I also highly recommend this piece by the same author:
<a href="http://fabiensanglard.net/duke3d/build_engine_internals.php" rel="nofollow">http://fabiensanglard.net/duke3d/build_engine_internals.php</a>
(skipping to page 2 which I think is more interesting)<p>The software renders of yore actually got me thinking about them in a modern context, how they could be extended, and in what ways they could compete with GPU-based algorithms on a per-cycle basis. I think there is still much area to be explored here, given we mostly stopped researching realtime software rendering as GPUs became dominant - I think there is a lot of unexplored area left.<p>Also one piece of software I think is severely underrated is Ken Silverman's Voxlap:
<a href="http://advsys.net/ken/voxlap.htm" rel="nofollow">http://advsys.net/ken/voxlap.htm</a><p>Released in 2002, it was way ahead of its time.
For anyone who finds this interesting, I strongly recommend "Masters of Doom" by David Kushner, which focuses on the history of iD software, John Carmack and John Romero.
Those web page printouts at the bottom of the PDF are incredible! Most of the time the Internet Archive's snapshots are missing images or other assets but these are complete and excellent examples of the web design of the era.
According to his website (bottom of the pdf), Ken Silverman's favourite optimisation is:
sub eax 128, add eax -128<p>Can anyone explain this to an assembly rookie?
> Chief of these was the level editor that he designed along with the engine, which, for
the first time and surprisingly the last time, allowed a level designer to “walk” through the level
in 3D as he was designing it. This WYSIWYG (what-you-see-is-what-you-get) mode allowed
the designers to create levels in a far more natural way then they would be able if they were
merely using lines on a grid.<p>Not was the last. Obvisuly, the guy that wrote this on 2001, not know UnrealEd. The map editor for Unreal engines have this capability. Eventually, even map editors for classic DooM would have it (Check DoomBuilder for example)
If you like this, the following videos are quite interesting:
<a href="https://www.youtube.com/playlist?list=PL8BB189B81A301EEB" rel="nofollow">https://www.youtube.com/playlist?list=PL8BB189B81A301EEB</a><p><a href="https://www.youtube.com/watch?v=cv-byZAauAs" rel="nofollow">https://www.youtube.com/watch?v=cv-byZAauAs</a>