Postmortem Audio Manager
What went well
I learned a lot making this project, I learned how to make a scriptable object making it easy to create and not needing to have that object in the scene. I also learned how to use system serializable classes instead of just having them inheriting from mono behavior. There were so many things that I had no idea how to do before, for example, the customs inspectors I wrote for almost every script in my audio manager I had no Idea how to do before. It was also really interesting learning how to use the customs inspector to make functions run without even starting the game.
What went not so well
I didn’t plan out how my sound manager would work into much detail and I wish I did that beforehand describing all functionality I still had an idea of how I wanted my sound manager to work but I could plan things like pitch and volume in more detailed. I could have saved time by implementing functionality as I did in the finale from the start instead of how I did it in the beginning of the project. For example, I could have made it so you have more than one sound event on each sound trigger instead of just making it work with one as I have now from the start if I had thought about how my audio manager would work from the beginning.
I also could have planned out the project better so I more knew what I needed to do by when to have my audio manager done by a certain time. I felt like I started working on it way too late and that it gave me less time for others to try it out and give me feedback on it so I would have enough time to implement new features making it easier for others to use my audio manager.
A lot of the feedback that I got from people using my audio manager was that there were too many things to do, to many step so people said that it would be easier to just call the functions from a class like using an observer pattern instead of needing to add an extra script to each object you want sound from. I still think that with the functionality my audio manager had even if it wasn’t too much it would be easier to use mine then writing functions for all of that and just calling those functions.
Also, a lot of the functionality that people wanted me to add to my audio manager were pretty unreasonable I think for example text to audio and audio text which I have no idea how to do at all and I feel like it would take a lot of time to implement.
This seems to be something that always show up in my future lessons which are pretty bad but I always seem to write to little documentation for my projects. Not only documentation but really planning out and thinking about what you want to do. I should have really looked in more to what functionality I wanted and maybe looked into some other audio managers and seen how they did it and then written a really detailed TDD about it so I could easily make it and my scripts would work perfectly together.
Make a schedule with milestones for your project so you can early on have a working prototype for people to test and give you feedback so you can improve and structure it around how people want to use it. Schedule in time for polish and for extra functionalities you easily now what you need to do when to have time to implement extra functionalities. Also early on write instructions for how to use your project you can get feedback on it and improve on it over time and so you can see if people can you use your project without you being there to help them set it up.
Ask for help as soon as possible if you are stuck on your project there is no point wasting time if you are not getting anywhere.This will save time for your project.