FAQ on the video, "OpenGL programming, simple FPS style walking scene (DOS)", at http://www.youtube.com/watch?v=vkUwT9U1GzA : Q) Is the video sped up? Or, is that your real typing speed? A) No, it's not sped up. But the input is pre-choreographed. The computer implements the choreography, as well as designs a part of it. It is a TAS, except I'm not speedrunning; I'm just aiming for 15 minutes and to utilize it in the most entertaining manner. My typing speed is not the focus of that video; it is not even being presented. The focus is in the source code. This is not an impromptu coding session. I designed and tested this program very carefully for days before I began recording the video, in order to avoid consuming video-time in debugging and in other uninteresting activities. Within the video, I just retrace the steps of creating the program in a natural and a structural manner, with mistakes mostly removed. The order of source code entry is optimized for presentation; for human-to-human communication of an algorithm. Q) What is a TAS? A) Short for Tool-Assisted Speedrun. In a more general sense, tool-assistance refers to anything that augments human abilities [in the field of using some technology, such as video games]. Tool-assisted videogame speedruns, such as those published on TASVideos (http://tasvideos.org/), are input recordings that can be fed to the game, and the game reacts to it as if a real human was playing, even though the input may contain events that are too difficult for a real human to perform. They are usually created by slowing the game down to allow the player more time to think and to move fingers, and with the use of savestates in order to retry something a limitless number of times until it succeeds. When the input is replayed back, the game is running normally but it appears as if the human has superhuman abilities of prediction and accuracy. My programming videos employ similar principles for the purpose of source code presentation. Q) Why is all the code in a single module? A) So far I haven't been able to figure out how to present multi-module development in a video in a natural manner that does not force constant awkward context switches, using my present tools. Q) What is that editor? A) Quoting i8wg's post at Reddit, for he's got it all figured out (correctly): For those who wonder (like me): It's his own editor, like he stated in one of his YT comments. I just tested it in DOSBox, and it looks VERY nice. Link: http://bisqwit.iki.fi/src/dos-editor-e-snapshot-2011-11-23.zip - i8wg Q) Does this code really run on MS-DOS, on a Pentium? A) Yes, it does. But not in real time, not by a far shot. For recording the 3D part in this video, I set DOSBox's cycle count absurdly high -- or did the more practical action functionally equivalent to that: Cross-compiled the code for Linux and run it there using libSDL and multiple threads. It was not my intention to market this as a DOS program; I just used DOS to illustrate clearly the fact that it does not use or depend on a 3D card; it is all 100 % software rendering. And, using DOS gives me an excuse to feature a dithering algorithm. Q) How did you generate the textures and the lightmaps? The shading? A) I precalculated the lightmaps using a raytracing algorithm (off-screen). The lightmaps were saved into "lmap*.raw" files, and are loaded by the program. The corresponding lightmap for each wall is referred by the wall's index. The texture is generated at run-time, in the first few lines of main(). Q) Why DOSBox, why not a modern IDE? A) I can be backwards at times. It's just something that happens to work for me. Screen recorders are too slow and my computers are obsolete, all of them. Q) First OpenGL exercise? Are you serious? A) Yes, it is my first OpenGL exercise. I have never before created a program that uses OpenGL (or Direct3D or anything comparable) for any purpose. I have, however, created raytracers and stuff for a long time. You can see one here: http://youtube.com/watch?v=N8elxpSu9pw Q) Religious much? Hebrew text in the beginning? Hebrew text in the end? A) Truth shall make you free. And in no circumstances does it hurt the validity of the code you write. The text is a quote from Isaiah 12:3. It is also the lyrics of a popular Israeli folk dance that I enjoy. I find profound meaning in that particular verse. The pseudo-Phillips testcard is just a pretty decoration that I rendered using PHP, and the Mandelbrot fractal is another topic that fascinates me; I find parallels within the structure of the fractal and the structure of the Bible. The particular spot that I rendered contains something that resembles four Menorahs; seven-branched chandeliers. (I do not try to imply that God hid anything in that fractal; I just chose that spot for a graphical motif reason.) In the end of the video I simply bid the viewer good night in several languages, which are Hebrew, Japanese and Finnish. Q) What is the background music? A) The background music is The Last Duel/The Final Decisive Battle from Lufia II: Rise of the Sinistrals (SNES). However, it is not played through the SPC700 (SNES audio chip), but through OPL3, the FM synthesizer in PCs, using ADLMIDI. You can see my process of converting a SNES song into an FM song in this video: http://youtube.com/watch?v=7IeO7CYFd9E I put the generated MIDI file here: http://bisqwit.iki.fi/music/misc/spc/ed2-lastduel.mid (431 kB) The MIDI player, ADLMIDI, is showcased here: http://youtube.com/watch?v=GyMc2xLrolk Q) Why did you create the video? A) I enjoy reading source code. I wish to return the favor. Also, I like to be good at least in _something_, even if I cannot be the best in anything. I also enjoy teaching, so please do ask stuff. But in a format like this I need to consider things like entertainment and visibility in addition to the teaching value. It is not an exact science. It is hollywood, albeit scientifically accurate hollywood. -Joel Yliluoma 2011-12-27 12:00 UTC Your question not answered? Feel free to send me a message in YouTube or through e-mail (bisqwit@iki.fi). Note that failure to observe the guidelines of asking a question at http://www.catb.org/~esr/faqs/smart-questions.html may result in less than serious answers.