Home    General Programming    Artificial Intelligence    Math    Physics    Graphics    Networking    Audio Programming    
Audio/Visual Design    Game Design    Production    Business of Games    Game Studies    Conferences    Schools    Contact   
Optimizations
Quaternions
Geometry
Randomness
Floating-Point
Splines
Inverse Kinematics
Euler Integration
Collision Detection
All Articles
Game Programming Gems
Game Programming Gems 2
Game Programming Gems 3
Game Programming Gems 4
Game Programming Gems 5
Game Programming Gems 6
Game Programming Gems 7
AI Game Programming Wisdom
AI Game Programming Wisdom 2
AI Game Programming Wisdom 3
AI Game Programming Wisdom 4
GPU Gems
GPU Gems 2
GPU Gems 3
ShaderX
ShaderX2
ShaderX3
ShaderX4
ShaderX5
Massively Multiplayer Game Development
Massively Multiplayer Game Development 2
Secrets of the Game Business
Introduction to Game Development
GDC Proceedings
Game Developer Magazine
Gamasutra


Game Programming Math: All Articles


Implementing High-Quality PRNG on GPUs

Wai-Man Pang, Tien-Tsin Wong, and Pheng-Ann Heng
ShaderX5

Collision Detection Shader Using Cube-Maps

Rahul Sathe
ShaderX5

Floating-Point Tricks

Chris Lomont (Cybernet Systems Corporation)
Game Programming Gems 6

Solving Systems of Linear Equations Using the Cross Product

Anders Hast (Creative Media Lab, University of Gävle)
Game Programming Gems 6

Efficient Sequence Indexing for Game Development

Palem Gopalakrishna (Indian Institute of Technology)
Game Programming Gems 6

Sphere Trees for Speedy BSPs

Dominic Filion (Artificial Mind & Movement)
Game Programming Gems 5

CSG Construction Using BSP Trees

Octavian Marius Chincisan
Game Programming Gems 5

Using Geometric Algebra for Computer Graphics

Chris Lomont
Game Programming Gems 5

Minimax Numerical Approximation

Christopher Tremblay
Game Programming Gems 5

Oblique View Frustums for Mirrors and Portals

Eric Lengyel (Naughty Dog)
Game Programming Gems 5

Faster Quaternion Interpolation Using Approximations

Andy Thomason
Game Programming Gems 5

Safe Random Number Systems

Shekhar Dhupelia
Game Programming Gems 5

Minimal Acceleration Hermite Curves

Tony Barrera, Anders Hast, Ewert Bengtsson
Game Programming Gems 5

Spline-Based Time Control for Animation

James Van Verth (Red Storm Entertainment)
Game Programming Gems 5

Implementing Improved Perlin Noise

Simon Green (NVIDIA Corporation)
GPU Gems 2

Using the Covariance Matrix for Better-Fitting Bounding Objects

Jim Van Verth (Red Storm Entertainment)
Game Programming Gems 4

Fast Contact Reduction for Dynamics Simulation

Adam Moravanszky, Pierre Terdiman (NovodeX AG)
Game Programming Gems 4

Fast Collision Detection for 3D Bones-Based Articulated Characters

Oliver Heim, Carl S. Marshall, Adam Lake (Intel Corporation)
Game Programming Gems 4

Solving Accuracy Problems in Large World Coordinates

Peter Freese (NCsoft Core Technology Group)
Game Programming Gems 4

The Jacobian Transpose Method for Inverse Kinematics

Marco Spoerl (KMW)
Game Programming Gems 4

Critically Damped Ease-In/Ease-Out Smoothing

Thomas Lowe (Krome Studios)
Game Programming Gems 4

Extracting Frustum and Camera Information

Waldemar Celes (Computer Science Department, PUC-Rio)
Game Programming Gems 4

Hardware Skinning with Quaternions

Jim Hejl (Electronic Arts Tiburon)
Game Programming Gems 4

Hardware Skinning with Quaternions

Jim Hejl (Electronic Arts Tiburon)
Game Programming Gems 4

Nonuniform Splines

Thomas Lowe (Krome Studios)
Game Programming Gems 4

Implementing Improved Perlin Noise

Ken Perlin (New York University)
GPU Gems

The Statistics of Random Numbers

