GP-TRICKS Logo

Scalar's GP-TRICKS Homepage

Site MapBook Recommendations


Book Recommendations


In my opinion, reading and studying is almost as important for a programmer as coding itself. The most brilliant programmers out there may be able to write any program they desire without having to look into an algorithms book or shifting their eyes away from the screen to see how others are doing the same task. It will, however, certainly take them longer.

A lot of work has already been done for us. Intellectual giants like Fuchs, Kedem and Naylor, for example, did a lot of research on BSP trees, and still do. Sutherland and Hodgman published fundamental papers on clipping, among other things. Many of the algorithms we are using now were developed back 20 years ago, and there is no need to invent them again. We are fortunate that this has been done for us.

We are standing on the shoulders of those giants. Let's lend our shoulders to others!

Back on topic, the books I have read and recommend are ordered into these categories. Use the list below to jump directly to the discussion of a category:


  • Assembly & Optimization
    • Zen of Code Optimization
      This certainly is one of the most famous works regarding optimization. Michael covers seems to cover every aspect for every processor generation available at the time of print. Expect in-depth coverage of the 386, 486 and Pentium processors. Still, the book is fun to read because of Michael's incomparable writing style.
      Abrash, Michael. Coriolis Group Books, 1994. ISBN 1-883577-03-9. $39.95

    • Inner Loops
      This book could be considered an extension to the Zen, although one would certainly do Rick Booth wrong. Inner Loops is an excellent book, also covering MMX, and it is much more hands-on than the Zen: It takes a look at how C statements translate to assembler, delivers fast matrix multiplications, parts of a JPEG compression algorithm, notes on linked lists and trees, and much, more. If you feel most comfortable as close to the CPU as possible, this is the right book for you.
      Booth, Rick. Addison-Wesley, 1997 ISBN 0-201-47960-5. $39.95

    • PC Intern (German)
      PC Intern is a German classic with respect to system programming. Michael Tischer looks at every part of a PC, beginning with BIOS, timer and interrupt chips, up to graphic and sound card programming. It also has an excellent treatise on the internals of DOS. I own a copy of the 4th edition. In newer ones, Windows 95 is also covered; I have no idea how well, though. The book comes with a CD-ROM that has the whole book on it, but in the 4th edition, the appendices were not printed anymore. I wish I had not sold my 3rd edition...
      Tischer, Michael. Data Becker, 1994. ISBN 3-8158-1094-9. DM 99.00

    • Das Assemblerbuch (German)
      This is the book I have learned assembler with, and I think the book did a pretty good job. After relating information about branches, comparisons, the FPU and other relevant topics, the book delves into the relationship between C and assembly, and also Pascal and assembly. The best part of the book, though, is definitely the reference. The timing information, which is offered up to the Pentium, seems to be pretty accurate, too. I can't optimize a function without having this book rest on my lap.
      Podschun, Trutz Eyke. Addison-Wesley, 1995. ISBN 3-89319-853-9. DM 89.90

    • PC-Hardwarebuch (German)
      For a long time, I didn't look into this book a lot. But then, one day, it saved my life (or the day; depends on how you look at it). This book has the best coverage of the 386 Protected Mode I have seen so far. Be warned, though, this book really is close to the machine! In fact, it also has layout information for all the CPUs available at print.
      Messmer, Hans-Peter. Addison-Wesley, 1995. ISBN 3-89319-710-9. DM 99.90

    Back to Top of Page

  • Graphics Programming
    • Computer Graphics: Principles and Practice
      "Foley and van Dam" has the reputation of being THE ONE BOOK that all 3D graphics programmers have to own. Well, it sure is justified. Topics covered are optimizations of simple primitives, clipping, hidden surface removal, lighting and shading, as well as advanced ones like curves and curved surfaces. It is a college textbook, though, and not always easy to understand.
      Foley, James D., et al. Addision-Wesley, 1996. ISBN 0-201-84840-6. (expensive)

    • Zen of Graphics Programming
      This book again is a delight to read: Every chapter, and there are many of them, starts out with a little story, which does not distract but inspire. Micheal succeeds in relating his expert knowledge of the VGA card, as well as his insights into 3D engines like the one in id's Quake.
      The chapters are from Michael's columns in PC Techniques and Dr. Dobbs Sourcebook, and, as far as I know, were not edited. If you don't own Zen of Code Optimization or this book, then go for the Graphics Programming Black Book. It contains both, and also the final articles of Michael's Sourcebook column.
      Abrash, Michael. Coriolis Group Books, 1996. ISBN 1-883577-89-6. $44.99

    • 3D Game Programming with C++
      John must be a genius when it comes to making the hard things easy. Everything necessary to write a 3D engine is discussed in this book, from transformations and rasterization to morphing and data structures. The book offers easy-to-grasp knowledge concerning fogging, gouraud shading, affine and perspective texture mapping. Certainly worth reading.
      De Goes, John. Coriolis Group Books, 1996. ISBN 1-883577-70-5. $39.99

    • VGA- und Super-VGA-Programmierung (German)
      Long-time computer veteran Matthias Uphoff presents his research on VGA and SVGA cards. Hardware registers of the classic VGA card are explained extensively, as well as the model specific ones of some SVGA cards like Tseng's ET4000. Matthias also covers VBE up to version 1.2. Unfortunately, Matthias does not work with computers anymore.
      Uphoff, Matthias. Addison-Wesley, 1995. ISBN 3-89319-725-7. DM 79.90

    Back to Top of Page

  • Windows Game Programming
    • Spells of Fury
      Once you have read this book, you will certainly be able to cast some spells. Although not even mentioning Direct3D, it's part on the rest of the DirectX API are excellent. The author constantly has the beginning Windows game programmer in mind, and offers a helping hand throughout the journey. You have to have the DirectX SDK in order to work with the samples, though.
      Norton, Michael J. Waite Group Press, 1996. ISBN 1-57169-067-0. $49.99

    • Inside DirectX
      Wow. This is the way the DirectX manuals should be. Bargen and Donelly, both members of the DirectX development team, share their expert knowledge about every aspect of DirectX - almost every aspect: Again, Direct3D is not covered. If you have taken the first few hurdles in writing DirectX games, this is the book that takes you the rest of the way.
      Bargen, Bradley and Peter Donelly. Microsoft Press, 1998. ISBN 1-57231-696-9. $44.99

    • I am still looking for a good book on Direct3D Immediate Mode.
    Back to Top of Page

  • Windows Programming
    • Programming Windows 95
      This book, known as "the Petzold", is the definite classic on Windows 95 programming. It teaches how to use the Win32 API directly without using MFC. Which is exactly what most game programmers want.
      Petzold, Charles and Paul Yao. Microsoft Press, 1996. ISBN 1-55615-676-6. $49.95

    • Advanced Windows
      Jeffrey Richter covers a lot of advanced Windows topics like memory mapped files, threads, and UNICODE programs.
      Richter, Jeffrey. Microsoft Press, 1996. ISBN 1-57231-548-2. $49.99

    Back to Top of Page

  • Artificial Intelligence
    • Artificial Intelligence - A Modern Approach
      As a college textbook, this book offers an inside view into topics like searches (A*, for example), game playing strategies, planning and reasoning. Machine learning and natural language processing are also touched. And if it were not enough, you can actually understand what the authors talk about. The chapter on best-first searches alone might already justify the book's price, which will not be a low one due to the book's nature.
      Russel, Stuart and Peter Norvig. Prentice Hall, 1995. ISBN 0-13-360124-2. (expensive)

    Back to Top of Page

  • Programing Techniques
    • Code Complete
      Maguire, Steve. Microsoft Press, 1993. ISBN 1-55615-551-4. $24.95
    • Writing Solid Code
      McConnell, Steve. Microsoft Press, 1993. ISBN 1-55615-484-4. $35.00

    • These two books teach you not how to program something, but how to program at all. It is unbelievable how strongly these books can change the way you look at your code. I never realized how risky I programmed, how many error-prone techniques I used and how many things I neglected. Certainly take a look at these books - but only if you can take a few slaps in the face.

    • Design Patterns
      The experience I had with this book can most closely be described as a revelation. Similar to the two books mentioned above, Design Patterns does not teach you to program something in particular, it much more teaches you a new way to program. It is not about code, it's about design.
      As a quite seasoned C++ programmer, I was already using object-oriented concepts, templates, the STL, run-time type identification, and all this "more advanced" stuff. But still, whenever I was working on a larger project, I wondered how exactly to split the program into classes, how large those objects should be, how they should interact, or in general, what patterns I should create to make the source easier to extend and maintain, more efficient, and less error-prone.
      This is exactly what this book teaches you. It describes 23 object-oriented patterns that have been used by expert software engineers again and again over the last years. The book is split into three major parts, and each is worth the money spent on the entire book: The first part glosses over the basics of object=oriented design and relates concepts most C++ programmers have heard of but often never knew exactly. The second part is a case study of the application of the patterns; a hypothetical WYSIWYG-capable editor is developed and most patterns are used in well-known situations. The third, and most extensive, part finally is a library of all the patterns taught in the book. All library entries are divided into the sections "Intent", "Also Known As", "Motivation", "Applicability", "Structure", "Participants", "Collaborations", "Consequences", "Implementation", "Sample Code", "Known Uses", and "Related Patterns." This way, it is always easy to find what one is looking for. The descriptions seem to cover every aspect, every question that might arise while the pattern is being used seem to have already been answered.
      The book is extremely well structured, with diagrams that make it easy to understand how classes interact, links from one pattern to another, and clear and easy to apply sample source code. It is definitely the best book I have bought in years, even though it is not easy to access at the beginning. This book and patience, however, will certainly make you a better programmer.
      Gamma, Erich et al. Addison-Wesley, 1994. ISBN 0-201-63361-2. $??.??

    Back to Top of Page

  • Periodicals
    • Game Developer
      The Game Developer is the one scene magazine thet every game programmer ought to read. Not only game programmers, all persons involved in the creation of games. The magazine has an excellent mix between technical articles and easy reading.
      Miller Freeman. 12 issues/year. ISSN 1073-922X. $34.95/year inside U.S.
      Check www.gdmag.com for subscription.

    • Dr. Dobbs Journal
      The DDJ, and the recently discontinued Sourcebook series, is a great source for algorithms not directly related to game programming: templates, sorting, data structures... And so much more.
      Miller Freeman. 12 issues/year. ISSN 1044-789X. $34.95/year inside U.S.
      Check www.ddj.com for subscription.

    Back to Top of Page

  • Miscellaneous
    • Computer Game Developers' Conference 1997-2000 Proceedings (CD-ROMs or books)
      Although the CGDC '98 was the first conference I've attended, I am confident that the preceedings of every conference are this fantastic, be it Develop!, CGDC, or Siggraph. The proceedings share new views and ideas, and are the next best thing to really attending the conference.
      Check www.gdconf.com to purchase a copy. $99.00




Back to Top of Page


This article is © 1998-2008 by M. G. Ricken and was exclusively written for GP-Tricks.
Copyright © 1998-2008 by M.G.Ricken        E-Mail: Scalar@psynet.net     |     mgricken@gptricks.de