You may decide to move this thread to Your Announcements or some other location. Please feel free to do so if you feel it fits better there. Since these tutorials deal with Game Programming I thought this was the best place to put it so that's why its here.
My video tutorial series, “Using Old Source Code”, shows you how to set up your IDE to compile and run the code from old programming books. I have looked for this information many times over the years. Nobody else provided it, to my knowledge, so I am.
For now this series is focused on Andre LaMothe’s, “Tricks of the Windows Game Programming Gurus.” I take you step by step through setting everything up CodeBlocks, Visual Studio Express C++ 2008 and Visual Studio Express C++ 2010. In the end we get the first game, Freakout, up and running, with only one change to two source code files, the removal of a .h. Nothing else is needed.
The operating system I am using is Windows XP SP3. The version of DirectX I am using is DirectX 9, the June 2010 release. While these instructions may have some value for Windows Vista – Windows 8 and Visual Studio Express C++ 2012 I can make no guarantees. However there should be no problem following along using Visual Studio Express C++ 2005. Additionally what I teach here should apply to DirectX setup for any other IDE at least in general, although the user should know their compiler well enough to adapt everything as needed.
Later I will probably work on Michal Dawson’s, “Beginning 3D Game Programming in C++” and then perhaps Hawkins and Astle’s, “OpenGL Game Programming.” After that, once my programming and math skills are sufficient, I will turn to Vaughan Young’s “Programming a Multiplayer FPS in DirectX” and Greg Snook’s, “Real-Time 3D Terrain Engines using C++ and DirectX9.” I have all these old programming books, and I intend to get the code running from all of them.
My purpose here is simple. To teach programmers to become intimately familiar with their compilers so they can use any book, no matter how old, and if the code is even remotely usable, figure out how to get it to compile and run. They should also be able to do this on any computer that can run Windows XP as there are no special hardware requirements like Pixel Shader 2.0 for XNA 3.1.
For those who want to learn to program with a focus on games they should, through this ongoing series, find plenty of books they can now use. It is my hope that one of them will take all they have learned and create a comprehensive course in programming with an emphasis on the fun stuff – games. I would like to see the old teaching paradigm for programming fade away like the horrible nightmare it is.
If memory serves the Game Dev community, more than any other programming site, has always seemed to be against old programming books in general, and Andre LaMothe in specific. I believe it was here I found threads talking about how LaMothe's code was bad, never compiled, didn't work, etc. That's all bull, and I prove it in this video series. LaMothe's code works fine, requiring few if any alterations. I am surprised that the people who made those statements, who are seemingly experienced programmers, could not figure out how to set up their IDE to get this code to run, and futhermore could not teach anyone else how to do it. So I took up the task, not being an experienced programmer at all, and I figured it out. Now I share this information with you, and leave it to more experienced programmers to take it from here.
How To Contribute
If you would like to help fix the problem inherent in using old source code once and for all I think I figured out how to do it. A library of files using the names of depreciated libraries and headers could be created. These files would contain DirectX stuff like DDraw.lib and DDraw.h, as well as GLAux.lib and GLAux.h from OpenGL. However inside these files, instead of using the old commands and relying on old methodologies, the same things are executed with current, up-to-date commands. For example the 2D stuff of DDraw can be done in Direct3D. Users could extract this stuff somewhere, put paths to the lib and include directories into their IDE, link everything, and run any old code calling on these old files, but the old code would be translated into current commands. I don't know how to explain this any better. But I think this would be a very elegant solution allowing anyone to run code from any book in most cases.