This is the fourth entry of my weekly dev diary for The Weight of a Soul.
This week, I did four scenes — two rooms and two dialogue trees. Those dialogue trees are pretty meaty, which is why they took so long to do. I’m pretty happy with the outcome of spending so much time on the dialogue but I do hope that next week’s progress will be faster.
I also updated the Hints a little bit by adding hints for the correspondence machine and the new puzzle to get into the catacombs in Day Three.
Some of these changes have been rolled into a new public release, “Church,” which you can play from the main project page.
Dialogue has been a consistent thorn in my side since I started working on this project. In theory, writing a conversation should be easy, since we have conversations all the time in real life. In practice… not so much.
First, the technical component. Because of how dialogue trees are structured in TWoaS, I’m often breaking dialogue into chunks, with lots of pauses where the player chooses which line of dialogue to say next. This makes you feel more in control, but means more work on the part of the writer fleshing out all the various responses you might give, and — especially in the cases where you have 5+ possible questions to ask — is more difficult to script out in a way resembling an actual conversation.
(For the Crow dialogue, I even had pronouns in the dialogue options change depending on whether Reden was mentioned in the last response or not. I think this worked out very well, but it was such a technical headache that I’m never going to do it again.)
Second, writing convincing dialogue is hard. With other parts of the prose, like room descriptions or simple narration, I can afford to be a little imprecise. I can fall back on vague descriptions (“He looks at you”) or on my well-practiced vaguely gothic metaphorical writing style.
With dialogue, I have no such luxury: I have to feel out the voice of that character, and then make sure that every sentence I write is emotionally and tonally consistent with the way that character would speak. There’s no glossing over details either. If I want to make that spoken dialogue feel real, it has to include all the little gestures and awkward pauses that happen in real conversation.
This is extra difficult for characters who have never appeared before and are thrust into multi-paragraph speaking roles. Now you know why this week’s two dialogue trees took so long to write.
This week’s dialogue also presented an interesting conundrum because it leans into some aspects of the setting that the player may not know about.
I’m a big believer in the internal consistency of settings, so I don’t want to change Solphos and contradict my earlier writing in the setting. I also believe in not talking down to readers; I think a story is more interesting and believable if there’s lots of stuff going on in the background that the reader doesn’t necessarily understand, but which informs the setting. That being said, I do have to make sure the reader actually understands what’s going on when something is directly relevant to the narrative.
Here, Marid and her conversational partner both know what’s being talked about — a basic historical detail, and the “state religion” of Solphos for lack of a better term — but the reader doesn’t. The solution I ended up going with was for the conversational partner to ask a rhetorical question, allowing Marid to answer with her own knowledge of the world.
The dialogue options are structured so that the player learns about the setting just by looking at the options available, even if they choose not to select them. If the player wants to know more, they can select those dialogue options and receive a scene of Marid discussing history or religion with her conversational partner. Otherwise, they can skip it and move the story on.
I also worry that this kind of exposition feels a little artificial and takes away from immersion. But I think this is an unavoidable evil, and it’s certainly better than having the characters reference stuff in passing that the reader has no idea about.