Archive for the ‘Book Reviews’ Category

Beginning DirectX 9

Sunday, March 6th, 2005

beginningdirectx91.jpgIt looks like Course Technology, now that it owns the Premier Press brand, have given its editors a double brief of “know thy audience” and “maintain subject focus.” I am just reading through the latest Premier Press lineup, and compared to the older books with green & black covers, the new titles really are offering something new other than just updated covers.

With the publication of Beginning DirectX 9 the number of really valuable introductory texts to the subject of DirectX that I would personally recommend to fellow programmers has probably doubled in number. Wendy Jones has done a bang up job with her first book, teaching the graphics aspects of DirectX in an easy to read style that doesn’t waste the reader’s valuable time. Jones has been a programmer in the games industry for a number of years and currently works at Humongous Entertainment as a game developer.

Beginning DirectX 9 concentrates almost exclusively on the graphic aspects of the DirectX application programming interface (API) with only very brief chapters covering DirectSound and DirectInput. Jones completely ignores the networking aspects of the DirectX API, perhaps wisely as many of the aspects of DirectX are both broad and deep and doing justice to all areas of the DirectX technologies would no doubt double the number of published pages.

Unlike many introductory texts, Beginning DirectX 9 doesn’t waste pages covering subjects that any programmer contemplating creating DirectX applications should already know. Jones is targeting those people who are familiar with C++ and are capable of downloading and installing a software development kit (SDK) without step-by-step handholding. Other than short – and I mean very short – sections covering the architecture of DirectX, including a few obligatory paragraphs about the component object model (COM), I’m pleased to say that the book stays tightly focused and avoids wasting the reader’s time with superfluous information. It is not necessary for the five-nines (99.999%) of game programmers to know anything at all about COM or how DirectX utilizes it. Jones knows her audience; she mentions COM, then moves on to the more interesting items.

Of the DirectX graphics technologies covered Beginning DirectX 9 quickly walks through the 2D aspects — introducing surfaces, off-screen buffers and sprites, wrapping up with a section on making your sprite animations time-based rather than frame-based – before the book finally leaps off in to the world of 3D, introducing the basics of Direct3D; vertices, meshes, textures and lighting, including introductions to vectors & matrices, though again Jones assumes the reader is familiar with the basics of 3D math.

Each chapter wraps up with a quick summary, including some review questions — the answers to which are given in the first appendix — and a few small exercises termed “on your own” that an inquisitive reader can use to explore the discussed subject a little further.

The DirectInput chapter covers the basics of input devices, rapidly covering keyboard, mouse and joystick or gamepad, including handling multiple input devices simultaneously. Surprisingly there is a small section on force feedback devices. The one omission to the chapter is action-mapping which would have been a useful part of the DirectInput API to cover when dealing with multiple input devices.

The DirectSound chapter is probably the smallest I’ve seen in any DirectX book, perhaps the author is a hardcore graphics programmer, or felt she couldn’t do justice to the subject in the limited space available, either way the chapter offers only the barest minimum of information on how to enumerate the sound devices, play back a sound, and adjust the volume.

The final chapter, and the only one that really deviates from the focus of the book, was actually the most surprising . The chapter puts together all of the aspects of the earlier pages in to a small “game”, then pleasingly shows how to create an installer for the game along with the DirectX runtime that Microsoft allows to be distributed with applications. Certainly useful knowledge for developers not familiar with this aspect of DirectX.

I’m pleased to say the CD-ROM is well organized and clearly laid out; each demo and chapter of the book is contained in its own directory and large “framework” files are avoided where possible.

There are only two short appendices; the first iterates the answers to each of the review questions and the second offers brief details covering the CD-ROM contents and how to install the DirectX SDK.

When all that’s needed are the essentials of DirectX, perhaps as a developer you’ve only lived life in the world of PlayStation 2 or GameCube consoles or OpenGL on other operating systems this book is an ideal introduction to the subject of DirectX graphics. It’s aimed at beginning programmers but there is much to recommend it to seasoned veterans who are just coming to Microsoft’s DirectX SDK, perhaps due to a move to the Xbox. The book does exactly what it says on the cover and doesn’t waste time informing, or insulting the reader.

Buy this book from Amazon.com now!

ABOUT THE AUTHOR

Wendy Jones devoted herself to computers while still in elementary school. She spent every free moment learning BASIC and graphics programming, as well as Pascal, C, Java and C++. As Wendy’s career in computers took off, she taught herself Windows programming and then began devoting any extra energy to expanding her programming skills in games. Her true passion became apparent when she accepted a job at Atari’s Humongous Entertainment as a game programmer working on both PC and console titles. She is currently working with PocketPC software and handheld gaming devices.

VERDICT

 

Beginning DirectX 9

