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 presenting two talks on new ways to improve your math library, followed by an afternoon series of tutorial sessions relating to mathematical tips and tricks used in Procedural Content Generation (PCG).
Math for Game Programmers takes place on Tuesday, March 20, 2018. Seating is on a first-come, first-served basis.
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.
The Guildhall at SMU
Squirrel Eiserloh is a game programming faculty Lecturer at The Guildhall, SMU's top-ranked game development graduate program. Since he graduated from Taylor University in 1996 (B.A. Physics) he has been working as a professional game developer in the Dallas area, and has contributed to over a dozen commercial game titles spanning a number of platforms and genres, from early online MUDs to action/adventure/role-playing videogames, casual games, puzzle games, experimental games, and shooters. He currently serves as a co-chair of the Dallas chapter of the International Game Developers Association, and coordinates the Math for Game Programmers sessions at the annual Game Developers Conference in San Francisco. In his spare time he develops indie games, helps organize 48-hour experimental game jam sessions, and participates in the Dallas Society of Play, a local indie game developer collective.
GDC Tutorials offer a full day of in-depth information and cover a range of game development disciplines on Monday and Tuesday, March 19-20, 2018. View all GDC Tutorials on Session Scheduler.