Post Mortem
This post-mortem will provide a breakdown of the project’s milestones, highlighting its successes and areas where improvements can be made. This breakdown will serve as a valuable learning opportunity to identify shortcomings to be avoided in future projects. In short, I feel that this project was a success, aided significantly by the amount of pre-production planning and researched involved in the creation of my project statement. This in combination with the use of Agile development practices allowed milestones to be completed at a high velocity, with few unforeseen challenges.
In my statement, I identified four key goals which I considered pillars of success for this project. The four goals were as follows:
- Scalable – User-customizable settings for each feature on a per-emitter basis.
- User-friendly – Relatively easy to implement and compatible with, but not dependent on audio middleware.
- Dynamic – Real-time calculations to provide accurate simulation with dynamic emitters in changing environments (providing that all geometry is appropriately tagged, and any doorways have the appropriate components).
- High Quality – Produces convincing and accurate data (relative to the level of quality selected) for simulating propagation in geometrically complex environments.
Scalability was the primary goal for this project, hence the name “Scalable Audio Propagation”. I feel that this goal was achieved to the standard I was aiming for when planning, as the emitter component provides many customization options for optimization and quality. One feature that I would’ve liked to include would be computation cost estimates displayed on each emitter. These estimates would be updated in real-time as settings are changed to increase the quality of the propagation.
Creating a user-friendly installation and configuration process was a high priority when designing this system. SAP is targeted towards Indie developers, so reducing the learning curve as much as possible was a primary goal. I feel that this goal was achieved as the system primarily relies on only two components, which integrate well with a pre-existing FMOD integration. However, although the process of implementing and configuring the CPath Volume for obstruction pathfinding ended up being fairly simple, it is an easy process to do incorrectly. A solution that could be implemented in future iterations would be a system to automatically detect the bounds and density of occluding geometry, to generate a correctly sized and optimally configured pathfinding volume automatically.
The system currently is very dynamic, with support for both moving emitters and a listener. Additionally, occlusion also supports dynamic environment changes at runtime, providing all geometry is correctly setup with the custom trace channel. Dynamic environments are however not supported with obstruction calculation. Customizable Pathfinding does support pathfinding around movable geometry, but integrating support for this within SAP was out of scope for the timeframe of this project. Adding support for this in the future would greatly improve the versatility of this system.
With the highest quality occlusion and obstruction, this system produces very high quality propagation simulation that is a significant improvement over traditional single-line occlusion. This quality could be improved further with the addition of perpendicular occlusion point calculation for the listener, rather than occlusion tracing to a single point. This would result in a smoother occlusion effect when walking around geometry, and is a feature present in the system created by Scott, that inspired my occlusion system design (Scott, 2022).
In conclusion, I consider this project a great success as it demonstrates that high quality, fully scalable audio propagation can be achieved without the use of existing, more complicated solutions. The development of this project has served as a valuable learning process, providing me with both experience and knowledge that I will be able to transfer into my future work. This project will be freely available to download and use in its current state, fixes will be made to ensure stability in the near future.
References
Text References
- Microsoft (2023). Project Acoustics Overview – Microsoft Game Dev. [online] learn.microsoft.com. Available at: https://learn.microsoft.com/en-us/gaming/acoustics/what-is-acoustics.
- Trautman, D. (2022). Customizable Pathfinding in Code Plugins – UE Marketplace. [online] Unreal Engine. Available at: https://www.unrealengine.com/marketplace/en-US/product/customizable-pathfinding [Accessed 11 Apr. 2023].
- West, C. (2021). White boxing? Grey boxing? What? [online] Medium. Available at: https://gamedevchris.medium.com/white-boxing-grey-boxing-what-6aa9cfa3b0e4.
- Shores, I., 2021. Portals:The Secret Weapon of AAA Game Audio Spatialization. Redmond, WA, Digipen Institute of Technology.
- Yadav, D. (2022) Bug Fixing in Game Development, Code studio. Available at: https://www.codingninjas.com/codestudio/library/bug-fixing (Accessed: April 26, 2023).
- Raghuvanshi, N. et al. (2010) “Precomputed wave simulation for real-time sound propagation of dynamic sources in complex scenes,” ACM SIGGRAPH 2010 papers on – SIGGRAPH ’10 [Preprint]. Available at: https://doi.org/10.1145/1833349.1778805.
- Scott, H. (2022) Home, Scott Game Sounds. Available at: https://scottgamesounds.com/ (Accessed: April 26, 2023).
- Soundly (2023) The complete sound effects platform, Soundly. Available at: https://getsoundly.com/ (Accessed: April 27, 2023).
Engine Assets & Functionality
- Created by myself (Jeffrey, 2023)
- CPathfinding (Trautman, 2022)
Audio Assets
- Created by myself (Jeffrey, 2023)
- Royalty free (Soundly, 2023)