|
Essential Math for Games Programmers |
|
Current DescriptionAs the visual quality of games has improved, more attention has been given to other aspects of a game to increase the feeling of reality during gameplay and distinguish it from its competitors. One of the most rapidly growing fields is physical simulation, as shown by discussion boards, the latest games, and a recent burst of articles and papers. Creating such a simulation may appear to be a daunting task, but given the right background it is not too difficult, and can add a great deal of realism to animation systems, and interactions between avatars and the world. This tutorial deepens the approach of the previous years' Essential Math for Games Programmers, by focusing in on this topic of physical simulation. It, like the previous tutorial, provides a toolbox of techniques for programmers interested in creating physics engines, with references and links for those looking for more information. The focus of the course is to study the simulation pipeline and show how problems along the way can be solved and optimized using standard 3D mathematical concepts and engineering know-how. Topics include rigid body dynamics, verlet and implicit integration methods, constraint systems, collision detection, collision response, rag doll and IK systems. Potential special topics include dynamic destruction, fluid dynamics and using GPUs to improve simulation performance. Sample code libraries and examples are provided. Current MaterialsSlidesFully updated versions of the slides and sample code used to present the tutorial at GDC 2008 are as follows:
See below for further materials from past years that may be useful. The code samples in particular contain code for simple dynamics and collision. Past MaterialsFully updated versions of the slides and sample code used to present the tutorial at GDC 2007 are as follows:
Fully updated versions of the slides and sample code used to present the tutorial at GDC 2006 are as follows:
For those slides in PowerPoint Show format, the original PowerPoint materials are also available upon request. In past years this tutorial was more general, providing a toolbox of techniques for programmers interested in improving their 3D background. The focus of the course was to follow the rendering and dynamics pipelines and show how problems along the way can be solved and optimized using 3D mathematical concepts. The following PowerPoint Show files and PDFs have been collated from all six years of the tutorial and organized by subject. They provide background material for those who are interested in the basics of 3D math and programming. The original PowerPoint materials are also available upon request. Core MathematicsRenderingAnimationSimulation
Demo CodeThis collection of demo code is from the GDC 2005 presentation, and covers
many of the topics listed above. The following archive has all the files
you need to compile and run the demo code on Windows. You will need at
least Microsoft Visual Studio 6. They should transfer to Microsoft Visual
.NET with no trouble. In the past we have supported the Mac, but at the moment none of us have
a working machine much less one with MacOS X. The following files are
provided for historical purposes only, and are no longer supported. You
will need Codewarrior 6, at least MacOS 8, and the OpenGL SDK. The copyright on these files is held by Red Storm Entertainment and Ubisoft. You can use them for personal purposes, but cannot redistribute them in source or binary form. No warranty is implied; use at your own risk. For more polished code and demos with a less restictive license allowing them to be used in game development, and that can be compiled with non-Microsoft compilers, MacOS X, and Linux, please purchase a copy of our book. Copyright © 2006, James
M. Van Verth |
|