Newton Game Dynamics Introduction
May0
Realistic physics simulation is a feature that many game developers
had tried to implements in their games for many years, but with
very limited success. Two of the more important reasons for the
failure are:
-
Lack of computers power to solve complex physics algorithm.
-
Lack of understanding the nature of the problem from
a physical and mathematical point of view.
With the introduction of dedicated hardware to handle the graphic
load and with the extraordinary increases of CPU power in the pass
5 years, reason one is not longer an excuse not to have good real-time
physics in any video game. However reason number two remained
as a very difficult barrier for many developers.
This is not a coincident; the problem is that because the basic principles
of Newtonian mechanics are so simple, they mislead many programmers
into thinking it is easy to implement a physics simulation for a game.
The result is some partial solutions to a general problem, common
approaches are: springs or penalty based dynamic, heuristic iterative
LCP solvers, or just plain simple Newton second law of physics applied
to single rigid bodies with complete disregard of inter rigid body interactions.
While these approaches are fast and useful they only cover a very small
aspect of rigid body dynamics. When they try to apply these concepts to
different problems this solutions fail miserably.
Newton Game dynamics is a comprehensive physics solution for real
Time constrained dynamics simulation of physics environments that try to
minimize these problems by taking away the tweaking aspect of physics
simulation from the programmer. We try to arm the programmer with a
standard tool that can be used for different sets of rigid bodies configuration.
Integrating a general-purpose physics engine with a graphics application
can be quite intimidating in the beginning. This is in part because many
programmers think of the physics engine the same way they think of the
graphic engine, and those are two very different beasts.
To make this transition a little easier we are developing a series of tutorials
starting with the most fundamental aspect of the engine progressively
covering the more advance ones in order of increasing complexity. We
recommend reading then in order, because more advance tutorial will use
concept covered in basic versions.
These tutorials are writing using the OpenGl graphic library, and
Microsoft visual studio 6. There are also converted to visual studio net.
To run them you need to download the Newton SDK from here:
http://www.newtondynamics.com/ you also need to have visual studio 6
or visual studio net installed on your computer.
We will assume the programmer has a basic knowledge of c and cpp
programming as well as a better than basics understanding of graphic
programming. A good understanding of Newton laws of physics is helpful too.