Algorithms for Computer Games

As the title indicates this book comprises two major parts, with about 220 pages presenting a broad variety of general algorithms, and another 70 pages on architecture and algorithms for networked games. The first part covers just about any game-related algorithm you might expect and then some: generation of random numbers, noise, and game levels; search trees and pathfinding; group movement in flocks or formations; and decision-making based on exact or uncertain information.

The presentation is nothing short of brilliant. Smed & Hakonen give any required theoretical underpinnings without excessive formal baggage before moving on to richly illustrated examples and pseudocode implementations. An extensive appendix provides the necessary minimum of linear algebra, as well as a definition of the book’s pseudocode language. The latter is precise enough to translate directly and almost completely into actual code, with little extra work left to the programmer.

The networking part covers communication layers, compensation for resource limitations, cheating prevention, and online metrics. I can say little about that, as networking is not my area of interest or expertise. My impression was that it is as solid as the rest, though, and I can certainly give my strongest recommendation for the algorithms part. Anyone writing code for computer games should have this book.