James Freeman-Hargis
AI Game Programming Wisdom 2
Abstract: Random numbers are used most heavily by Artificial Intelligence and games in general. To ignore their potential is to make the game predictable and boring. Using them incorrectly can be just as bad as ignoring them outright. Understanding how random numbers are generated, their limitations and their capabilities, can remove many difficulties of using them in your game. This article offers insight into random numbers, their generation, and methods to separate good ones from bad.

Filtered Randomness for AI Decisions and Game Logic

Steve Rabin (Nintendo of America)
AI Game Programming Wisdom 2
Abstract: Conventional wisdom suggests that the better the random number generator, the more unpredictable your game will be. However, according to psychology studies, true randomness over the short term often looks decidedly unrandom to humans. This article shows how to make random AI decisions and game logic look more random to players, while still maintaining strong statistical randomness. Full source code, ready to drop into your game, is supplied on the book's CD-ROM.

Floating-Point Exception Handling

Soren Hannibal (Shiny Entertainment)
Game Programming Gems 3

Using Vector Fractions for Exact Geometry

Thomas Young (PathEngine)
Game Programming Gems 3

T-Junction Elimination and Retriangulation

Eric Lengyel (Terathon Software)
Game Programming Gems 3
Abstract: This article describes how to detect possible sources of these seams in complex 3D scenes and how to modify static geometry so that visible artifacts are avoided. Since T-junction elimination adds verticies to existing polygons (that are not necessarily convex), we also discuss a method for triangulating arbitrary concave polygons.

Constrained Inverse Kinematics

Jason Weber (Intel)
Game Programming Gems 3

Fast Base-2 Functions for Logarithms and Random Number Generation

James McNeill
Game Programming Gems 3

More Approximations to Trigonometric Functions

Robin Green (Sony Computer Entertainment America)
Game Programming Gems 3

Quaternion Compression

Mark Zarb-Adami (Muckyfoot Productions)
Game Programming Gems 3

Considerations for Movement and Physics in MMP Games

Jay Lee (NCsoft Corporation)
Massively Multiplayer Game Development

Collision Detection of Deformable Volumetric Meshes

Kenny Erleben and Jon Sporring (University of Copenhagen)
Graphics Programming Methods

Automatic Parameterizations on the Cube

Ignacio Castaño (University of Seville)
Graphics Programming Methods

k-D Tree Face Portals with Solid Geometry

Conor Stokes
Graphics Programming Methods

Resolution of the Inverse Kinematic of an Articulated Structure Using the Jacobian Pseudo-Inverse

Juan M. Cordero and Javier Matellanes (University of Seville)
Graphics Programming Methods

A Fast All-Interger Ellipse Discretization Algorithm

Tony Barrera (Barrera Kristiansen AB), Anders Hast (Creative Media Lab, University of Gävle), and Ewert Bengtsson (Center for Image Analysis, Uppsala University)
Graphics Programming Methods

A Fast and Simple All-Interger Parametric Line

Tony Barrera (Barrera Kristiansen AB), Anders Hast (Creative Media Lab, University of Gävle), and Ewert Bengtsson (Center for Image Analysis, Uppsala University)
Graphics Programming Methods

Collision Shaders

Takashi Imagire
ShaderX2

Recursive Dimensional Clustering: A Fast Algorithm for Collison Detection

Steve Rabin (Nintendo of America)
Game Programming Gems 2

Sphere Trees for Fast Visibility Culling, Ray Tracing, and Range Searching

John W. Ratcliff (Sony Online Entertainment)
Game Programming Gems 2
Abstract: The article presents an algorithm and demonstration application that manages thousands of objects in motion that are continuously maintained as a collection of hierarchical bounding spheres in a SphereTree. The design goal for this algorithm has been to make the 99-percentile case spend almost no CPU time updating an object in motion within the tree structure. Queries against the SphereTree perform more tests than other data structures, but this is mitigated by the fact that the tree can be maintained using very little CPU time. This data structure is ideally suited for gross culling of massive numbers of moving objects in a large world space. It doesn't matter if the objects are moving at widely disparate speeds, or even if many of them are not in motion at all. It also has a very low cost when objects are inserted and removed from the tree with great frequency.

Compressed Axis-Aligned Bounding Box Trees

