Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change all dialogue to prose (mini project) #36834

Closed
I-am-Erk opened this issue Jan 9, 2020 · 10 comments
Closed

Change all dialogue to prose (mini project) #36834

I-am-Erk opened this issue Jan 9, 2020 · 10 comments
Labels
Good First Issue This is a good first issue for a new contributor [JSON] Changes (can be) made in JSON NPC / Factions NPCs, AI, Speech, Factions, Ownership (P3 - Medium) Medium (normal) priority

Comments

@I-am-Erk
Copy link
Member

I-am-Erk commented Jan 9, 2020

Is your feature request related to a problem? Please describe.
I've been wondering for some time what the best way to describe NPC actions in dialogue should be. I was considering ways to colour text, or formatting standards like

[Janet looks you up and down.] You don't look so tough to me.

Describe the solution you'd like
Ultimately I think the best solution would just be to convert all our NPC dialogue and player responses to prose, with their quotations enclosed in quotation marks. So a segment like this:

I don't really remember those days... Let's talk about something else.

> Sorry for asking.

Don't worry about it. It is what it is.

would become:

"I don't really remember those days." Tears well in her eyes and she quickly blinks them away. "Let's talk about something else."

> "Sorry for asking."

She shakes her head. "Don't worry about it. It is what it is."

Instead of things like [give him the spray can] you'd get:

"So, did you bring it?"

>You give him the spraycan. "Of course. I deliver on my promises."

He snatches the can from your hands and takes an eager huff, coughing frantically for a few seconds. "Goddamn. Thanks."

This requires going through every single npc comment and player response and putting \" quotes around it. It could probably be done by a python script. The script would have to exclude player notes in square brackets as these generally denote actions.

Describe alternatives you've considered
As above, I thought about a number of different ways to do this but they all require developing a new standard all contributors need to learn, and they're also clunky and don't look quite right in my opinion. Just changing it to prose is dynamic and feels natural.

Additional context
The prospect of going through all our existing NPCs and adding descriptive text to make them more interesting is not appealing. At least a script can standardize them.

I'm marking this as fairly high priority because the more NPCs we add the more terrifying the repair becomes.

@I-am-Erk I-am-Erk added Good First Issue This is a good first issue for a new contributor NPC / Factions NPCs, AI, Speech, Factions, Ownership [JSON] Changes (can be) made in JSON (P3 - Medium) Medium (normal) priority labels Jan 9, 2020
@anothersimulacrum
Copy link
Member

anothersimulacrum commented Jan 9, 2020

This will be substantial string churn and should be put off until after 0.E.

@I-am-Erk
Copy link
Member Author

I-am-Erk commented Jan 9, 2020

oh definitely shouldn't happen before 0.E.

@8street
Copy link
Contributor

8street commented Jan 9, 2020

All translators will be happy again.

@Night-Pryanik
Copy link
Contributor

Despite I really like the idea, I think that we need to invent a way to somehow auto-update thousands of affected strings on Transifex.

@I-am-Erk
Copy link
Member Author

I think whatever script we use to add quotation marks in English could probably be adapted for ttansifex. The descriptive phrases are going to take quite a while to add.

@Funguss
Copy link
Contributor

Funguss commented Feb 27, 2020

When I read this I immediately thought you meant do away with dialogue altogether and have descriptions of the conversation. That's the route I would personally take. It allows you greater flexibility and allows the player to give the characters the voices themselves. Probably a bit late in the day to go down that road, though.

@I-am-Erk
Copy link
Member Author

That would be substantially more stylized than I think we're going for, but I wouldn't mind seeing that for NPC conversations that take place while you're onlooking, along the lines of

Jim and Sarah talk about the weather for a while.

Sarah tells Jim the story of the first time she killed a zombie.

Jim laughs.

@Funguss
Copy link
Contributor

Funguss commented Feb 27, 2020

Hmm, I didn't really consider it in those terms, but I think it's a matter of perspective. Most forms of entertainment involve dialogue or monologue to expose the characters, even in silent films. However, one of the great masterpieces of PC gaming, The Sims, used next to no dialogue. I believe this was one of their greatest mechanics as it allowed players to really immerse themselves and project onto the characters.

Also, I think that approach simulates life pretty well. When we talk about people we generally don't quote them word for word, we describe them as best we can. A lot of communication is done without words, and some of my most memorable conversations have been without a single word spoken (or understood at least).

Mostly, though, I think it depends on character depth. Dialogue can create some of the most memorable and deep characters, but that requires a lot of development. It's not going to be possible in this framework without having a set pool of recurring NPCs you meet in every run, which would grow stale eventually. Voiceless NPCs can't have the same level of impact as a fully scripted character, but a robust personality simulation could have dynamic characters appear, interact with each other and the player, and remain fresh each playthrough.

To me it seems like the most natural representation we can get without advanced AI, but I played with Lego a lot as a kid. 😛

Also, yes! NPC conversations! That would be brilliant!

@I-am-Erk
Copy link
Member Author

I-am-Erk commented Feb 27, 2020

Yeah, it's totally a doable approach, it's just a particular stylization that I think is a bit at odds with the rest of the game aiming for a high degree of detail. The ship has long sailed there though. However, if we do the conversion of everything to prose, we could possibly work in some "lower detail" NPCs who don't have as much explicitly written text, a lot more "Jason tells you about how he escaped the zombies" kinda stuff. It would be an interesting way to develop some more procedural NPCs.

@Funguss
Copy link
Contributor

Funguss commented Feb 28, 2020

Well, that's what I mean by perspective. I'm going to sound pedantic here, but bear with me. 😛 You're implying that the approach I'm suggesting will have less detail than the current system. But, looking at the Cambridge definition of detail, that would mean it would convey less "information about someone or something". That's not what I meant at all.

Rather than exposing the dialogue, I'd be aiming to expose the behaviour, the emotions, the interaction; generally speaking, the dynamics of the situation. This would require the NPCs to have simulated personalities with some degree of depth to pull off, but exposing this could hardly be called a lack of detail. It would necessitate the opposite.

The reason why I think dialogue isn't an option for this approach is that writing, or generating, convincing dialogue between dynamic characters with different backgrounds and personalities would be effectively impossible. Description, however, would be comparatively simple, at least doable.

Argh, really need to sleep. Not sure if I've actually said what I meant to say. 😕

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Good First Issue This is a good first issue for a new contributor [JSON] Changes (can be) made in JSON NPC / Factions NPCs, AI, Speech, Factions, Ownership (P3 - Medium) Medium (normal) priority
Projects
None yet
Development

No branches or pull requests

5 participants