Disclaimer: We are in no way affiliated with Articy Draft, Unreal Speech, or Unreal Engine. We simply found a workflow that incorporates these tools and want to share how they help us create our game on a shoestring budget.
The problem:
Game narratives are constantly changing during the production of a video game. They need to deliver an engaging story with lovable characters, respond to player choices and input in believable ways, and leave enough room for the game’s gameplay. This means that the tools we use to create a video game narrative need to allow for rapid iteration and a flexible approach.
In film, there is a clear process that begins with a script that, once defined, is relatively static and provides directors with everything they need to know to create the film.
We've tried using a “Screenplay” approach several times in the past for “Ruth's Journey” and it's never worked for us for multiple reasons:
-
You can never predict everything a player will expect to do using your game's mechanics. Adding new content was a slow process, as we usually implemented content in larger batches between playtests. Because of this, playtests were done infrequently.
-
A linear script does not easily translate into an interactive experience that responds to player input. The script format does not lend itself well to creating a branching narrative for video games.
-
We wanted to offer a vertical slice that included the final narrative and voiceover lines, but larger setups and rewards didn't work in a short 30-minute experience. Players were missing the larger context of the playable scenes.
-
Often a scene that worked on paper wouldn’t immediately work in game and would require a lot of tweaking to get right, because we hadn’t considered all the variables when writing the script.
Defining a new approach:
We knew we needed a new approach. We wanted an approach that would allow us to iteratively work on the story, in the same way we worked on the gameplay mechanics and level design. We wanted to focus our efforts on creating a horizontal slice, rather than a vertical slice, since experiencing each scene in context with the others is an important aspect of what makes the final experience satisfying to play. This seems to be relatively unique in the narrative game genre, where the “fun” of playing comes from experiencing a complete story.
We wanted to reduce the amount of guesswork that occurred in the process between the scene idea on paper and the implemented level.
Description of the tools:
We knew we had to start with the right tools. We had to shorten our iteration times and get to playtesting sooner.
One of the tools we decided to adopt was Articy Draft 3, which includes very useful integration with Unreal Engine. This quickly became the foundation of our new development approach. Its flexible editor allowed us to easily write branching dialogue, track variables and character profiles, and generate temporary VOs via text-to-speech.
In addition to this, our programmer has created a tool to generate more sophisticated VO assets using “Unreal Speech’s API”. This has been a great addition to our workflow, as it helps us identify issues with the pacing and flow of our VO without having to hire, record, and re-record voice actors for lines that might get cut or rewritten a couple of times.
Using this approach, we were less concerned with writing perfect dialogue from the start. Instead, we focused on writing and implementing as many scenes as possible in a short amount of time, to create a first playable version of the entire game.
Overview of a single branching dialogue in Articy Draft.
Level scripting via custom functions:
We have implemented some common level-scripting functionality via “custom functions” within Articy Draft. This allows our narrative designer to “script” important level functionality directly into Articy Draft, without having to set up code in Unreal Engine.
For example, it allows us to have characters walk to specific locations and interact with objects in the world. It could also be extended to play custom animations.
Setting up these features in Unreal Engine requires some effort and we recommend a good knowledge of Unreal Blueprint and C++ for successful integration.
Using these tools we were able to create a 40-minute playable demo in a month.
Everything in this demo’s 12 scenes is still rough, an early draft, but it gives us a good idea of how a scene might play out and allows us to start playtesting right away.
Challenges:
Integrating Articy Draft into your Unreal Engine project is not an easy task. Although there are some good tutorials available from the Articy team, we also found help in the “Unofficial Articy Draft Discord Community”. Together with our programmer, it took us about 1 month to get this workflow up and running and work out the bugs.
Early Playtest:
Then we would start testing, first on our own, then with friends and players in our audience, to better understand which scene ideas worked and which needed to be tweaked.
We started doing weekly “story hours” where we would play out scenes and analyze the motivations, goals, backstory, and believability of each character moment. This allowed our team to quickly identify plot holes and helped us flesh out our game world and characters in a fun and interactive way. These “story hours” also had the side effect of being very inspiring, as they helped us see the potential of what each scene could eventually become.
Pre-production goals:
To complete the pre-production of “In Our Nature”, we aim to build a complete Vertical Slice using the current approach. The plot of our game is fully outlined and many scenes have been written in a first draft.
Implementing a scene in Unreal takes a developer about 1 day. With the amount of content needed to tell the story of the game, there is still work to be done on our game mechanics, such as dialogue triggers and narrative elements, to further streamline the implementation process.
In the past, we’ve often had a tendency to try to nail down a single scene as much as possible or immediately resolve a major story issue. Focusing on delivering an early Horizontal Slice has helped us mitigate that tendency. It’s helped us stay committed to building the first playable version of “In Our Nature” first.
We’re still halfway through this process, but after 3 years of development, working on the game has never been so fun and collaborative.
Conclusion:
During the pre-production phase of a project, making an interactive story playable should be the main priority.
As with all aspects of game development, approaching the writing process iteratively allows for great stories to emerge.
Development tools that reduce iteration times and help developers build their stories in a playful way should be considered.
Our goal at Nifty Llama is to create immersive stories with believable characters and big emotional stakes. Our new approach helps us achieve these goals.
Understanding as quickly as possible whether a story works as a game saves us time and money and helps us tell better stories.
We hope we’ve inspired you by sharing our approach to game development.
If you have alternative approaches that have worked well for you, we'd love to hear them. Leave a comment or email us at [email protected].
If you want to follow our progress online, visit www.niftyllama.com or subscribe to our YouTube channel.