beginningdirectx91.jpg Author: Wendy Jones
Publisher: Premier Press (Course/Technology)
ISBN: 1-59200-349-4
Pages: 332

Rating

7 out of 10

Pros

  1. A good introductory text to the graphi aspects of DirectX 9.
  2. Doesn’t waste your time with irrelevancy.
  3. Source code framework is easy for beginners to understand.

Cons

  1. Non-graphical aspects of DirectX 9 are given short shrift.
  2. Assumes the reader is reasonably well-veresed in C++.
  3. May be a little too terse for readers who have absolutely no other graphics programming background.

Buy this book from Amazon.com now!

Ernest Adams and Andrew Rollings on Game Design

Sunday, February 27th, 2005

ernestadamsandandrewrollingsongamedesign1.pngIt has been a year since I last spoke with Ernest Adams at Game Developer’s Conference 2003, where he mentioned that he was working on two books simultaneously—and vowed never to do it again. GDC 2004 has just passed and here I am, one year later, finally getting around to reviewing one of those books.

Andrew Rollings and Ernest Adams on Game Design by Andrew Rollings and Ernest Adams (the title of the book is a big clue as to who authored it), published by New Riders Group, is a thorough treatment of the art and science of game design for less-experienced interactive computer game designers. Adams is a regular contributor to both Game Developer magazine and Gamasutra, and a very vocal proponent of proper game design with many credits to his name. He authors the monthly “Bad Game Designer—No Twinkie!” [a.k.a. “The Designer’s Notebook”—ed.] column for Gamasutra, which is well worth reading through. This is also Rollings’ second book about designing computer games.

Game Design is divided evenly in two—there is a delta of only eight pages between the two sections—with an accompanying, comprehensive, set of appendices towards the end of the book.

The first half of Game Design discusses, in detail, game design, game designing, and game designers. Game Design opens with a chapter on what a game designer is and what they do, including the educational background and skill set that they should aspire too. It is followed by the obligatory “where do ideas come from” section. It is almost de rigueur that this chapter be included in almost any game development book that even remotely touches on game design. What differentiates Rollings’ and Adams’ contribution is how to refine the flow of ideas in to something useful, making them apply to your target audience.

There is a single chapter dealing with the issue of game play with many of the other chapters supporting it and building onto it. The chapter details with what game play is, how to recognize it, and maintaining consistency of mechanics and rules within the game world once achieved. The author’s position is to present game play as a series of challenges to the player, rather than as a series of choices. This is in counter-point to Meier’s definition. I don’t think Rollings and Adams present a complete and successful alternative, but it is a good alternative, and one that can be built on in the coming years just as we have built on the oft-quoted Sid Meier.

Rollings and Adams postulate that game design be drawn from the “story” model and acknowledge, briefly, that not all games require a story, but fail to expound on this latter viewpoint in any meaningful way.

Unlike many game design books, Rollings and Adams spend an entire chapter on user interfaces, walking through how bad interfaces to games can ruin an otherwise compelling experience. It is refreshing to read that the authors consider the user interface as part of the game design; I just wish the chapter could have been longer. Good and bad user interface design is a pet subject of mine and all too often there has been much grinding of teeth while playing a game with poor UI.

The final chapter in the first half of the book discusses, game balance at length, describing it as the “internal economy” of the game. I think this is a bit of a misnomer, since to begin talking of economy leads to discussion of resources and supply—amateur economic theory—and this “economic” view has a tendency to shunt thoughts down a single track. However, the authors are careful to point out that “game balance” is more than just managing of internal game resource mechanics, describing at length the qualitative as well as the quantitative.

These first eight chapters and they make worthwhile reading for anyone professing an interest in game design, presenting Rollings’ and Adams’ views on play and design. Some of the points they raise don’t quite mesh with me and other people I’ve asked, however, they’re valid, consistent and they make you think. And that’s the point of design; there are no “correct” answers, only “best fit” answers.

The next ten chapters (the second half of the book) iterates each of the major game genres as we understand them today, analyzing how the mechanics of play and design apply and are implemented in each individual genre. Some of the genres given decent coverage are First Person Shooters, Real-Time Strategy, Role-Playing Games, and Sports Sims—the last subject being something that Ernest Adams knows a considerable amount about (given his early game design career) and so the chapter is perhaps the most comprehensive and well-researched.

Rollings and Adams have really gone out of their way to make Game Design useful to academic and non-academic readers alike. The book is promoted as a potential college text and at the end of each chapter is a worksheet with exercise questions that students can use to work through many of the points raised in the preceding pages; questions are posed for class discussion and the chapter is summarized in bullet-point form on a page or two entitled “Putting It Together”.

In summary, when you require an introductory text to game design, Game Design will easily fulfill that need with a thorough and rigorous overview.

