As gamers and gaming platforms continue to evolve and diversify, so has the complexity and variety of problems facing the modern game programmer. Creating the latest code for graphics, gameplay, animation, physical simulation, and artificial intelligence requires thorough knowledge of the necessary mathematical underpinnings.
This tutorial continues the tradition of the "Math for Programmers" tutorial by bringing together some of the best presenters in gaming math to concentrate on the mathematics essential for creating unique and sophisticated graphics, plausible interactive physical simulations, and interesting and nuanced gameplay. The day will focus on the issues of game development important to programmers and includes programming context and guidance throughout. This year's topics include random generation and manipulation, ratings systems, neural networks, ballistic projectiles, N-way quaternion interpolation, fast convex hull construction, mesh cutting and deformation, and procedural texture coordinate generation.
All Access, GDC Conference + Summits, or GDC Summits Pass required.
Math for Game Programmers: Solving Nintendo's CodinGame Challenge
Mike Acton (Insomniac Games)
CodinGame is a site where coding puzzles are presented and you can solve them online for fun. One of the "Very Hard" puzzles is a Nintendo sponsored puzzle, which grabbed Mike's attention. Although he will walk through his specific solution, the solution itself isn't the point. He'll walk through his whole process from figuring out what the problem actually was, to researching a couple of finer math points, to optimizing the final result. It's a case study in process rather than a particular solution. He'll cover the initial data analysis to figure out the problem (and all the dead ends I went down that didn't produce fruit) and the various strategies for solving (and rediscovering some of the finer points of Knuth's work). Concretely, he'll also provide math background on polynomials, galois fields, polynomial factorization and the Berlekamp algorithm. He'll tie specific processes or approaches to other problems others are likely to encounter in games and tools (e.g. CRC) to ensure it's relevancy and to keep it from being just some solution to some random puzzle.
Math for Game Programmers: The Math of Deep Learning
Alex Champandard (creative.ai)
Neural Networks are back and this time they work! There are many applications for games, in particular generating unique textures or finding patterns in replay data. Recent progress with deep architectures can be attributed in part to the underlying technology, progressing at a fast pace since the late 2000s. This session will look at the mathematics behind deep neural networks, starting with the most commonly used functions and representations, then looking at gradient-based optimization, finally tying in the most recent research.
Math for Game Programmers: Harmonic Functions and Mean-Value
Nicholas Vining (Gaslamp Games)
In this session, Nicholas Vining of Gaslamp Games will discuss two useful parameterizations for procedural geometry, with applications in mesh manipulation and UV generation. Mean value coordinates are a generalization of Barycentric coordinates which allow a vertex in a planar triangulation to be expressed as a convex combination of its neighbors. Harmonic functions are twice-continuously differentiable over a manifold, useful when texturing complex meshes of unknown topology and genus with surface details (rust, cracks). Nicholas will go over how he constructs them by discretizing the Laplace operator using cotangent weights, then solving a constrained least-squares optimization.
Math for Game Programmers: B-Rep for Triangulated Polyhedra
Gino Van den Bergen (dtecta)
Gillian Smith (Northeastern University)
This talk discusses the B-rep structure for efficient manipulation of triangulated polyhedra, including convex-hull computation (e.g. Quickhull, EPA) and mesh cutting. B-rep is efficient both in traversal times, storage requirements, and ease of serialization. Boundary traversals needed for cutting operations or silhouette computation are fast since they avoid the use of a modulo-3 operation. This presentation will show code for common operations on this structure then conclude with an improvement to Quickhull convex hull construction which increases its speed threefold.
Squirrel Eiserloh is a veteran game programmer, designer, and educator in the Dallas area. He has been working as a professional game developer since he graduated from Taylor University in 1996 (B.A. Physics), and has contributed to over a dozen commercial videogame titles spanning a variety of genres, from early online MUDs to action/adventure/role-playing games, casual games, puzzle games, and first-person shooters (including the Quake, Counter-Strike, and Medal of Honor franchises). He is currently an indie game developer and a full-time faculty Lecturer in game programming and design at The Guildhall, SMU’s best-in-class game development graduate program. He also coordinates the Math for Game Programmers sessions at GDC and serves on the board of his local IGDA chapter.