Physics for Game Developers (英語) ペーパーバック – 2001/11/15
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
本書を読むにあたって、物理の専門知識は必要ない。ただこの本は、基本的な大学レベルの古典物理学の知識を持っていることを前提に書かれている。また、三角法、ベクトル、および行列と（方程式と恒等関数は付録に参照が載っている）、陽関数の微分、積分を含む大学レベルの微積分学に関する理解も必要だろう。（Book Description, Amazon.com）
Colliding billiard balls. Missile trajectories. Cornering dynamics in speeding cars. By applying the laws of physics, you can realistically model nearly everything in games that bounces around, flies, rolls, slides, or isn't sitting still, to create compelling, believable content for computer games, simulations, and animation. Physics for Game Developers serves as the starting point for those who want to enrich games with physics-based realism. Part one is a mechanics primer that reviews basic concepts and addresses aspects of rigid body dynamics, including kinematics, force, and kinetics. Part two applies these concepts to specific real-world problems, such as projectiles, boats, airplanes, and cars. Part three introduces real-time simulations and shows how they apply to computer games. Many specific game elements stand to benefit from the use of real physics, including: *The trajectory of rockets and missiles, including the effects of fuel burn off *The collision of objects such as billiard balls *The stability of cars racing around tight curves *The dynamics of boats and other waterborne vehicles *The flight path of a baseball after being struck by a bat *The flight characteristics of airplanes You don't need to be a physics expert to learn from Physics for Game Developers, but the author does assume you know basic college-level classical physics. You should also be proficient in trigonometry, vector and matrix math (reference formulas and identities are included in the appendixes), and college-level calculus, including integration and differentiation of explicit functions. Although the thrust of the book involves physics principles and algorithms, it should be noted that the examples are written in standard C and use Windows API functions.商品の説明をすべて表示する
Amazon.com で最も参考になったカスタマーレビュー (beta)
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.
As others have noted, there are many mistakes in the book. I found this out the hard way while trying to implement a rigid body simulator. Even using corrections from the errata (which there are many and apply to key formulas), I could not even get remotely reasonable behavior. After a collision, even a small one, objects would blow up and fly off to infinity. After a great deal of debugging and checking to make sure my implementation followed the equations in the book, I fired up the "CrashTest" example from the book and found that this *is* the behavior of the book's implementation. The simulation time is cut short in the book's example to hide that it blows up (which you can still see a split second of). If you increase the hard-coded simulation time beyond 2 seconds, the objects in the scene vanish as they fly off to infinity. I feel cheated to say the least that the author can't produce a single working example, let alone attempt to explain how to make one.
If you're considering buying this book, don't. If you want to convince yourself not to, visit O'Reilly's website, download the example code, and see how terrible this book really is.
I read this book expecting to get an insight into game and simulation physics and was disappointed. On most cases, the book gives quick introduction to the problem and then jumps straight to the equations. Therefore, if you just want to implement physics for your game without learning all the principles involved, this is the book for you. On the other hand, if you want to get a feeling of physics and go a little deeper, it is not.
Furthermore there are some details that you may want to consider. First, the book works mainly with the imperial system of units which I find confusing. Second, all the source code is for Windows. Third, there are lot of places where statements are made without a hint of an explanation or a reference, which is annoying if you want to understand what is happening.
Overall, the book is clear and concise. It gives a good set of equations that you may need for your game programming, and is good to have around for quick reference. But if you are serious about physics I recommend getting a more advanced book.
- 洋書 > Computers & Technology > Programming > Game Programming
- 洋書 > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- 洋書 > Education & Reference
- 洋書 > Humor & Entertainment > Puzzles & Games > Video & Electronic Games
- 洋書 > Professional & Technical > Professional Science > Physics
- 洋書 > Science > Physics
- 洋書 > Science > Technology