View Issue Details

Category
整備班:YAYA
SeverityfeatureReproducibilityN/A 
Status closed 
Summary0000333: New function modifier for dialogue pools
DescriptionI worry that this might be too much to request, or might not be possible at all. Please close this if that is the case.

An issue that I run into a lot when developing ghosts is that nested brackets can mess up the probabilities of dialogue, especially large pools of dialogue. For example...

RandomTalk
{
  "Dialogue 1"

  if month == 1 //January dialogues
  {
    "January dialogue 1"
    "January dialogue 2"
    "January dialogue 3"
    "January dialogue 4"
  }
}

At a glance, many developers assume that this will result in these 5 dialogues each having a 1/5 chance of being returned (if the condition of the if check is true). But, that isn't how it works. Instead, "Dialogue 1" has a 1/2 chance of being chosen, and the brackets around the january dialogues mean that the whole set of january dialogues have a 1/2 chance of being chosen. Each individual january dialogue ends up with only a 1/8 chance of being chosen in this setup! This problem gets much worse as you add more if checks, and more dialogue to each if check.

I have written two different functions in my own ghosts to correct this problem, and they work well, but both of them are a bit cumbersome to write. They also intimidate new developers, so new devs usually opt not to use them, and instead deal with the probability issues. So, I keep wondering if there might be a better way to solve this at the source.

Ideally, I would like a function modifier, like RandomTalk : pool
This modifier could make it so that every possible output candidate in a function is evaluated with equal probability, no matter how deeply nested it is.

I'm worried that this is too great a change to how YAYA works at its core, and might not be possible... But, if it is possible, it would be extremely helpful; especially for newer developers. (It would be even better if there could be a way to pair it with the nonoverlap modifier, so that you could have both...)

Thanks for your consideration.
TagsNo tags attached.
Attach Tags

Activities

guest

2021-10-28 18:25

reporter   ~0000861

https://github.com/ponapalt/yaya-shiori/commit/718deb584a2b4b4f38adbd0e7dcbf9bb855edd4d

ponapalt

2021-11-03 09:33

administrator   ~0000872

closed : new yaya release

Issue History

Date Modified Username Field Change
2021-10-28 14:35 guest New Issue
2021-10-28 18:25 guest Note Added: 0000861
2021-11-03 09:33 ponapalt Assigned To => ponapalt
2021-11-03 09:33 ponapalt Status new => closed
2021-11-03 09:33 ponapalt Resolution open => fixed
2021-11-03 09:33 ponapalt Note Added: 0000872