Viking Village Telemetry - 2019
Unity 2018, Design Analytics Tool
- Telemetry System Design & Implementation
- Data Object Pooling
- Local Settings Import Functionality
- Minor Data Validation Checking
- Build and Editor Visualization Tool
Working through this project helped me learn in multiple ways. I worked closely with instructors to make sure I understood their needs for the final product and to get their feedback. I brushed up on JSON serialization within Unity. I had to make a build-compatible version of Unity's debug gizmos. Also, since this project was to be used in an advanced optimization course, I needed to make the telemetry system both lightweight and able to operate effectively with poor performance and low frames.
I love doing telemetry projects. For me, there's something cool about being able to programatically track and visualize what's going on and display it in such a way that it can be easily understood by technical and non-technical people alike. This project was made at the request of senior instructor Scott Henshaw, and based off of Quin Henshaw's base project, in order to replace and improve upon aging demo projects we used for several classes at VFS.
The result of the project was an easy-to-implement set of scripts that allows someone who's non-technical (but familiar with Unity) to start publishing telemetry data to a local directory or public URL within fifteen minutes. Furthermore, the project could be built and distributed to gather telemetry data on any number of players.
There is a built-in telemetry visualizer, so users can easily see the telemetry data they're tracking. A local telemetry settings JSON file allows users to adjust what kinds of telemetry actions are being tracked- such as whether to track unit movement (the most common and thus expensive data) or not- how many data records to send at a time, and whether to enable or disable the entire visualizer or telemetry system altogether. With only writing a few additional lines of code, a user can track any sort of data they need telemetry on.