Beginning OpenGL Game Programming  :

March 27
2005

beginningopenglgameprogramming1.jpgBeginning OpenGL Game Programming, by Dave Astle and Kevin Hawkins, offers a simpler introduction to programming with the OpenGL application programming interface (API) than many other introductory OpenGL books out there, including their earlier work, OpenGL Game Programming.

The book is an introductory text that will find a home with programmers who have worked exclusively either in the DirectX world of Microsoft Xbox and Windows or have only had opportunity to use another proprietary API such as RenderWare.

Beginning OpenGL covers most, but not all, of the current OpenGL specification and the OpenGL Utility Toolkit (GLUT) — a platform independent API making it easier to use OpenGL across a variety of platforms.

The authors have mostly concentrated on the beginning aspect, making the book a short, focused, and easy read — useful to accomplished programmers with no experience using a 3D API and those programmers coming to OpenGL for the first time — presenting an OpenGL overview and avoiding the tougher and deeper aspects beyond the fixed function pipeline.

While Beginning OpenGL attempts to remain platform agnostic, the primary platform focus is on the popular and dominant Microsoft Windows. All of the examples are engineered for this single operating system, with an entire chapter dedicated to the specific issues you’ll face when implementing a solution on a Win32 platform utilizing OpenGL. However, the authors have made every attempt, where possible, to make the information relevant to programmers developing for other platforms such as Mac OSX and Linux.

Astle and Hawkins wisely avoid non-OpenGL development topics, preferring to concentrate on their chosen subject; kudos to the technical editor for not succumbing to the temptation, which was so prevalent in early Premier Press books, of including the proverbial kitchen sink. Having said that, you can’t write a book about game programming without briefly touching on other subjects like the game loop, user input, and audio.

While the book is pitched as a introductory text, it is aimed squarely at programmers capable of putting together non-3D applications. Both authors are seasoned professionals: Hawkins from the hard-core simulation sector and Astle from the game development field with a lot of cross-platform experience. They make no bones about assuming you know your way around a compiler, C++, and the basics of the math used in 3D graphics. The authors haven’t assumed you know what a projection matrix is, or how to handle a camera frustum, but they are expecting you to know how to add two vectors, or multiply two matrices.

The CD contains all of the expected source code from the book with accompanying Microsoft Developer Studio projects, an extension library that simplifies working with OpenGL, and eight bonus chapters that did not make it in to the printed book. These bonus chapters were a complete surprise that are outside of the core of the book.

Congratulations are in order to the book’s editor for realizing that they didn’t quite fit with the central theme, but including them anyway as “optional” material. These chapters cover some not so “beginning” subjects such as quadrics, curves, and surfaces, plus “off-topic” chapters discussing how to utilize DirectAudio and DirectInput; I’ve already stated that the book is very Microsoft Windows centric to begin with. There’s also the obligatory, relatively coherent math primer, which also covers some basic 3D graphics theory, e.g. texture mapping and lighting. I’m sure I’ve see this primer chapter in another Premier Press book so it might be one of their boiler-plate chapters.

The CD also includes a bonus first-person shooter game for you to play — with full source code and a chapter on how it was created — that demonstrates most of what was covered in the various chapters such as fog, animated meshes, view transformations, camera movement, and 2D text.

Since Course Technology has been steering the publication of Premier Press’s books, they have continued to move from strength to strength. With the publication of Beginning OpenGL Game Programming, the publisher is truly showing a strong future commitment to the game developer market, along with a high level of service to individual game developers by issuing quality publications.

Beginning OpenGL Game Programming is a perfect introduction to developers not yet up to speed on OpenGL development issues.

Buy this book from Amazon.com now!

ABOUT THE AUTHOR

Dave Astle has been programming games professionally for several years,working on titles for Microsoft Xbox, Sony PlayStation 2, Nintendo GameCube, PC and wireless devices. He is a lead engineer in the Gaming and Graphics group at Qualcomm, Inc. and is the cofounder and executive producer of GameDev.net. He has written or contributed to many game development books and has spoken at industry conferences, including the Game Developers’ Conference.

Kevin Hawkins is a lead software engineer at RAYDON Corporation where he designs and develops training simulations for a variety of customers, including the U.S. military. Kevin is the cofounder and CEO of GameDev.net, the leading online community for game developers. He holds a master’s degree in Software Engineering and a bachelor’s degree in Computer Science from Embry-Riddle University.

VERDICT

Beginning OpenGL Game Programming

beginningopenglgameprogramming1.jpg Author: Dave Astle and Kevin Hawkins
Publisher: Premier Press (Course/Technology)
ISBN: 1-59200-369-9
Pages: 310

Rating

7 out of 10

Pros

  1. Stays very true to the core subject.
  2. Attempts to remain OS agnostic where possible.
  3. Lots of bonus material on the CD.

Cons

  1. Concentrates on OpenGL for Microsoft Windows
  2. Buried gems on the CD that many people won’t be aware of unless they buy the book.
  3. Covers only the fixed function pipeline of OpenGL.

