(Click here to see the spreadsheet.)
From October 2021 to May 2022, I worked on Grim Tranquility, a pulpy sci-fi strategy game. I was brought on as Lead Narrative Designer to oversee and implement some extensive narrative reworks, and ended up doing a full script rewrite with my partner in crime Saf Davidson. She is a fantastic writer and you should hire her. I'm publishing this script spreadsheet, with the blessing of studio director Chris Wright, because we did good work on it and I think it's valuable for people to be able to peek under the hood of a game—it's certainly something I would find interesting, so here it is for you, too.
What we started with was:
- A large number of scripts, for both content that's referenced in the script spreadsheet and content that was cut for scope.
- An extremely extensive lore bible.
- A number of cutscenes that had already been recorded for the demo.
Our job was to take what already existed and see if we could adapt it more closely to the desired tone of the game, as well as tightening it up in general, while retaining as much of the original characters and setting as possible. (Also, we weren't allowed to add or remove characters or locations.) Ultimately, we ended up doing a full rewrite of the script with the pre-existing characters, keeping the same vague structure as the original work (linear script, following the same progression between planets) and making sure we delivered a satisfying story arc with possibility for sequels or expansion later on. In practice, a lot of this work amounted to Saf and I writing jokes in a spreadsheet to make each other laugh, so please enjoy the fruit of our efforts.
Now, onto the spreadsheet itself.
This document was meant to kill two birds with one stone. It was meant to be a place where we could write our script, and it was intended to act as something we could very easily clean up and hand directly to voice actors, since we had a full cast lined up. (very sad we couldn't hear the final product!)
This meant that I had to include some important statistics, to enable us to give accurate estimates to the VO studio:
- Number of lines per character
- Word and line count per scene
- Total word and line count
The approach I took to collate this information was to include a metadata section on each scene's script, which counts the number of lines. The main page references each script and pulls that number, then does some basic math and conditional formatting to display it nicely.
The thing I'm most proud of, though, is the system I devised to automatically generate voiceover line IDs, both for the studios/actors and for use within the game engine. We didn't end up getting to that point, as detailed above, but it was there and it existed, and that is a victory. Here's how it works:
- Check if cell immediately adjacent to it is empty. This cell contains dialogue.
- If it is populated, pull the following information:
-
- From the metadata section, pull chapter code, cutscene number, and faction path.
-
- From the cells to its left, pull character name and line number.
- And then it gets mashed together into something like "ch1-2-common-12-Xela".
Every line gets this treatment.
The spreadsheet isn't perfect.
Due to lack of time, and development winding down a little earlier than expected, there were some problems that we didn't have time to solve... and also, the script isn't quite done. It's in the late revision stage, and we didn't have a chance to finish the final outro scenes that really cement the consequences of the player's faction choice. C'est la vie!
The most glaring problem, that you'll see if you read through the script, is that there are duplicated lines across scenes that have faction variants. In the in the event where we're not asking for different line reads on those duplicated lines, there needs to be a way to exclude those from the automated count - a stopgap solution I implemented was to just highlight them on the sheet itself (you can see this on some of the early scenes), but I would have liked to have found a way to write a formula to check the background colour of the cell and exclude it that way. Time did not permit!
Copyright info
This is the intellectual property of Poorly Timed Games. Please don't plagiarise the script or steal the characters or anything like that. But otherwise, I'm explicitly inviting you to rip apart the structure of the spreadsheet and use my formulae, layouts, etc. Go nuts, enjoy, be nice to animals. Thank you for reading.
And seriously, go hire Saf to write your game.