Awakening Wednesday: Metis NVL and Cutscenes in Awakening
Hi! I’m Julia, the other programmer and artist on the team. This week I’m here to talk about Metis NVL, the RPG/visual novel cutscene system behind Awakening and some of our other games. Most recently, we used it for Ars Harmonia, which is currently out for Windows Store and Windows Phone.
Since RPGs and visual novels have a ton of story content, our top priority in designing Metis NVL was making this content easy to author. In particular, we wanted to be able to simply write out cutscenes and have the engine handle all of the dialogue switching, et cetera. So before we decided exactly how we wanted anything to work, we settled on the following system for writing cutscene scripts:
Any text on its own without a name attached becomes narration, any text with a name gets entered as dialogue, and any line preceded by a @ is code.
Having decided how we wanted scripts to work, we set about figuring out how to implement them. We settled on using Lua as a scripting language on top of our C# codebase, then running custom processing on our scripts to convert them to proper Lua code. For example, the processor replaces the Name: Text dialogue lines with calls to the dialogue function. Using Lua allows us to retain the full power of a scripting language, and it’s also extremely portable, which we figured would come in handy if we ever decided to switch platforms. As it so happens, we decided to switch from MonoGame to Unity halfway through development, so this decision paid off for us.
Here’s an example of a script and corresponding screenshot from Ars Harmonia:
It’s been a lot of work to get all of this functioning, but we hope it’ll save us a ton of effort in the future and allow us to spend more of our time producing content for you guys.