Year of Award
Master of Science (MS)
Department or School/College
Michael Cassens, Johnathan Bardsley
video game programming, contention, profiling, lock free, mutex, instrumentation
University of Montana
Other Computer Sciences | Software Engineering | Systems Architecture | Theory and Algorithms
The majority of modern game engines utilize intricate objects called particle systems which are a collection of many particles that together represent an object without well-defined surfaces. This thesis discusses the results of studying and stressing particle systems within ChilliSource, an open-source game engine written in C++, with the goal of understanding a complex system and exploring possible optimizations that could be made to it. The studies performed were driven by metrics generated with custom profiling classes that kept track of things like the number of particles rendered, how long the engine spent rendering particles, or even how long a background thread that updated particles waited for a locked resource to release. These metrics supported experiments that revealed the inner workings of an elaborate system and aided in the creation and dissection of optimizations. The methods and results of these studies will aide anyone interested in reducing contention in large data structures either by using multiple mutexes, data structure "sharding", or hardware-based "lock free" implementations. They are also useful to any developer in need of profiling a complex system.
Gross, Angela, "ChilliSource Game Engine Particle System Study" (2016). Graduate Student Theses, Dissertations, & Professional Papers. 10813.
© Copyright 2016 Angela Gross