Appendix A. Recommended Reading

This appendix suggests excellent books that are useful when creating a game project or improving your skills and knowledge. This section only covers books, but the CD has an HTML file with links to useful websites and papers online.

The Practice of Programming

The practice of programming is about the journey—an initial spark of an idea to finished project. These books give some guidelines for how development should be done and what steps need to be taken to painlessly create a great finished program. They are not game specific as the lessons apply to all software development projects, but they’re still very much worth reading.

The Pragmatic Programmer: From Journeyman to Master (ISBN 0-201-61622-X) by Andrew Hunt and David Thomas

The Pragmatic Programmer is a relatively short book that describes how to complete software projects. It’s not about any language in particular; instead, it is about the process of software development. Despite being very short, it is packed with useful information and I highly recommended it if you want to improve your craft.

Code Complete Second Edition: A Practical Handbook of Software Construction (ISBN-13: 978-0735619678) by Steve McConnell

Code Complete is another book that encourages a pragmatic programming style, but unlike The Pragmatic Programmer, this book goes into much greater detail. It covers how to write tight, clean code that is easy to extend and debug. There is a slight C++/C focus, but the vast majority of the book is applicable to C# or any other programming language.

The C# Language and Software Architecture

Readers of these books are assumed to be familiar with C# or a similar language; therefore, their suggested aim is to provide a deeper understanding. Software Architecture is a term used to describe the design and structure of computer programs; how the code is broken up into parts and how those parts communicate.

CLR via C#, 3rd Edition (ISBN-13: 978-0735627048) by Jeffrey Richter

The focus of this book isn’t C#; rather, it’s the virtual machine that C# runs on. Understanding this virtual machine will help greatly when you desire to improve the speed and efficiency of your C# programs.

Head First Design Patterns (ISBN-13: 978-0596007126) by Eric T Freeman, Elisabeth Robson, Bert Bates, and Kathy Sierra

The usual recommended book for design patterns is Design Patterns : Elements of Reusable Object-Oriented Software, but it is a very dry book. Head First Design Patterns is much more readable and entertaining. Design patterns are small descriptions of how to write code to solve some common challenges in software development. It’s worth understanding these patterns to see how other people are approaching design problems and also to be able to understand what is being referenced when people are criticizing the overuse of the Singleton pattern or suggesting the use of a Decorator pattern. The book uses Java to explain the patterns, but it is quite simple to convert the examples to C#.

Math and Graphics Programming

If you want to expand your knowledge of mathematics and graphics programming, these two books are a good starting point.

3D Math Primer for Graphics and Game Development (ISBN-13: 978-1556229114) by Fletcher Dunn and Ian Parberry

I’ve worked with and visited quite a number of different game development studios, and it’s quite common to see this book lying on top of somebody’s desk. The book covers all the mathematics needed to understand how the fundamentals of 3D games work. It is more approachable than nearly any other equivalent book, but it is still a high-level math text and requires a lot of work by the reader to understand everything. It’s also a good reference book with lots of C++ code, which isn’t hard to convert to C# code. There are plenty of exercises for the reader as well.

Computer Graphics: Principles and Practice in C (2nd Edition) (ISBN-13: 978-0201848403) by James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes

If you wanted to write your own version of OpenGL, this would be the book to follow. It’s an excellent reference book with a very broad scope, and code examples are provided in C. It covers principles such as the different ways to represent color, how monitors work, line drawing algorithms, how to write a rasterizer, and so on. The principles of computer graphics are unchanging, but the book is starting to show its age. It has little to say on shaders and modern graphics hardware, but quite a lot to say on systems that are no longer heavily used such as PHIGS (an API that OpenGL overtook).

OpenGL

There are two major books that cover OpenGL, and they’re known as the Red Book and the Orange Book. The red book covers the standard OpenGL library, and the orange book covers shaders using the OpenGL shading language GLSL.

OpenGL Programming Guide: The Official Guide to Learning OpenGL (ISBN-13: 978-0321552624) by Dave Shreiner

This is the red book, and it covers all the OpenGL basics, noting which parts of OpenGL have changed in the latest versions. The examples are in C++, but nearly all the OpenGL calls are the same in C# and therefore can be copied over.

OpenGL Shading Language 3rd Edition by Randi J. Rost, Bill Licea-Kane, Dan Ginsburg, John M. Kessenich, Barthold Lichtenbelt, Hugh Malan, and Mike Weiblen

This is the orange book, and it covers the more modern shader-driven approach to OpenGL. The book uses GLSL, but once you understand one shading language, it’s very easy to move to another as they are all quite similar.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.117.105.190