The Narrator [VortExperience - A Ludum Dare 50 Dev Log]
I have received a lot of great response to my Narrator for my entry The VortExperience. I am beyond pleased, because I definitely leaned into this aspect the hardest. I had been wanting to incorporate voice lines into a game jam, and with a spark while brainstorming this idea, I realized this was a prime opportunity.

Many players have picked up on the inspiration for my Narrator ('Cave Johnson' from Portal 2). I felt that adding a punchy narrator would add a colorful backdrop to a game mechanic that, while solid, was repetitive. I wrote the script over time as ideas came to me while working on the game. I knew that the lines would be a mixture of progression (triggered by specific events) and banter (triggered by the passage of time), and I organized it into phases of the game. I also knew that I wanted to incorporate (limited) captions, so I identified which parts of the lines would be "extra."

Recording the lines was fairly simple, and I had a lot of help from Audacity's labeling and 'Export Multiple' feature.

What remained was to decide on the implementation. I have a habit of writing code generically for re-use, but that can lead to overly complex systems that are not easy to debug inside a game jam. I took some advise from a friend and focused on more bespoke implementations, even if I couldn't resist a bit of inheritance. Here's the structure I ended up using.

Overall, I'm part surprised and partly pleased at how well it worked out. Using this system, I was able to easily add voice lines that would either auto-advance after a certain timeout OR would wait until a certain event trigger had been received by the specific _Script Manager_ (these were handled by a switch statement of cases where booleans were checked). Even though there were still bugs I encountered, I was able to work around them for the jam.
If you're curious to see the implementation for yourself, I have just recently posted the source code to my git repository.
In Conclusion
Did spending time writing, recording, and implementing a conditional script player take away from other mechanics or plot events? Most definitely (just peek at my Trello board). Was it worth it? I'll leave that for you to decide :) Personally, I think I struck a good balance and I am happy with the experience I crafted for the jam. Above all, these are usually exercises in scope management for me, and I think I did well this time.
Thanks for reading! If you haven't played The VortExperience yet, I would appreciate your consideration!
_- Hawkin_
Source: ldjam.com archive
Next postA Post Mortem [The VortExperience]