![]() |
[
Contents
|
Who Am I?
|
Resume
|
Jokes
|
Products
|
A* Tutorial
|
Programmers book shelf
|
Java
|
Win95
|
Guestbook
|
Send Email
]
|
Hit count![]() Updated 17 July 2001 Site hosted on ![]() Amazon.com associate ![]() Amazon.co.uk associate ![]() |
Books for Game ProgrammersYou can't learn everything you need to write a game by reading a book, you will get further by experimenting and setting your own goals. For many aspects of game programming, however, there exist one or two essential purchases. Books that you will find to be value for money in your quest to write great games. These are the titles I've listed below, along with some popular science and fiction books that seem to be ubiquitous in game programmer circles.All books are linked to amazon.com for your convenience. Click the links to buy these books today and get an average of 20% off the store price!. Games programming![]() Game Programming Gems I am so happy that this book came out; this book is exactly what you'd expect from the title; a great collection of professional games programming topics, with source code. If you want a one stop guide to AI, math, rendering and many other aspects of professional game programming, this is it. If you buy a book on Artificial Intelligence you won't find much to help you write real-time AI systems for games, so books like this are a great way to catch up with what the professionals are doing. Coming soon from one of the authors of this book, Steve Rabin, is a great new book on video game AI... AI Wisdom General programming![]() AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis You may have read Design Patterns; the book describes common solutions to problems and formalises them so they can be described and used in Designs. Some examples of pattern's are being used in my current project. Singleton's for example (classes with only one instance) and Factories (classes that make and manage classes). AntiPatterns is the opposite. These a patterns in software implementation, design or management that are common across projects. Many of these are related to game programming, and this book has some ways you can manage and describe problems in your day-to-day programming experiences. One good example is the blob antipattern. How many times have you had a piece of code from somebody that is so complex and large that you couldn't hope to understand it's structure completely? The blob antipatten includes ways to manage that kind of complexity to get re-usable documented behaviour back from the chaos. ![]() Generic Programming and the STL : Using and Extending the C++ Standard Template Library People have differing opinions on STL in games. For me I would just about recommend it. I find the code is pretty ugly, the library is hard to debug, for example if you want to look at STL data in a debugger you're out of luck. It's also probably not as efficient as hand coded algorithms and data structures for specific problems. Why I do recommend it is because it gives you rapid access to many algorithms so you can quickly swap between them when optimising. It's very well documented, and buying this book is all the tutorial and documentation you'll need. Finally the overhead is now insignificant on most game platforms, that we can happily use it and get more cross-platform code. ![]() Writing Solid Code : Microsoft's Techniques for Developing Bug-Free C Programs By Steve Maguire A much lighter book than Code Complete, which in my opinion is much too big to be of use. This book is more concise and to the point. If you don't like debugging you should read this so you have to do it less. ![]() Debugging the Development Process : Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams By Steve Maguire This book tries to put the case that we shouldn't be working 60 hour weeks in game development. While this is probably not true, those extra hours certainly can put you ahead of the competition, it does make some good points. There is a difference between blindly hacking for 60 hours a week at a doomed project, and intelligently organising your schedule and working smart so that 60 hour weeks are kept to a minimum. ![]() The Art of Computer Programming : Fundamental Algorithms (Vol 1, 3rd Ed) By Donald Ervin Knuth A rigorous and mathematical book about algorithms. Quite readable regardless. ![]() The C++ Programming Language By Bjarne Stroustrup Bjarne is the father of C++, so who better to write the definitive manual. Even if you learn C++ from another book I think the first few chapters of this give a good feel for the language, and how it came about, that you won't find anywhere else. ![]() Introduction to Algorithms (MIT Electrical Engineering and Computer Science Series) By Thomas H. Cormen, et al This is the bible of algorithms. Not as accessible as you would like, but rigorous and comprehensive. You really can't know too much about algorithm analysis. A lot of optimisation in games is done way too late simply because the original code design was not done considering a range of appropriate algorithms. What you end up with is having to optimise bad algorithms with fast assembler. ![]() Java in a Nutshell : A Desktop Quick Reference : Deluxe (Nutshell Handbooks) By David Flanagan Java is in use in games companies already. Personally I use it often for writing quick tools and utilities. Don't be put off by the speed, in a few years Java could well be used to control game logic, whilst Physics, Graphics and AI may be handled by compiled native code modules which the Java code simply calls. This book is an ideal tutorial but with complete language reference. ![]() Perl : Programmer's Reference Perl is a useful tool. Don't be put off by it's ugly syntax, and boy is it ugly. Once you master that it is the most powerful language for doing anything web based, and great for scripting tools for processing art and level data. I would also recommend Python, but Perl is much more expressive, and that seems to give it an edge. It's also older (no that's good) so you get more peer support and prebuilt libraries. ![]() Modern Compiler Implementation in C By Andrew W. Appel, Maia Ginsburg If you fancy writing a compiler, or even working with the code for an existing one then this is the bible in that sphere. Scripting languages are popular in games, and you will be well endowed with the skills to write on after reading just the first four chapters of this book. 3D and Graphics![]() 3D Games, Volume 1 : Real-time Rendering and Software Technology Alan Watt & Fabio Policarpo This would be my first choice for a 3D book. It covers the math as well as providing real-time games related code samples, and lots of game specific techniques. As a bonus you get some AI and networking chapters at the end. Way better for the beginner than some of the more academic graphics text, yet advanced enough for a professional. ![]() Computer Graphics : Principles and Practice, Second Edition in C By James D. Foley, et al Not an easy book to read. What this book gives you though is a very forward looking and complete reference to 3D graphics. Each time a new generation of console or graphic card comes out you usually end up reading this book for the theory behind the techniques. ![]() Michael Abrash's Graphics Programming Black Book Special By Michael Abrash Michael's books are well written and entertaining. Although this book won't teach you the secrets about what is cutting edge graphics technology today, it will teach you how to learn to be cutting edge. Follow through his optimisation processes and see how code and ideas can be refined over time. He offers insights from experience that will help you to be the next code god. Artficial Life and Artificial Intelligence![]() Artificial Intelligence: A Modern Approach By Stuart J. Russell, Peter Norvig The current standard text on Artificial Intelligence. Good coverage of the subject, source code, and very readable. ![]() Artificial Intelligence By Elaine Rich, Kevin Knight A good backup for the Russell text, very readable. Science![]() The Feynman Lectures on Physics : Commemorative Issue (3 Volume set) I LOVE these books. Having read a couple of books on Feynman's life I discovered these books, which are essentially lecture notes for a three year undergrad physics course. The guy practically rewrote Quantum Electro-Dynamics, worked on the Manhatten project, investigated the shuttle disaster, and plays the drums like a master. This guy rocks, and when it comes to explaing physics I don't think you'll find a better teacher, hence the bible of physics is these three books. ![]() Artificial Life : A Report from the Frontier Where Computers Meet Biology By Steven Levy This is a wonderful introduction and history to Alife. You will almost certainly want to write some Alife software for yourself after reading this. Levy is a compelling writer and explores both the early A-Life hackers lives, and their discoveries with equal depth. ![]() Chaos : Making a New Science By James Gleick If you enjoyed Steven Levy's introduction to ALife then you should enjoy this introduction to Chaos. I found myself writing programs to draw Chaotic equations to the screen and marvelled at what before were just pretty patterns, but after the book seem to be trying to tell you something interesting about the low level operating system of the Universe. ![]() The Language Instinct By Steven Pinker This book comes close to explaining some of the mystery's of the human mind. Pinker has a love for the subject that he does not hide and you can't help but share his enthusiasm. A possible explanation of the origin of complex human communication and even humour makes this one of the most exciting books of the century. ![]() Consilience : The Unity of Knowledge By Edward O. Wilson Wilson is a reknowned naturist and scientist. This book is based on a lifetime of experience as a scientist and puts the case that science needs to more unified and less divided to get further. Interesting book. ![]() In Search of Schrodinger's Cat : Quantum Physics and Reality By John Gribbin Gribbin describes Quantum Theory with great competence and obviously enjoys himself while doing do. Amazingly some of the advances in the science he mentions at the end of the book are already making headlines and showing up as real products such as a hard drive by IBM. Quite frankly I'm scared of having to account for Quantum effects when I'm programming machines in ten years. Let's hope I'm a manager by then |