Miguel Gomez (Lithtech)
Game Programming Gems 2
Abstract: The axis-aligned bounding box (AABB) tree structure has proven to be very useful for accelerating intersection queries on sets of geometry. The data structure is easy to implement, the built structure is numerically well conditioned, and like all binary trees, they have O(log n) search time. This article explains several techniques that can be used to lower the overall memory footprint of an AABB tree to 11 bytes per triangle.

Direct Access Quadtree Lookup

Matt Pritchard (Ensemble Studios)
Game Programming Gems 2
Abstract: This article presents a general-purpose optimization for quadtree access that improves performance in three ways over the traditional implementations: 1) by eliminating node traversal and the unnecessary cache-misses it causes, 2) by requiring fewer instructions and CPU cycles overall vs. a best case traditional approach, and 3) by doing so in a compact amount of time and with minimal memory accesses regardless of what depth in the tree the target node resides in.

Floating-Point Tricks: Improving Performance with IEEE Floating-Point

Yossarian King (Electronic Arts Canada)
Game Programming Gems 2

Using Bloom Filters to Improve Computational Performance

Mark Ficher (Beach Software)
Game Programming Gems 2

Vector and Plane Tricks

John Olsen (Microsoft)
Game Programming Gems 2

Fast, Robust Intersection of 3D Line Segments

Graham Rhodes (Applied Research Associates)
Game Programming Gems 2

Inverse Trajectory Determination

Aaron Nicholls (Microsoft)
Game Programming Gems 2

The Parallel Transport Frame

Carl Dougan
Game Programming Gems 2

Programming Fractals

Jesse Laeuchli
Game Programming Gems 2

Genuine Random Number Generation

Pete Isensee (Microsoft)
Game Programming Gems 2

Smooth C2 Quaternion-based Flythrough Paths

Alex Vlachos (ATI Research), John Isidoro
Game Programming Gems 2

3D Collision Detection

Kevin Kaiser
Game Programming Gems
Abstract: This article will help lay the groundwork for building an accurate physics simulation by starting with one of the most crucial parts of a real-time physics engine: 3D collision detection. The two basic algorithms this article covers are: Bounding Sphere Collision Detection and Triangle-to-Triangle Collision Detection.

Multi-Resolution Maps for Interaction Detection (Collision Detection)

Jan Svarovsky (Mucky Foot Productions)
Game Programming Gems
Abstract: This article describes a method for reducing the number of proximity tests that must be performed for games with large numbers of game objects of varying sizes.

Octree Construction

Dan Ginsburg (ATI Research)
Game Programming Gems

Loose Octrees

Thatcher Ulrich (Slingshot Game Technology)
Game Programming Gems

Computing the Distance into a Sector

Steven Ranck (Midway Home Entertainment)
Game Programming Gems
Abstract: This article describes a simple and fast algorithm for determining where a point is between the edges of a 2D quad (or sector). The result is a unit floating point number, where 0 indicates that the point lies on the leading edge, and where 1 indicates that the point lies on the opposite edge. The sector may be any four-sided, 2D convex shape.

Integrating the Equations of Rigid Body Motion

Miguel Gomez
Game Programming Gems

Implicit Euler Integration for Numerical Stability

Miguel Gomez
Game Programming Gems

Fast Math Using Template Metaprogramming

Pete Isensee
Game Programming Gems

Interpolation Methods

John Olsen
Game Programming Gems

Polynomial Approximations to Trigonometric Functions

Eddie Edwards
Game Programming Gems

Wavelets: Theory and Compression

Loic Le Chevalier
Game Programming Gems

A Fast Cylinder-Frustrum Intersection Test

Eric Lengyel (C4 Engine)
Game Programming Gems
Abstract: This article presents a quick algorithm for determining whether an arbitrary cylinder potentially intersects the view frustum (and thus whether the object is visible).

Quaternions for Game Programming

Jan Svarovsky
Game Programming Gems

Matrix-Quaternion Conversions

Jason Shankel
Game Programming Gems

Interpolating Quaternions

Jason Shankel
Game Programming Gems

The Shortest Arc Quaternion

Stan Melax
Game Programming Gems

Predictable Random Numbers

Guy W. Lecky-Thompson
Game Programming Gems

34% off discount
"Latest from a must have series"
Game
Programming
Gems 7



"Cutting-edge graphics techniques"
GPU Gems 3


"Newest AI techniques from commercial games"
AI Game
Programming
Wisdom 4






Home