top of page

Chase Morgan

Data Collection Start/End

KickBack Data Collection

Interactive Media & Immersive Audio Technologies Sprint 5

11/06/2025

Sprint Overview

Sprint five is over and with came even more work continuing my project further and further. This sprint unfortunately was a bit slow in terms of progress; however, with this sprint I am basically done with all integration for KickBack and can now shift my focus onto Trucking Time fully. I was not able to get started on Trucking Time as their designer was really hard to get into contact with during each class meeting. I will plan on continuing that next sprint!

During this sprint I completed seven cards which included an annotated bibliography, defining more parts of my data collection process, adding a method for starting and ending data collection, adding audio implementation, and finalizing data collection for KickBack. Overall, all of these changes practically mean that my work in Unity should be over! The only thing left is to just get the music needed for testing and wait for the final build for KickBack.

 

Audio implementation was something on my radar for a while; however, was not really necessary for a majority of the project. The current implementation hooks into whatever is deemed as the main camera for the game. It has systems to detect whether or not that is the main camera or not. It will basically judge each camera whether or not it has the potential to be the main camera and slowly trickles down to just one camera that should be the main one. It will then add an audio source to it and apply the audio that represents which ever group the user was placed into. The reason for all of this set up is that we want to make sure that this audio is always heard by the player and the way that audio works in Unity is that it takes the location of the nearest audio listener which is usually on the player's camera. I cannot, however, just look for an audio listener because some projects use FMOD which disables that component.

During this sprint I also added a method for the user to start and end data collection. Before, it was all through the debugger which was always going to be temporary and for debugging if things went wrong. I debated for a long time between making this process automatic or manual and went the manual route because it is less prone to errors. All I have to do is tell the user to press F5 to start and F6 to end data collection. When they start the system automatically starts collecting data and when it ends it will upload the data. Upon upload the application will close as the data collection process is complete and this session is over. Using Unity Awaitables makes this entire process super easy and streamlined!

Another thing that was completed this sprint was the completion of all data tracking for KickBack. After my meeting with the designer and an update to what data I would actually need for my project a streamlined list of variables was created. Now the system collects the user ID, date, game name, group, total memories, memory average, and total playtime. I also updated my internal systems to use Unity Awaitables instead of C# Tasks to keep all systems managed by Unity Runtime. The system ties a Func<bool> with an Action delegate in order to only track data, when necessary, which saves performance. If the boolean function returns true it will then call the necessary action involved. The action doesn't need to update a data element, but that is mostly what it is used for. Using Unity Awaitables also allows me to bind an asynchronous function to a standard Action which is used to delay data calls for certain elements that could have a boolean flag be true for longer than one frame. If it wasn't delayed the boolean flag would hold true for numerous calls indirectly adding more data than what is necessary, keeping the data accurate!

Other work this sprint included creating an annotated bibliography, meeting with KickBack's designer, and notifying my committee members of my project progress. Overall, this sprint was a bit light; however, I am on good track to hit the ground running this next sprint! Thanks for reading!

Audio Implementation

bottom of page