This book review originally appeared March 30th, 2004 on Gamasutra, the official webzine of Game Developer Magazine that I write for regularly.

Buy this book from Amazon.com now!

ABOUT THE AUTHOR

Andrew Rollings has a B.S. in Physics from Imperial College, London, and Bristol University, and has worked as a technical consultant spanning the games industry and the financial industry since 1995.

Ernest Adams is an American game design consultant currently based in England. He has developed online, computer, and console games for everything from the IBM 360 mainframe to the Sony PlayStation 2.

VERDICT

 

Ernest Adams and Andrew Rollings on Game Design

ernestadamsandandrewrollingsongamedesign1.pngAuthor: Andrew Rollings & Ernest Adams
Publisher: New Riders Group
ISBN: 1-5927-3001-9
Pages: 621

Rating

8 out of 10

Pros

  1. Thorough coverage of the subject matter.
  2. Good introductory text to game design.
  3. Useful as a college textbook.

Cons

  1. Quickly glosses over many deep subjects.
  2. Attempts to cover too much ground in one book.
  3. Coverage of individual genres is mostly filler.

Buy this book from Amazon.com now!

The Art of 3D Computer Animation and Effects, 3rd Ed.

Sunday, February 20th, 2005

theartof3dcomputeranimationandeffects3rded1.gifOh man, is this book beautiful! Just browsing through the 500+ full-color images in The Art of 3D Computer Animation and Effects reminds me of why I entered the field of computer games and graphics in the first place.

Author Isaac Kerlow evidently loves his work, and put a lot of that love and what he knows from his position, as Director of Digital Production at the Los Angeles offices of The Walt Disney Company, into this book. (Incidentally, the company where one of my computer graphics students also now holds a position.)

It’s rare that I’ll read a book cover-to-cover twice in the same week, but to absorb the amount of detail that is Art of 3D pretty much requires it. I also kept getting distracted by the pictures. Each page carries so much eye-candy and brain-candy it’s like reading through an encyclopedia. You go in looking for one thing and wind up reading about something completely unrelated. Okay, so I’m a graphics geek and I’m geeking out on this book. It’s the kind of book you simply must geek out too. Did I mention the pictures already? All of the information and techniques presented are accompanied by a copious number of full-color images covering the last 50 years of computer animation. Art of 3D introduces many of the concepts that were pioneered in the pre-digital days and brings them right up to date.

Art of 3D should ideally be read cover-to-cover, though each section stands alone and can be read in a single sitting. Much of the material is taught in a semi-tutorial style, remaining platform- and software-agnostic, but presented in a manner that lets you follow along whilst at your computer. There are only a few images from various software packages included to illustrate a particular point.

It’s quite obvious Kerlow is a visual thinker and a great believer in lists. There are lists of team breakdowns, lists of standard software packages, lists of light source types—lists for everything. He even illustrates his lists with images.

Each section opens with a summary of what will be covered, jumps right into deep end of the material with appropriate images and illustrations, and finally wraps up with a list of terminology and points covered. The list is presented as bullet points to aid you in remembering the key items that were covered. Many sections also wrap up with a “Getting Started” piece for readers who are not sure how to approach the subject.

I’ve worked with quite a few art directors and game designers (as well as other programmers) who are incredibly talented and competent in their fields, but can occasionally lack the terminology for basic things such as camera movement or types of lights, and it then falls to me to doodle very poor illustrations on a whiteboard to explain my idea visually. I’ll be referring to Art of 3D a lot more when attempting this, as the simple comic-book panels illustrate key points perfectly. It’s not often you see the concept of ray-tracing explained using a pig in a top hat, a gopher holding a beer, and a strangely drawn human holding a daiquiri with an umbrella in it. I possess an entire shelf of books on cinematography techniques, and few are as succinct or clearly illustrated as the section in Art of 3D, using a wide eyed pig holding a Martini glass to illustrate the use of differing lenses, or dangling from badly knotted string for the time-freeze (a.k.a. bullet-time) effect.

Art of 3D really covers a lot of ground for the approximately 450 pages—everything from planning, workflow, production and personnel, through modeling, texturing, and lighting, right up to rendering “hacks” that modern studios will adopt to make sure they render all of the frames within the time constraints of a production schedule.

Though Art of 3D is aimed primarily at beginning to intermediate computer graphic artists, I think that many designers, programmers, and seasoned artists could really learn a lot from this book. You would need to spend years practicing traditional animation, computer graphics, stage lighting, cinematography, and many other techniques to know even a quarter of what’s covered in this book. While Art of 3D doesn’t profess to be an encyclopedic treatment of all these subjects, it does manage to give a good grounding in the small amount of space available to each section. The techniques and terminology I teach on my DirectX graphics courses are covered in vivid detail and I’ll certainly be introducing this book as recommended reading. Expect to see the 4th Edition of this book in a few years time with all of the great visual effects that were pioneered in the Lord of the Rings trilogy.

