Physics for Game Developers (英語) ペーパーバック – 2001/11/15
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
本書を読むにあたって、物理の専門知識は必要ない。ただこの本は、基本的な大学レベルの古典物理学の知識を持っていることを前提に書かれている。また、三角法、ベクトル、および行列と（方程式と恒等関数は付録に参照が載っている）、陽関数の微分、積分を含む大学レベルの微積分学に関する理解も必要だろう。（Book Description, Amazon.com）
Offers advice for using physics concepts to increase the realism of computer games, covering mechanics, real-world situations, and real-time simulations.商品の説明をすべて表示する
It seems to me that when you're confronted with a book title like Physics for Game Developers, you see an undercurrent of "rocks for jocks" in that. It implies that this is physics for folks who never glommed onto physics. As someone who never got above a C in any science class after Biology I in tenth grade, then, it would seem to be right up my alley. Not so. The first five chapters of the book will kill you if you're not familiar with various forms of scientific notation. (Know your Greek letters!) It doesn't help that Bourg has overloaded a few common operators for his own means (for example, he uses * for dot product and ^ for conjunction, when coders will be used to seeing those to symbols used for multiplication and exponentiation respectively). That said, however, once you get past the first five "refresher" chapters, the book picks up a good deal. There's code! And once Bourg is describing what code does, rather than attempting to impart more abstract (well, okay, "abstract" is not the right word, but hopefully you know what I'm getting at), his language becomes a great deal clearer, at least to those of us who think in code rather than physics. Worth picking up if you're in the market for this sort of book, but you might want to pick up a copy of Physics for Dummies to help you through the first part. ***
To be sure, you do not need to be a physics expert to learn something from this book, but it is assumed that you have a basic level of understanding of classical physics. Anyone who has taken high school or college level physics should have no trouble understanding the material. You should also be proficient in trigonometry and vector and matrix mathematics. Certain topics in calculus are also discussed, so some degree of familiarity would be useful, but is not required. However, a strong C++ programming background is required if you are to tackle integration of a physics system into your existing game engine. This book is a great starting point for readers who aspire to understand "Game Physics" by Eberly, which is far more advanced and academic in tone.
I shall talk about the details of the book in the context of its table of contents:
PART 1 - MECHANICS PRIMER
This consists of chapters 1 through 5 and starts out with simple concepts such as Newton's laws and builds up until you get to rigid body dynamics. If you are already are up to speed on mechanics, you can skip these chapters.
PART 2 - REAL-WORLD EXAMPLES
Chapters 6 through 10 focus on modeling so that you have a solid understanding of the nature of certain physical systems. The craft selected were chosen because they best illustrate the specific physical phenomenon and concepts that are relevant to a wide variety of problems. The systems modeled are projectiles, aircraft, ships, hovercraft, and automobiles.
PART 3 - REAL-TIME SIMULATION
This field is discussed as it applies to games in chapters 11 through 17. These chapters focus on the fundamentals by walking through the development of the 2D simulation of hovercraft, a 3D flight simulation, a generic multibody simulation in 3D with collision response, and a simulation of cloth using particles and springs.
The appendices show implementations in C++ of classes for vector operations, matrix operations, and quaternion operations. The book's bibliography provides information sources for mechanics, mathematics, and specific technical subjects such as aerodynamics. All of the code for the book can be downloaded from the book's website at O'Reilly and Associates. I highly recommend this fun and comprehensive book for anyone getting started in adding physics to game programs.
Secondly, the code examples are sparsely documented. This causes trouble if one wants to transcode one into another language (as I did in taking the flag simulation to Java). One is reduced to blinking and trying to figure out whether the first or second dimension of an array in the author's example corresponds to the flag's height along the pole or its "fly". He's presented a lot in this code, and there are so few comments in it to clarify the arbitrary choices within that a great benefit would have been realized had he added a few. Even had they been taken from the text of the chapter, they would have produced a more valuable result.
I would love to see Mr Bourg attempt a second edition that attended to some of these needless editorial choices.
The US, Burma (or whatever they demand we call it this year) and Libya are the only places where such cryptic units as *slugs*, feet, pounds, mi/h and psi are used.
If you think in Metric, like most of the world, you will be wondering why you wasted your money on this book.