Book list
From DmWiki
The answer to many questions is 'Get a book and read it' however when it's hard to know which books are worth buying. The books following are ones which have been tried and tested by the authors.
| Table of contents |
[edit]
General Literature
- Gödel, Escher, Bach : An Eternal Golden Braid by Douglas R. Hofstadter (ISBN : 0465026567) : If you haven't read it go and buy it. It clearly is one of the most entertaining books about human logic and artifical intelligence. What is the secret connection between Gödel the mathematician, Escher the artist and Bach the composer? Quite simple : Recursion. Hofstadter takes the reader through a beautifully constructed meditation of logical concepts and the ever-reappearing concept of self-reference, by part through the dialogues between recurring characters called Achilles and the Tortoise. The dialogues, which introduce an idea or concept prior to taking it up in the main part of the chapter, are not only amusing but also cleverly constructed so that they embody many of the book's concepts, like recursion, in their structure. In short: A cult book and a must-have for any computer scientist.
[edit]
Learning a new language
[edit]
Flash
- Foundation Actionscript for Flash 2004 (http://www.friendsofed.com/books/1590593057/index.html). If you wish to learn about scripting in Flash, Friends Of ED have produced many great titles on the subject.
[edit]
C
- Herbert Schild : C The Complete Reference. Although sadly out of print, this is a great reference to the entire C universe. Algorithms, Libraries and the entire language are covered. If you see this book be sure to leave with it!
[edit]
C++
- Thinking in C++ (http://mindview.net/Books/TICPP/ThinkingInCPP2e.html) by Bruce Eckel. Excellent and freely downloadable. If you have money remember to buy it!
- The C++ Programming Langue (http://www.amazon.com/exec/obidos/tg/detail/-/0201889544/002-5215600-4552002?v=glance) by Bjarne Stroustrup, the creator of C++ himself. Not for the absolute beginner, but highly recommended to anyone who's serious about learning C++. Contains a lot more of information than other books on C++ and it will be your guide and reference util you're old enough to read the ISO C++ standard (http://en.wikipedia.org/wiki/ISO/IEC_14882).
- Effective C++ (http://www.amazon.com/exec/obidos/tg/detail/-/0201924889/002-5215600-4552002?v=glance) and More Effective C++ (http://www.amazon.com/exec/obidos/tg/detail/-/020163371X/002-5215600-4552002?v=glance) by Scott Meyers, both also available on one CD-ROM (http://www.amazon.com/exec/obidos/ASIN/0201310155/qid%3D915655852/scottmeyersho-20). Not for the absolute beginner, but once you get the hang of it, it's an interesting read because it will teach you good C++ practices.
- Exceptional C++ (http://www.amazon.com/exec/obidos/tg/detail/-/0201615622/002-5215600-4552002?v=glance), More Exceptional C++ (http://www.amazon.com/exec/obidos/tg/detail/-/020170434X/002-5215600-4552002?v=glance) and Exceptional C++ Style (http://www.amazon.com/exec/obidos/tg/detail/-/0201760428/ref=pd_bxgy_text_1/002-5215600-4552002?v=glance&s=books&st=*) by Herb Sutter. These books are aimed and the experienced C++ programmer and present them a lot of advanced C++ questions and puzzles. If you're up to it, it's a highly recommended read and will take your C++ skills to the next level.
- C++ Coding Standards (http://www.amazon.com/exec/obidos/tg/detail/-/0321113586/ref=pd_sim_b_2/002-5215600-4552002?%5Fencoding=UTF8&v=glance) by Herb Sutter and Andrei Alexandrescu. Not aimed at the absolute beginner, but once you're getting comfortable with the language, you'll find 101 good guidelines and practices in it. Not for the highly experienced C++ programmer either, because you'll know most of it already. Though it might be a fresh up.
- Modern C++ Design (http://www.amazon.com/exec/obidos/tg/detail/-/0201704315/002-5215600-4552002?v=glance) by Andrei Alexandrescu. You've learned quite a bit about C++ by now and you've even learned about templates and how to use them. This book is exactly something for you! If you thought you knew C++, well, you didn't. This book will introduce you to the wonderfull world of template metaprogramming, patterns and policy-driven design. Highly recommended!
- C++ Templates, The Complete Guide (http://www.amazon.com/exec/obidos/tg/detail/-/0201734842/002-5215600-4552002?v=glance) by David Vandevoorde and Nicolai Josuttis. 500 pages entirely dedicated to C++ templates. If you have a question about templates, it's probably in there. The book to become a C++ templates guru.
[edit]
Python
- How to Think Like a Computer Scientist: Programming in Python (http://greenteapress.com/thinkpython/) by Allen Downey, Jeff Elkner and Chris Meyers. This book is a free download and is a good textbook for learning Python. Python is often reccommended as a first programming language for beginners but this book may not be the best beginners' text unless you also plan on learning other programming languages on the side.
- Dive Into Python (http://diveintopython.org/) by Mark Pilgrim. Another free Python programming download for more advanced programmers wishing to learn to push Python to its limits and debug it effectively. It also contains some chapters dealing with using Python as a web programming language which might not necessarily be needed for game programming.
[edit]
General programming and software design
- Design Patterns (http://www.amazon.com/exec/obidos/tg/detail/-/0201633612/qid=1127334008/sr=8-1/ref=pd_bbs_1/002-3180036-5034410?v=glance&s=books&n=507846,) by the Gang of Four (or GoF). Aimed at the more experienced programmer, it is a must-have book to know all about the Composite Pattern, Abstract Factory, Singleton, Visitor Pattern, and many others. It's offering timeless solutions to common problems in software design. Knowing to put a name on it is the first step to solve the problem.
- Code Complete 2nd Edition (http://www.amazon.com/exec/obidos/tg/detail/-/0735619670/qid=1127656640/sr=8-1/ref=pd_bbs_1/102-8202348-5776922?v=glance&s=books&n=507846) by Steve McConnell.
[edit]
Mastering development and the bigger picture
- Joel on Software (http://www.amazon.com/exec/obidos/tg/detail/-/1590593898/ref%3Dnosim/joelonsoftware/103-5092343-4536664) Despite its long title, this book is very concise. It covers matters that both programmers and managers should read, and is based around the theme of actually shipping a great product.
- The Mythical Man-Month (http://www.amazon.com/exec/obidos/tg/detail/-/0201835959/103-5092343-4536664?v=glance) An old, and very well-renowned book. This is as close as we have to 'classic' literature on software developement. The hardware mentioned is old (and at times gives the book charm) but the conclusions are as sharp and important as ever.
- Software Project Survival Guide (http://www.amazon.com/exec/obidos/tg/detail/-/1572316217/qid%3D1124547652/sr%3D11-1/ref%3Dsr%5F11%5F1/102-4066435-3471306?v=glance&s=books) Geared toward commercial non-game development, but provides a solid development roadmap that works. Some of its ideas are applicable to developing opensource and volunteer games.
[edit]
Game Programming
- Game Programming Gems (http://www.gameprogramminggems.com/). With a large number of very interesting articles this is one of the most successful book series about Game Programming. Very useful for reference during development.
- Ai Game Programming Wisdom (http://www.aiwisdom.com/byresource_aiwisdom.html) and Ai Game Programming Wisdom 2 (http://www.aiwisdom.com/byresource_aiwisdom2.html). Lots of articles that cover an important part of game programming that often is not developed as it should be.
[edit]
Physically based rendering
- Physically based rendering (ISBN 0-12-553180-X) by Matt Pharr and Greg Humphreys. Probably the best book out there on ray tracing based rendering techniques. Well written and very complete. The price tag is a little high though (on the other hand it has around a 1000 pages)
- Advanced Global Illumination (ISBN 1-56881-177-2) by Philip Dutré, Philippe Bekaert and Kavita Bala. A nice reference on all the common global illumination techniques, including photon mapping, path tracing, radiosity and metropolis light transport. Coverage of each topic is pretty compact, since the book has only roughly 300 pages. If you need a book that lets you in on general light transfer theory and global illumination, without bothering you with much code, then this is for you.
