we spoke a bit about the process of writing and designing a scene of Dialogue. This week our developer, Antony, is here to detail how that scene then makes it into the game.
Hi! Antony here, developer for these here folks. Last week’s post
told us about building the script which serves as the backbone for the entire game of Dialogue. This week I wanted to elaborate on the process of taking that and converting it into a game-usable format. Luckily, thanks to the amazing efforts of the rest of the team, this is mostly straightforward!
The first step is extracting the information from the spreadsheet to a machine-readable format. Text csvs, a basic text conversion of the standard Excel form, make an excellent first input, which can be separated into its relevant values. For any given line of Dialogue, the pertinent information includes:
– Other characters in the scene
– Line text
– Associated questions
– Voice file data
…And so on and so forth. Each segment of a line is split out and sent to a corresponding code object, one for each block of text. These can then be sorted and sent to the main Unity3D engine.
Inside the scene, we place an object for everything we want to appear – characters, background art assets, music, and of course the game text, represented in game by a subtitle bar. As each line of text is synced to a corresponding voice file, the scene pacing is automatic – after a line plays, it automatically leads into the next. Meanwhile, at the end of each block, the questions available to Lucille are sent to additional text objects – the main question buttons.
As each text block is stored as a separate object, flowing through the full scene can be handled with a few simple triggers. Each button stores the name of the text block it leads to, while the primary script listens for the name of a button being pressed. When it receives one, either from the player pressing a button or the timer running out and taking a predetermined outcome, it can proceed with the next block of text, starting the cycle anew.
And in this way (with a few iterations and improvements as we go) we put together the primary engine for Dialogue. I can’t wait until you get to try it out first-hand!
And that’s how each line of the spreadsheet becomes a moment in the game.