This book review originally appeared April 20th, 2004 on Gamasutra, the official webzine of Game Developer Magazine that I write for regularly.

Buy this book from Amazon.com now!

ABOUT THE AUTHOR

Isaav V. Kerlow is Director of Digital Production at The Walt Disney Company in Los Angeles, California. He is also a longtime active member of SIGGRAPH and the Visual Effects Society.

VERDICT

 

The Art of 3D Computer Animation and Effects, 3rd Ed.

theartof3dcomputeranimationandeffects3rded1.gifAuthor: Isaac Kerlow
Publisher: Wiley and Sons
ISBN: 0-471-43036-6
Pages: 451
Rating

10 out of 10

Pros

  1. Eye candy! Every technique is accompanied by images from games and movies that have implemented it.
  2. More eye candy! Each technical point is illustrated with appropriate diagrams.
  3. Covers almost every subject that applies to modern computer graphics.

Cons

  1. Could use a second volume to go further in-depth on many subjects.
  2. Eye candy! The beautiful pictures can distract you from your task.
  3. Only offers a broad overview of the subject matter.

Buy this book from Amazon.com now!

Graphics Programming Methods

Monday, January 24th, 2005

Graphics Programming Methods is another quality entry in the popular “Graphics” series from Charles River Media. The editor, Jeff Lander, who a few months ago wrapped up work on True Crime, (Activision) has been a long-time contributor to Game Developer  magazine and one of the editors for the Game Programming Gems  series, evidence that he is both really busy and has the engineering kung fu to compile books like this.

The archetypal Graphics Programming Methods presents its collection of thirty-four articles and whitepapers, all from industry veterans—several names I recognize and several more names I’ve worked with at various times in the past—on three distinct subjects of Animation, Geometry, and Rendering. Jeff Lander introduces each subject area where he covers some of the problems game industry engineers are facing and the state of the art of where we are today.

The individual articles are generally well written, self-evidently focused on a particular problem, yet not so constricted as to only be applicable to one particular development project. From having read many other graphics methods books, I find Lander did a particularly good job of selecting articles that have not been covered in those other books. While many of the articles in the individual sections complement each other, there is very little overlap either between themselves, or with other books.

Some of the articles are heavy on the math, so if you aren’t completely comfortable with linear algebra and calculus you may find some difficult to grasp—especially those concerning animation. There aren’t any new areas of math that game industry engineers haven’t been dealing with for years, but if you are new to the area it may devalue the book for you slightly.

The table of contents provides a few “stop and think” moments with the article titles, e.g. “Resolution of the Inverse Kinematic of an Articulated Structure Using the Jacobian Pseudo-Inverse”–titles where the author attempted to convey the subject matter of their article, and managed to completely obscure the fact by giving it such a wordy label. Upon first picking up the book, I was glad to see that the list of articles is most definitely not the usual “twenty different ways to skin a cat” applied to particle rendering or texture mapping.

Of the three sections in this book, I would have to say the Rendering section introduces the most new concepts and provides the most value. This isn’t to belittle the efforts of the contributors in the other sections, as every individual article is worth the price of the book. The Rendering section just stands out as one of the better collection of articles that I have come across, with the articles on illumination determination and illumination-based occlusion culling introducing ideas that can mean the difference between a low and high frame rate.

I’m currently teaching classes on how to implement animation systems, so the Animation section is immediately relevant to my students and I. The book really came along at a handy time as a collection that I can recommend. The articles covering “Real-Time Animation of Trees” and “Real-Time Multi-Resolution Dynamics of Deeply Hierarchical Bodies” (also applicable to trees) were useful and to the point for one particular lesson. The article covering “Collision Detection of Deformable Volumetric Meshes” I find to be interesting not only because I covered some of this subject as part of my undergrad project, but also because it will be one of the huge problems in the coming decade as our graphics hardware gets more powerful and environments become ever more realistic.

In the back of the book is a CD-ROM—with enough data on it that the publisher, Charles River, didn’t really have a choice but to supply a disc that contains source code to many, but not all, of the individual articles. Source code, where available, is either C or C++ and makes use of the DirectX 9 or OpenGL APIs for 3D graphics. The SDL is pressed in to service for any 2D elements. With articles that delve in to vertex shader and pixel shader technology the Nvidia CG toolkit is used.

For those articles where there is no source code, several movies have been thoughtfully placed in the CD-ROM directory referring to the article that present the idea graphically rather than as a purely abstract concept. Heck; even jaded game programmers like to look at eye candy.

Graphics programmers should add this book to their stack of “must own” titles that continues the legacy of the original Graphics Gems titles.