This is a book about game programming. Its purpose is to teach you the fundamental techniques and algorithms that drive most computer and video games on the market. You will learn the theory and study the implementation details behind many AAA titles for the PC and console. The focus will not be on a specific area such as graphics or networks. The goal is to show you the core algorithms in each area, so this book can effectively become an introductory course on game programming.
It is not my intention to make this book a simple collection of algorithms or a long review of technical papers. My objective is to make the techniques easy to understand and code, so you can apply them yourself. Thus, for the most relevant methods, I will provide full explanations, diagrams, and code samples as required, so you can discover what's going on under the hood, how things work, and why. The measure of my success will be your ability to implement the ideas contained in this book, and thus create future generations of games.
Quite likely, you will end the reading of this book with more questions than answers. Game programming is a huge subject, and it is continually evolving. A book covering all techniques from the past and present would be thousands of pages long. Thus, I have provided a bibliography at the end of the book (Appendix E, "Further Reading") so you can read further and focus on the specific subject you are interested in. I have classified the bibliography entries by chapter, so it can be scanned quickly for relevant information.