Weekly Update – April 26, 2024

There was some scope creep on the demo MVP this week. I hadn’t planned on adding new enemies or rooms for the demo, but I encountered too much repetition during playtesting. I also hadn’t planned on adding an audio manager. But, to get the missing sounds into the demo and fix the issues with the existing sounds (both of these objectives were in scope), the audio manager was necessary.

  • New content
    • New enemy: Snake. It has a 50/50 chance of causing Poison and is best fought at a distance.
    • New rooms: Snake Den, Rat Nest, Crates, Shrine of Carnath.
    • New sound effects: UI Panel Open/Close, Game Over.
Shrine of Carnath
Snake Den
  • Miscellaneous enhancements
    • Some Crates contain Snakes.
    • Skeletons have a chance of carrying random items.
    • Bats and Spiders no longer appear as random enemies (they’re too weak to be challenging individually).
    • Starting weapons take longer to break than they previously did.
  • New audio manager. I previously used Unity’s built-in audio along with a utility class I wrote to play and spatialize audio. This setup had known limitations and bugs – certain actions couldn’t be synched with sounds, some sounds were cut off before they finished playing, concurrent sounds sounded horrible. When I started this project, as both a Unity and game audio novice, I didn’t know how to best handle audio. I have a better sense now of what works, what doesn’t, and what’s needed. A new audio manager technically isn’t in the demo scope, but it will resolve a number of bugs that are in scope. I considered writing my own audio manager and using a commercial solution. I chose the latter, specifically FMOD. FMOD is widely used in the game industry and provides a strong audio framework, which helps compensate for my inexperience in this area. To use FMOD, I had to create a new project in FMOD Studio, import all existing audio assets, and swap all uses of Unity audio with the FMOD equivalent. The last step was the most work; there were hundreds of ScriptableObjects with AudioClip fields. The AudioClip fields were changed to AudioResource fields. AudioResource is a custom class that contains an FMOD Event Reference. This approach decouples the audio implementation; if I later move away from FMOD I can do so without having to update all of the ScriptableObjects again. Unfortunately, I didn’t have the forethought to do this originally, and had to individually update the hundreds of audio fields to the correct AudioResource using the Unity Inspector. Once that was complete, I tested the migration. There were a few simple bugs to fix, and I missed setting some of the AudioResources in the first pass. All things considered, moving to FMOD was easy.

The demo MVP status is as follows:

  • Play Test 3: 100%
  • Performance optimization: 100%
  • Minimap: 100%
  • Major UI/UX issues fixed: 65%
  • Missing liquid content: 50%
  • Missing sound effects added: 50%
  • Balancing: 40%
  • Major bugs fixed: 35%

Next week, I’ll add more sound effects and add missing actions to the context menu.


Posted

in

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *