Game Development Reference
In-Depth Information
CHAPTER 14
Physics Engines
A physics engine is the part of your game that contains all the code required for whatever
you're trying to simulate using physics-based techniques. For many game programmers,
a physics engine is a real-time, rigid-body simulator such as the sort we've discussed
earlier in this topic. The open source and licensable physics engines available to you are
typically of the rigid-body-simulator variety. Some physics engines are rather generic
and are useful for general rigid bodies and particles; others include various connectors
and constraints, enabling ragdoll simulation. Still others focus on soft bodies and fluids.
Fewer actually focus on the physics of some specific thing, like a car or a boat. A simple
Internet search on the phrase “game physics engine” will generate many links to potential
options for your use. That said, you could always write your own physics engine.
Building Your Own Physics Engine
We're advocates of using physics where you need it. Sure, you can write a general-
purpose physics engine for a game, but if you're creating a game that doesn't require a
general-purpose physics engine, then don't write one. That may sound obvious, but
sometimes we are compelled to do more than what we need just so we can say we did
it. Aside from the effort involved, a general-purpose physics engine will probably be
less efficient than a purpose-built physics engine. By purpose-built , we mean designing
the physics engine specifically to suit what you're trying to simulate. For example, a
general-purpose physics engine would surely include particles, rigid bodies, connectors,
other force effectors, and who knows what else—fluids, perhaps—and be fully 3D. But
if you're writing a 2D side-scrolling game for a smartphone, you certainly won't need
3D with the associated complexities involved in dealing with rotation and collisions in
3D; and if your game simply involves throwing a ball of fuzz at some arbitrary junk,
then you may not even need to deal with rigid bodies at all. We're being somewhat
facetious here, but the point is, unless you must write a general-purpose physics engine
—say, if you plan to license it as a middleware product or use it in a variety of game
 
Search Nedrilad ::




Custom Search