Merritt Lum
Multimedia Digital Artist
Artstation (3D works):
https://www.artstation.com/merrittlum121
Contact:
mgl13@sfu.ca
Date:
March-April 2023
Software Used:
Unity (w/ C# programming), Blender, Audacity
Overview
A final project for SFU's Sound Design course, Flight is a choose-your-own-adventure interactive story experience with a particular focus on audio soundscapes, with the path selection process, along with individual scenes, having a variety of associated audio feedback. Flight was developed technically and visually by myself, using Unity and Blender, off of the concept and writing of group member Ryan Heeps, who, along with teammates Raymond Chan and Jeremy Felix, recorded and mixed the audio. For myself, this project was primarily an experience in learning Unity whilst incorporating prior learnings across 3D and programming, as well as in creating such a project collaboratively.
​
Early Stages
Initial iteration was based off of some early concept drawings by Ryan, which laid out the general aesthetic, interaction design and overall concept - however, the specific story direction, and by extension the particular environments and sounds needed, were generally unclear. As such, the early stages of work on my end were simply in building the basic framework and placeholder assets. Eventually, landing on the main narrative concept, the below prototype was created.
Project Type:
Interactive Story, Audio Experience
Roles:
Programming, 3D Modeling, Narration, General Dev
Early unity prototype, having basic functionality but lacking refined visual elements or sounds.
Unity
Arguably the main focus of the project on my end, the majority of my work was in coding & implementing various frameworks in Unity whilst figuring out the software. Eventually, I landed on the overarching following structure (though a better implementation would likely be recognizable to anyone with more coding experience):
​
- Each set of narration, audio, subtitles, backgrounds and scene choices are localized in an "AudioScene" object.
- These each reference a variety of audio, UI, background, etc. objects, with subtitles stored in a parallel array with timers.
- Upon path selection, or reaching the end of narration (if no choice exists), a controller changes the active AudioScene.
Unity layout of the final version.
Late Development
From prototype presentation to final deadline, we only had a week of time (on top of our other projects) to get Flight to its final version. As such, I made an effort to focus on coding the essential elements and frameworks, and to then move on to other aspects - that said, a variety of hard-to-solve bugs (primarily relating to specifics of Unity) had me occasionally detour towards additional, particularly visual aspects to stay motivated - regardless, the frameworks of the game were largely sorted out at the end.
​
Due to this, though the script and narration was only properly finished the day before the deadline, their implementation was relatively painless; as I had spent a majority of development time on creating robust frameworks, it was simply a matter of putting in narration, path selections and subtitle timings into the boxes I had created earlier, along with some last-minute flair touches (such as the background transition effect).
Basic snow & rain effects were initially planned to be more widespread in the story, and were somewhat left in as a demo of capabilities.
The simplistic aesthetic allowed for visual elements to be made somewhat quickly, though I wish I had more time to make elements more cohesive.
Reflections
Looking back on the project, while I feel there is a lot to be improved, a good deal of its problems were simply consequences of its development constraints; for example, though I likely overburdened myself in handling all Unity, coding & visual implementation (with those aspects suffering as a result), it was hard to circumvent this given how we were all inexperienced in creating in Unity, especially in a collaborative, much less remote setting. That said, this has, at least, motivated me to look into ways to better collaborate remotely on such projects, and has more generally made me look to reconsider how I approach learning software.
​
Regardless, the experience overall felt worthwhile to me in motivating my learning of an important piece of software, alongside serving as an opportunity to test previously-gained skills. As a first Unity project, I feel that this was generally a good starting point, and allowed me to explore most major parts of the software to some extent. Though time constraints in particular left several aspects lacking (ex. I planned to clean up & add more to the flying animations), I still feel that this project generally turned out well and was enjoyable to make.
​
​