Several years ago, on February 2, 2005, I attended a presentation by Edward Keenan during a meeting of the Chicago Chapter of the ACM. The title of the presentation was “Game Development: Real-World Skills Needed to Excel in this Industry”. From the summary:
This presentation will shed light on several key misconceptions about software development in the video game industry. Examples will provide insights on the difficulties of developing software for software programmers.
Trends, tools and work environments for the next generation of game consoles such as the XBox-360 and PS3 will be discussed. A roadmap to transform students as well as seasoned software developers to build these critical skills necessary to enter this exciting field will be presented.
The presentation was very informative for someone wanting to go into video game development. At the end, Mr. Keenan distributed sheets with a list of computer book titles divided in three aspects of programming, as shown below. The list is an excellent library for the novice or practicing programmer. Given the video game bias, the “Language” area is for C++, but the books in the other two areas can be read independent of programming language. Below I’ve also included a scan of the original sheet.
- Design & Architecture
- Process
- Language
At the end of the presentation someone asked Mr. Keenan if he had any more book recommendations and he replied that this list should provide years of reading material (or something to that effect). Despite that, I’d like to add two helpful books to the “Practice” area: The Practice of Programming and The Art of Unix Programming. And although, this last one has UNIX in its title, it has information that is applicable more generally outside the UNIX tradition.
The books on the “Language” area assume the mastery of at least the fundamentals of C++. If this is not the case, I would recommend the following books:
- Accelerated C++: Practical Programming by Example by Koenig and Moo, and either
- C++ Primer by Lippman, Lajoie, and Moo or C++ Primer Plus by Prata

