SakeTami
Clown Control
Clown Control

patreon


Devlog #14 - The Dialog Studio

Imagine if you will, being asked to write three characters. No not "abc" but three fully realized fictional characters with hopes and dreams. Each character has 10 events where they need to be able to say some kind of line, and each event needs at least 5 lines that deliver who they are as a person without coming off as one-note. 

That's 150 lines of dialog! Woof. But at least you typed it all out in your favorite word processor and you can just hand it over to the developer!

Wait. You didn't add tags. You need to add <i> and <b> when applicable. Also the custom tags that make the game work, like <?express=HAPPY,DEF> and <?fexpress=THINK> and <?HAS_CLOTH=CLOTH_BRA_bra>.

After going through each of those one hundo and fiddy lines, referencing a handy text doc that lists all the custom tags, and making sure there's no typos in the text or the tags (there will be, anyway) you can finally send it to the dev—

Oh. It has to be in a spreadsheet. And no spreadsheet program works the way a human being would want it to work. Whatever. It's just busy work.

After 150 copy and pastes, configuring the spreadsheet, and making 3 huge csv files, you're finally ready to hand it in.

Then the dev adds the ability for characters to have multiple line conversations.

You want them dead.

Then the horror dawns on you. There’s five characters now. 

With 45 events each. 

And games are 21 rounds so you need to have more than five lines to avoid repetition.  

10 by 5 by 45 is 2250 dialog nodes, on average 2-3 lines of dialog due to conversations between the character, other characters, and Joker. 4500 to 6750. Christ. 

Then more horror dawns on you. You're the sole programmer. This is your fault.

But that's ok! It's great, actually. Because YOU have the power to right these wrongs and write this right. 

The dialog studio is something made out of necessity. My co-writer, TT, doesn’t have knowledge of the game's code, and I want this tool to make it as easy as possible for us to work on dialog. The easier dialog is to write, the more of it there will be. (Also one day I want people to be able to mod characters into the game, and I know that the easier the tools, the more willing people will be to try. Buuut I’m getting ahead of myself.)

Step numero uno, you choose a dialog sheet, which is separated by speaker.

Step two, you choose an event (or add your own!). These are the key words for what happens when. START happens when the game starts, BETTING happens when they bet money, HIT_BLOCK is what happens when you fail a Hit taunt, etc. You can think of it as the "category" of dialog as well.

You can review dialog nodes, and if you click one you can edit it! If you want to add new dialog nodes to the event, just press the + sign

Here is where the magic happens! When you write a line of dialog you can add it to the list of dialogs in the “dialog node”. You can even move them around and delete lines. 

Up top is a modal that serves as a cheat sheet for some important info: clothing strip playlists and character expressions. 

And now for the real hero of this tool, The Grid Of Buttons. By far the most annoying part of writing dialog is managing the tags. Nearly every typo bug report we’ve gotten was from a single out of place tag or misspelling of said tag. With the buttons it’s way harder to mess it up, since nobody’s typing them!

What do all these buttons mean? Let’s break it down. 

Speaker tags: Very powerful, it’s what enables a conversation to happen if that character is present. The default speaker will always be the character who owns the dialog sheet, unless the speaker tag is used, or an asterisk is at the start of a dialog line (to denote joker). 

Expression tags: the meat and potatoes of dialog, they’re what bring characters to life! The expression tag works on the current speaker of that line, since you only ever see one character at a time. If you hit the “full” button, it’ll assign the preset for that emotion. You can also split it by eyes and mouths, for more bespoke emotions. This boosts the amount of possible expressions from 9 to 81 per character! Joker has his own set of them. 

Now we’re getting into the “check” tags. Dialogs are picked at random. These tags have one purpose: if the condition doesn’t pass, don’t use this line of dialog and go back to look for one that passes inspection. 

Clothing tags: does the current speaker have or not have X article of clothing? This one’s important because it’s what will enable sexy dialog by letting the game know THIS line of dialog is for when Syd is only in her panties. 

Money tag: does the speaker have less than, more than, or exactly X amount of money? A way to know if a character is on a hot streak or eating it. 

Round tags: is it past the fourth round? Are we on the first one? How about the last? This can add urgency or guarantee a line will only happen at the start of the game. 

There’s plenty more I won’t get into, but you can see how all of these combined can lead to more immersive dialog. Press "Finish & Add", and viola, character now has: new dialog.

Things to improve:

  1. The Look of it is a bit shit. I never sat down to really design it, and it's an 'admin' tool so it doesn't matter right now. Buuuuuuuuut it'd be nice to not look so. Periwinkle.

  2. A whole csv of dialog in your browser isn't good for memory. I need to work on some sort of lazy loading system, or figure something else out. It's crashed before and will likely crash again.

  3. Hot key support for common tags like making the speaker Joker.

  4. Markdown tags like italics, size, and the animated text tags I use in unity. 

Sometimes software development is a lot like civil engineering. You have to build a scaffolding or an entire other structure just to start on the project you're actually being paid for. But that's not really the case, is it? You're being paid to make a building, and those auxiliary structures are part of the labor. Engineering is about balancing costs, resources and time. I can write a program that helps me organize and write dialog faster than doing it raw and reviewing for errors over, and over, and over again between two people. If I was writing all the dialog by myself and I didn't plan on getting mods working? I might not have made this tool, because I'm used to writing with tags and code, so less time would be spent on the two person review process.

My goal with Joker's Trip from the start was to treat it like a professional project. I've been applying all those software engineering skills I picked up at my day job over the past decade, and I think it's been paying off.

Let me know what ya'll think!

-LG

it makes me fucking insane that LG spells dialogue this way 

-TT

You'll get over it.

-LG

Devlog #14 - The Dialog Studio Devlog #14 - The Dialog Studio

More Creators