Year of Award
2016
Document Type
Thesis
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
Keywords
video game programming, contention, profiling, lock free, mutex, instrumentation
Subject Categories
Other Computer Sciences | Software Engineering | Systems Architecture | Theory and Algorithms
Abstract
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.
Recommended Citation
Gross, Angela, "ChilliSource Game Engine Particle System Study" (2016). Graduate Student Theses, Dissertations, & Professional Papers. 10813.
https://scholarworks.umt.edu/etd/10813
HDF5 file containing the CSV data collected during the case and observation studies.
Included in
Other Computer Sciences Commons, Software Engineering Commons, Systems Architecture Commons, Theory and Algorithms Commons
© Copyright 2016 Angela Gross