Bring your gaming visions to life with Microsoft XNA Game Studio Express
Create complete 3D games using Microsoft XNA Game Studio Express and this hands-on guide. Written by experienced game developers, Microsoft XNA Game Studio Creator's Guide details the fundamentals of great game programming and offers detailed examples.
Inside, you'll learn to program a game engine, write shader code, create and animate 3D models, and add fluid motion and special effects. You'll also find out how to launch ballistics, add realistic scenery and terrain, and integrate lighting and textures. Step-by-step tutorials on underlying C# code and explanations of vector and matrix techniques are included.
Build and dynamically update XNA game windows and custom 3D objects
Learn scintillating animation techniques
Create lifelike skyboxes, textures, lighting, and shading effects
Program shaders using high-level shader language
Develop single- and multi-player games
Generate and code terrain with height detection
Construct impressive graphics using sprites, multi-texturing, and blending
Integrate audio, game dashboards, and score tracking
Develop realistic collision detection, ballistics, and particle effects
HaHHhhndle keyboard, mouse, and game controller input
Create static *.fbx and animated Quake 2 models and control them in code
One of the better XNA books I've looked at all the XNA books available as of May 2008, and honestly not a single one of them has been able to meet my hopes and expectations in terms of clearly explaining what's going on at a fundamental level in order to give one a solid basis to build on.
Either they spend half the book explaining C# programming (which I think is a waste of time as there are many great C# programming books and it helps to learn the language independently first), or they launch straight into 2D or 3D details without spending time to explain the fundamental organization and operation of a modern game program.
This particular book does better than average. There's a wonderful diagram in the first few pages that illustrates the update, draw, repeat cycle. For that and some other better than average introductory material I give the book 4 stars to distinguish it from the other rubbish out there.
I haven't used it enough to comment on the code quality, but browsing through the chapters the topics look much more interesting (and relatively advanced) when compared to the other books available.
So for someone with a background in programming, who would rather learn C# from another source (C# 3.0 in a Nutshell from O'Reilly is excellent), then this is at least one of the better "hint books" available.
For the most part though, none of these books does a good job of helping the beginner. I'm still looking for one that has at least a paragraph that explains that for each frame your program is responsible for drawing everything on the screen from scratch each time rather than having the video card somehow do it automatically, and then show how it works conceptually and in the context of a modern accelerated 3D video card.
Microsoft's XNA is one of the more impressive things they've ever produced, and it makes (serious) game programming about 100x more accessible than it ever has been before, but the current state of information for the beginner is rather poor and it makes getting started, in what is admittedly an amazingly complex enterprise, a lot harder than I think it needs to be.
excellent intro to 3D programming - easy to understand This is an excellent step-by-step approach with many short chapters that are easy to read. The examples are complete and I can plug the code into my own projects with hardly any effort. I recommend this book for any beginner or for any experienced programmer who doesn't know how to program games. I've been programming for three years but I don't want to work hard when I'm learning...this book delivers.
Excellent to enter in the games programming world I think that this book is a perfect introduction to the new Microsoft Platform. To Develop a game is not a simple task but this book cover all the important feature needed to build a modern 3D game in an easy way. This book is ideal for beginner game programmer. The only prerequisites is the knowledge of the C# programming language and basic concept of Microsoft .NET Framework.
Introduction to XNA concepts and bad programming practices I'm an experienced programmer, and a professional game developer, so I'm not exactly the audience that the authors were shooting for. (They claim to be shooting for "beginning to intermediate" programmers in the introduction.)
This book does serve to describe some of the concepts in XNA that I was unfamiliar with, but I found the text written poorly and the code written unprofessionally.
Even for a beginning audience, there were factual errors in the text that are at best misleading, and certainly contribute to a misunderstanding of the processes involved. For example, when discussing pixel shaders, the authors claim that the output gets sent to the graphics card one pixel at a time. This is false, as the pixel shader is running on the graphics card already, except in the exceptionally rare (and ill-documented) case of running with a reference rasterizer on the CPU.
The organization is questionable, with topics used before they're explained (chapters 13, 14, and 15 are on vectors, matrices, and cameras, which are important foundations for chapters both before and after). Within chapters, code is presented in a half-tutorial fashion, but without enough guidance to really follow along.
The diagrams are typically not helpful, including screenshots that don't do a good job of illustrating the concepts at hand. A case in point, Figure 20-1 tries to show "before and after directional lighting". Any still image is going to be hard pressed to accomplish this. More useful would be a reference to an interactive demo.
The book has a zip file that can be downloaded from the publisher's website, which is of some use, but it doesn't seem to agree with some of the references in the book, including discussion of how to use the authors' framework, which is a starting point for much of the code in the book.
This was written before the release of Game Studio 2.0, so some of the book is already out of date, including comments that there is no networking support, and a strange admonition that writing networked games "might be potentially unsafe".
Abysmal Code Reference Given other people's positive reviews of this book, I'll make the concession that I didn't use this book by reading it chapter by chapter. I used it as a reference and a guide.
And for that, this book is horrible. When I couldn't figure out a concept easily, I'd look to the book for an explanation and some sample code. For explanations, the book was mediocre. Not bad, just not written in any good teaching style.
As sample code, the book fails on every single level. The code is incomprehensible, with odd naming conventions, astounding overuse of variables, and massive over-complication of basic XNA tasks. (If you went to this book first to learn XNA, then please take a look at other resources and see how much simpler your code could be).
Most of all, though, the code is completely un-portable. It takes tremendous amounts of blood, sweat, and tears to port any of their code to a different program, to a more general use, or to a more object-oriented system. It's almost as though they tried to make their code work exclusively for their very specific examples, with absolutely no thought to making the code useful in any other context.
If you're looking for a casual reference to help you along while learning XNA, avoid this book at all costs. It will provide you nothing but pain. If you want to learn the concepts carefully and freshly for the first time, by reading a textbook, then this book will probably suffice. But I must reiterate, the code examples provided in this book are AWFUL. Every single thing you do in XNA is easier than they made it.
Examples of horrible code: -In the particle effect sample, the code that made the particles appear at the correct position was in the particles' draw method. They made a constructor able to specify their origin, but instead of being intelligent, they set that to Zero and translated the image in the Draw method. -Also, the particles only moved in 2 dimensions, when it was a single line of code to make it 3, a line of code that was already written. -The core of most of the examples is a small grass field you can walk around on. The controls must have been made by someone with absolutely zero experience placing PC games. It's difficult to trust any so-called game programmer that isn't aware of the WASD + mouse standard (they used arrow keys and INVERTED mouse look). That issue was relatively easy to fix, however. -Also, instead of placing the ground at Y 0, which would have made expanding on that world much easier, your camera is at 0, and the ground is -.8 or something. -There is a method in their code that returns its parameter. It does nothing else. Call it with a parameter, and get the exact same reference back, unmodified. Why that method exists, I can't fathom.
But the worst, by far, was the general stuff. The naming conventions, and the layout of their code (or lack thereof) were all inexcusably horrific.