Year of Award


Document Type


Degree Type

Master of Science (MS)

Degree Name

Computer Science

Department or School/College

Computer Science

Committee Chair

Travis Wheeler

Commitee Members

Michael Cassens, Johnathan Bardsley


video game programming, contention, profiling, lock free, mutex, instrumentation


University of Montana

Subject Categories

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.

csgeps_angela-gross_thesis_data.hdf5 (543 kB)
HDF5 file containing the CSV data collected during the case and observation studies.



© Copyright 2016 Angela Gross