99 of 100 people found the following review helpful
on September 10, 2003
Format: PaperbackVerified Purchase
I've reviewed a few other Java game programming books and they're pretty much all stinkers. This one is head and shoulders and feet above the others. And it assumes you know at least some Java and don't have to be hand-held through a dozen chapters of the language basics before they think you're competent enough to get a peek at writing a lame card game or bouncing-ball applet like the other books do. I've only spent a day with this book and have not attempted to compile any code, so keep that in mind while reading the rest of this review. Speaking of code, this is not a code-listing book. It definitely has code in it and dissects it, but the ratio of text to code is very appropriate.
Right off the bat in chapter 1 David starts with a chapter on Threads! Then he moves on to several chapters of 2D graphics and animation and builds a complete 2D scroller in chapter 5! You're probably liking what you're hearing so far if you've read any of the other java game programming books. The next several chapters spend some time on understanding and then programming 3D graphics (great chapters, BTW), then moves on to collision detection, AI and pathfinding, game scripting (using BeanShell - excellent choice), optimization, and more. Somewhere in there is a chapter on multiplayer networking.
All chapters build on the previous ones. The examples all seem worthwhile and demonstrate the concepts and techniques. This is real meat & potatoes game programming, and as the author points out, just happens to be implemented in Java. It looks to me like this guy really knows Java well (I'm a professional Java/J2EE programmer) and points out everything you need to know about using it to implement the game programming concepts.
A few minor nits and notes. The focus of the book is on full-screen applications, not applets or windowed games. You can apply what you've learned to those two, but they're not covered (which is a good thing, but be forewarned). The book is printed with a relatively large font, IMO, especially the code listings, so it's a bit heftier than it should be, but I don't feel like they're over-charging, so I'll live. Also, almost no time was spent talking about writing tools like map editors, assest editors, etc. I feel like those items are important enough to spend a bit more time on, but I can understand why they are only mentioned in brief. The only items other items I would have liked to see some brief coverage of were 2D isometric tile-based maps and 3D terrain.
This is a great intermediate level book on writing games in Java. I'd love to see the author or other writers build on this book to cover more advanced topics like those mentioned above, but you can use the information in this book and other great game programming references (like the Game Programming Gems series, AI Game Programming Wisdom, Strategy Game Programming in DirectX 9.0 (EXCELLENT BOOK), Game Coding Complete, 3D Game Engine Design, Physics for Game Developers, and others) to get where you need to go.
For anyone disappointed with other Java game programming books, this is a must-have. Highly recommended.
28 of 28 people found the following review helpful
Format: PaperbackVerified Purchase
This is one of two excellent books on the subject of game programming in the Java programming language, the other being "Killer Game Programming in Java" by Davison. If you are serious about programming games in Java you should probably own them both, but start with this one since it starts out slower with simpler concepts. The book is divided into three parts. The first part "Java Game Fundamentals" discusses threading, 2D graphics and animation, interactivity and user interfaces, and sound effects and music. These chapters are good for anyone interested in Java multimedia programming in general. Part one of the book finishes up with chapters on 2D platform games and multi-player games in Java using the tools learned in the previous chapters. Part two moves the discussion from 2D to 3D gaming. There are chapters on 3D graphics, texture mapping and lighting, 3D objects, 3D scene management, and collision detection. All of these chapters are written more from a general algorithmic standpoint for 3D graphics rather than going into details on Java3D. The next chapters in the 3D section are not really about 3D graphics at all, instead they are about artificial intelligence in the context of games, algorithms, and Java implementations. The final part of this book, "Tuning and Finishing Your Game" has chapters on the odds and ends of game programming such as optimization, creating art and sound for your game, debugging, deployment, and finally the future of game programming. This book is very thorough and accessible and stays on the subject of game programming in Java, all the while not coddling the reader and expecting the reader to already be a Java programmer who wishes to apply his/her talents to game programming. Amazon does not show the table of contents so I do that here:
PART 1- JAVA GAME FUNDAMENTALS
Chapter 1 - Java and Object-Orientation Basics
Chapter 2 - Java Threads
Chapter 3 - 2D Graphics and Animation
Chapter 4 - Interactivity and User Interfaces
Chapter 5 - Sound Effects and Music
Chapter 6 - Creating a 2D Platform Game
Chapter 7 - Multi-Player Games
PART 2- 3D GRAPHICS AND ADVANCED TECHNIQUES
Chapter 8 - 3D Graphics and Software Rendering
Chapter 9 - 3D Scene Management
Chapter 10 - Creating 3D Scenes with a Level Editor
Chapter 11 - Path Finding and Collision Detection
Chapter 12 - Creating a 3D Shooter
Chapter 13 - Artificial Intelligence
Chapter 14 - Game Scripting
Chapter 15 - Persistence - Saving the Game
PART 3 TUNING AND FINISHING YOUR GAME
Chapter 16 - Cross-Platform Issues
Chapter 17 - Optimization Techniques
Chapter 18 - Using Tools to Create Images, Sounds, and Models
Chapter 19 - I've Made My Game, Now What?
Chapter 20 - The Future
21 of 21 people found the following review helpful
on March 3, 2005
Format: PaperbackVerified Purchase
There are many, many book for the amateur or beginning game programmer around, but most of them stink, and for some reason the Java game programming ones stink even more! This book is an exception to the rule, and it is way over the average, especially compared with the other books in this very sloppy and superficial New Riders's game programming series. No tome fattening explaining the fundamentals of Java, just the raw meat of useful game programming techniques. Threading, full screen, Swing, double buffering, animation, a little 2D scroller, up to date NIO game networking, fundamentals of 3D graphics, BSP trees, AI, scripting...you will find all these cookies inside the book! The "level of detail" of course varies from subject to subject, do not expect a through , complete, super-extensive treatment, but all the subjects are covered in more than decent depth. I have only one critique: The author's code doesn't use any form of 3D acceleration. I understand that this way the code can be more interesting.. as you are forced to learn more about what it takes to put a 3D object on the screen, but still software rendering is history now. The author is definitely too young and inexperienced to be a game programming guru, and sometimes his explanations are a bit vague and too "code-oriented", but he is definitely a very talented programmer and a good technical writer... on his way to gurudom! ;)
12 of 12 people found the following review helpful
on September 25, 2003
If you know java and are interested in game programming, buy this book. It is so great. It is instant game programming gratification. You don't have to suffer through a java tutorial so obviously the book assumes a fair amount of java experience. The code samples are flawless and fun. I am a web developer and spend most of my time writing server-side web app code, so this was such a refreshing and fun change of pace. When I got my first Sprite to dance across the screen it brought me back to the innocence and wonder of my first "Hello World!". I spend a few hours every night just reading through this book and doing the examples - and besides the fact that they are fun, they are well-designed and easy to understand. You learn how to design games from the ground up and get to build useful reuable components.
Seriously, buy this book.
12 of 12 people found the following review helpful
on February 11, 2004
I have read countless books on games and Java and all those pale in comparision to this book. It teaches one thing: how to make games in Java. It doesn't walk the reader through the API like some books; it doesn't simply port games from C++. It has a very logical flow starting with threading, going next to 2d graphics, sound, 3d objects, and even much information on AI, scripting and optimization. This is the ultimate book for those who want to know how to program 2D/3D Java games.
12 of 13 people found the following review helpful
on February 14, 2006
First off, this book is fairly easily to read if you have some programming background. This book is obviously not aimed at beginners, so it will require atleast a basic knowledge of Java to make any sort of sense.
What I liked about this book is the rather large number of projects you have to build right from the get go. However, what was most disappointing about this book was the lack of explanations as to what, exactly, is going on in the code. For instance, his section on mouselooking basically dumps two pages of code on you, filled with new algorithms that are accompanied by zero details about how they work or why things are done that way. There aren't even comments in the code that step you through it.
That aspect of the book is really saddens me because that's all that seperates it from a typing exercise and a great lessong in game programming.
Having said all of that. There are some basic functional things you gather that are useful if you are brand new to game programming.
What I had hoped to gather out of this book was more than just code. I hoped that there would be principles that I could extrapolate and take with me from project to project. Regretfully, I don't think this book accomplished that goal.
8 of 8 people found the following review helpful
on September 6, 2003
I have practically every book on learning game programming with the java language and this is the first one that doesn't start out with half the book being a java tutorial. The authors are very knowledgeable on the subject and go over 2d and 3d programming, pathfinding, ai, ... This is the kind of book i want when i buy a book on game programming, not a java tutorial (there are enough tutorials already). I highly recommend this book and can't wait to start developing my own games.
13 of 16 people found the following review helpful
on April 7, 2004
I have to admit that this book is a very good java game programming book. Probably the best book on the matter out there, perhaps until the new crop of 2004 java game programming books start showing up on the bookshelves. I was able to take the source code provided and get "most" of the projects running smoothly. Most importantly, the side scroller example worked great. Basically, the book does a great job of providing almost everything you'll need to know about getting a fullscreen java game running on your system. I have to agree with most things everyone has said about the book in their reviews. However, that doesn't mean the book warrants 5 stars...
What I don't like about the book is the pages and pages and pages of code plastered in the book. I simply cannot give a book a high rating when so much of the book contains cut-and-paste code. If you want to learn game programming, you should be sitting in front of you computer with code on your screen. I'm fine with some code snippets here and there, but when you're provided with a great downloadable source (which the book has), you don't need the overkill in the text. The book would be much more conducive to focusing on game framework explanations if you weren't flipping through pages of code but rather referencing the book and looking at your screen.
Just my two cents on programming books. Otherwise, the book does contain very good content that all java game programmers will want to know.
10 of 12 people found the following review helpful
on January 4, 2004
I'm a Java lover (even if I've been forced into C# lately :-( ) so to hone my skills, I've decided to write a small game in the language. I went to the book store and found this book...
It assumes that you have a basic knowledge of Java and the Games are programmed in Swing, however the concepts can be reused in other environments (I'm giving Swt a try in favor of Swing).
Currently I've read the first section "Java Game Fundamentals", which gives you everything to create a basic 2D tiled game with sound and networking support, and section three, "Tuning and Finishing Your Game". I've skipped the second section "3D Graphics and Advanced Techniques", because I want to finish my 2D Game first (a PacMan) before moving to 3D.
So far, the book has been helpfull to me to either confirm some concepts I've found by myself or to introduce me to concepts I didn't know before. The text is most of the time interesting/entertaining and the code examples are clear enough to make their point.
However, this book must be seen as a introduction to the topic of game development, you'll need to browse other sources of information (e.g. gamedev.net, ...) to fill in the blanks and do some thinking for yourself to get a finished and fun to play game.
Also, this book is more of a programming book, with the topics of game design and art work are slightly covered but needing above-mentionned additional input.
All in all, I like this book.
6 of 7 people found the following review helpful
Java is a tough choice as a programming language for certain types of games. Commonly known as twitch or reflex games. The difficulty is in the loss of a performance edge, unless the bytecode has been transformed into native code.
But Brackeen shows that writing java games also has its attractions. An elegant and easy to learn object oriented language. Arguably, more robust than C++. Java also has a relatively simply threading model. Threading is essential in most games, but can be very difficult to write robustly and to debug.
He goes through the essentials of gaming, and shows what can be done with the standard java libraries, that come with the normal java distribution. Like a useful sound API that can play the common audio encoding formats of wav, au and aiff.
For animation, well there is 2 dimensional material shown. For 3d, the issues are much harder. We see quick examples of coding 3d objects and putting a texture map on their surfaces and illuminating them with a light source.
Overall, the author presents a solid introduction to his subject. With the clear proviso that many topics are barely gone into, out of sheer necessity.