Not Recommended for Dummies

Interesting read, with well explored and useful gaming classes. Provides insights into numerous graphical issues.


ORIGINAL DRAFT

Few things have to power to insult me more than a condescending attitude. IDG’s ‘Dummy’ book series seems to me like an assault on the reader’s self esteem, and a viewpoint that assumes the reader is unintelligent, something I could never subscribe to. Imagine my surprise one day when I found myself at the retail counter picking up Java Game Programming for Dummies book, especially after expounding this opinion to so many friends and colleagues. Having browsed the book at the shelf, however, I knew that the content in these pages covered techniques that a Dummy would be hard-pressed to understand. So ‘never judge a book by its cover’ had just become something more than a mere idiom.

Inappropriate as the title is, if you are interested in game programming, this books brings many things to the table. The two authors, Wayne Holder and Doug Bell are the principals of the FTL Games company, with more than 15 years experience in the industry. Their style is simple and makes few assumptions about the reader’s previous understanding. Everything is reasonably well explored, despite the apparent target audience. Naturally, I couldn’t help but think that some of the details were being overlooked in favor of simplicity, but the information is valuable and teaches the reader a lot of game development principles that make the book’s low $29.95 pricing pretty attractive.

The Introduction and first few chapters are rudimentary, covering basics like animation, bouncing balls and the implementation of a Pong-style game. Things start to get interesting early, though, with the implementation of a small golf/putting and a pool/billiard game in chapters 3 and 4. These two chapters provide all the basic math you need without dwelling on any of it, so they form a good reference for developing games or animations which emulate some basic physical behaviors.

Part II starts working with block images, puzzles, card games, and two dimensional mazes. The sliding blocks example in Chapter 5 explains techniques for handling image files, covers game boards and the underlying sprite engine the authors use throughout the book. Chapter 6 implements a blackjack game. Chapters 7 and 8 cover two different types of maze representations and alternative display methods. The sprite maze in Chapter 8 even introduces some rudimentary autonomous behavior in computer adversaries.

Part III touches on more advanced gaming concepts (these seem like unlikely topics for a Dummy, don’t you think?). Chapter 9 addresses timing as it might apply to sequence-dependent events, synchronizing sound and simulation time. Chapter 10 shows how you can develop a 3-dimensional polygon-based maze and Chapter 11 extends this to a texture-mapped maze. Chapter 12 talks about advanced imaging techniques, covering image producers and related image API classes, before introducing some useful new classes from the authors. The final section, Part IV, covers pragmatic issues for any game programmer; the ten most important issues to consider at design time, how to respond with user messages that make the player want to play again, and how to optimize your Java code.

Even if you don’t have any plans to become a game developer in the near future, there’s something to be learned from this whole software genre. Developing practical user interface controls, for example, is not a very big leap from the techniques presented in these pages. If you just like gaming, or have big plans to implement the next number one hit game, you probably want to read this. You’ll have to ignore the insulting title, of course, but you’ll get over it. I did.