Buy this book from Amazon.com now!

Posted in Book Reviews | No Comments »

No related posts.

Core Techniques And Algorithms In Game Programming  :

March 27
2005

052007-2225-coretechniq1.jpgCore Techniques and Algorithms in Game Programming is one of those rare programming books that you really can judge by the cover.

The author, Daniel Sanchez-Crespo—a regular contributor to Byte (Spain), Gamasutra and Game Developer—did an excellent and thorough job in the 800 pages that he had to work with. Throughout the book, even though English is not the author’s native language, he is clear and concise with every aspect of the technology he covers.

This is actually one of the books I recommend for students on my game programming courses at the Academy of G.E.T. in Hollywood—confirmation, in my mind, of the book’s intent of being a textbook.

Sanchez-Crespo begins with a brief chronology of games, moves on to the very basics of game architecture and the process of programming, then ramps up from there, thoroughly examining every aspect of the technology that makes a modern game, including the oft-neglected “input/update/render” loop. He doesn’t hang around either: he jumps feet-first into the common data structures (lists, queues and stack) and the not so common (deques, graphs and trees) that you will encounter, and examines what the Standard Template Library (STL) provides off-the-shelf. Sanchez-Crespo recognizes the power of the STL but also concedes that not all games should trade ease of implementation for degradation in speed.

Graphics plays a large part in the book, with several chapters dedicated to 2D and 3D rendering, along with the effects achievable in each area. 3D is a large subject and suitable for an entire volume all to itself, and Sanchez-Crespo performs a stellar job keeping each chapter tightly focused on the particular subject, introducing each technology at the proper pace.

3D is further divided to include indoor and outdoor rendering systems using chunked terrain rendering and portals of all types. Trailing the generic 3D sections is a large detailed detour in to character animation that covers skinned meshes and kinematics (both forward and inverse), as well as proper facial and limb animation systems.

The second largest area of this book is AI. Sanchez-Crespo really knows this subject. Outside of a dedicated book on game AI such as AI Programming Wisdom, this book offers some of the most comprehensive information on the subject delving into single unit and multiple unit navigation and coordination, using core AI techniques such as finite state machines and rule-based systems. The AI section alone makes owning the book well worth the shelf space.

Some of the shorter chapters cover networking, scripting, performance tuning, DirectX and OpenGL and their differences, an overview of the math required to get to grips with modern games technology, and finally the obligatory “further reading” section.

Just so you don’t get the impression this book is all hardcore programming, Sanchez-Crespo includes a chapter covering the cinematic aspects of games—something everybody involved in 3D games should learn, though it’s too brief for my liking. There’s even a chapter on design patterns, what they are, and their usage, including usability patterns (how the user interacts with the user interface)—a rare detour for a programming book.

Because the book is mostly API agnostic, it’s not going to suddenly go out of fashion like many API or narrow-focus books based on a particular technology.

Any book on general game programming is going to have to be brief in some areas simply because the domain is so broad. Sanchez-Crespo does a good job, covering so much in such a brief space you wonder how he got it all in.

Any subject you can think of pertaining to game programming is in this book, which is its strength and weakness. To do the subject justice, the book needs to be longer, and to the author’s credit he did the best job in the 800 pages provided. It’s a strong foundation book for aspiring game developers and there’s content in there for experienced developers too. It’s also a book you can give to a not-so-technical game designer and have them read through it to get a good foundation in many of the techniques and technologies that are being implemented by games programmers in studios all over the world. This book will definitely have a long shelf life.

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

ABOUT THE AUTHOR

Daniel Sanchez-Crespo Dalmau is a proffesor at Pempeu Fabra University in Barcelona, where he serves as founder and director of Europe’s first Master’s Degree in Video Game Creation. He has been teaching game programming for over six years, giving conferences all over Europe. He has been a course reviewer for SIGGRAPH and a member of the advisory board for ArtFutura. He is a frequent contributor to Byte Magazine Spain, Game Developer Magazine, and the Gamasutra web site, publishing over 40 articles. He is the founder of Novarama, and independent studio that focuses on creating innovative forms of entertainment for anything from PCs and consoles to cell phones and handheld devices.

VERDICT

Core Techniques And Algorithms In Game Programming

052007-2225-coretechniq1.jpg Author: Daniel Sanchez-Crespo
Publisher: New Riders
ISBN: 0131020099
Pages: 912

Rating

10 out of 10

Pros

  1. Covers a lot of technical areas in-depth.
  2. Author explains the areas very carefully.
  3. The book contains a lot of information, not code dumps.

Cons

  1. Could use extra volumes expanding on the information presented.
  2. Some sections such as input & sound are far too brief to be useful.
  3. Lack of an accompanying CD-ROM of code and examples.

Buy this book from Amazon.com now!

Posted in Book Reviews | No Comments »

No related posts.

Beginning DirectX 9  :

March 6
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!

Posted in Book Reviews | No Comments »

Related posts:

  1. Nook : Underwhelmed

 

Close