Monika-After-Story / MonikaModDev

DDLC fan mod to extend Monika
http://www.monikaafterstory.com/
Other
1.18k stars 688 forks source link

[Suggestion] - Increase the chance of uncommon scary story jump scares happening or implement a pity system for them #9108

Open Justformas opened 2 years ago

Justformas commented 2 years ago

Some scary story jump scares seem to only have a 1 in 20 chance of happening. Other's may have about a 1 in 15 or 1 in 10 chance, but that's still a low chance. But let's go with 1 in 20 for making a point here (rounding to the nearest tenth):

Probability = 1 - Chance of not happening ^ Number of times So for 5 times: Probability = 1 - 0.95^5 = 22.6% 10 times: 40.1% 15 times: 53.7% - Now we've passed 50% chance of just happening once. 20 times: 64.2% - Despite the 1 in 20 odds, there's still a good chance of it not happening once. 30 times: 78.6% 40 times: 87.1% 50 times: 92.3% - You're pretty unlucky if you haven't seen it yet, but it can happen. 60 times: 95.4% 100 times: 99.4% - You'd be very unlucky if you haven't seen it yet, but it's still possible. 135 times: Above 99.9% without rounding. 180 times: Above 99.99% without rounding.

If that seems strange, think about a coin flip. The odds are 1 in 2 for heads, and 1 in 2 for tails, but just because you flip it 2 times doesn't mean you'll see both heads and tails. It will technically never be a guarantee (but calculators may just round up eventually). Anyway how many people are going to listen to the same stories 20, 40 or 60 times? Let alone within a few years?

Now the easiest suggestion would be to just increase the chance of these uncommon jump scares happening. Personally I think 1 in 10 is already pushing it; you'd have to listen to the same story 7 times just to have slightly over a 50% chance of it happening once. For 1 in 5, listening to it 3 times has slightly under a 50% chance of it happening once.

But if there was a way to implement some kind of pity system, then that might be a better idea. It's a system that increases the chance of something happening after every time, or after a certain number of times, for every time it doesn't happen. When it does finally happen, it resets to the initial chance again. It may lead to a guarantee or just cap out at a certain point. A guarantee would probably be easier to implement but would be more predictable. I think if it capped out at 1 in 2 or 1 in 3 then that might be good, so it's still not a guarantee and you wouldn't know if you're going to get it that time or not.

If going with a pity system, I think it should start slightly increasing the chance after once or a few times of hearing the same scary story (for the jump scares that didn't happen). So if the chance is 1 in 20, next time it's 1 in 19, then 1 in 18, then 1 in 17 etc. until you get down to 1 in 2 or 1 in 3. Once it happens, it would reset to 1 in 20 again, and the process would repeat itself. Though because a chance of 1 in 20 is so low to begin with, even this could still take awhile for it to finally happen (potentially even 20 times or more, but it'd be unlikely to go much higher than that).

Complicated maybe, but then the chance for uncommon jump scares could simply be increased to say 1 in 10 or higher.

Booplicate commented 2 years ago

This is not how probabilities work. You're calculating the chance of an event not happening X times in a row, you can't just substract it from 1 and say it's the probability of the event. The chance of the event happening is still the same (1:20 in your example).

How many people are going to listen to the same stories 20, 40 or 60 times anyway? Let alone within a few years?

Nobody expects people to reread every story at all. If something didn't happen, it doesn't mean you have to repeat it (but you can if you want). You're only doing it because you checked the sources, found there's a jump scare, and wanted to see it.

The idea, as I see it anyway, is you're reading a story and you might get a jump scare. You also might not get it. It's not like we say "you have to repeat this to get this ultra epic things happening."

That said, 5% is indeed low and most of those will be unseen. Odd to have content locked by such a low chance of happening, especially when the player said they like jump scares.

Justformas commented 2 years ago

This is not how probabilities work. You're calculating the chance of an event not happening X times in a row, you can't just substract it from 1 and say it's the probability of the event. The chance of the event happening is still the same (1:20 in your example).

In the code it's still 1 in 20 every time yes, but the way I described is effectively how it does work in a row if it doesn't happen. Yes this is assuming it doesn't happen. If it does, then you'd have to start from the beginning again.

So I had just edited this before I noticed your comment, to mention the simple example of a coin flip. 1 in 2 chance for heads, 1 in 2 chance for tails. Just because you flip it twice, doesn't mean you'll get both heads and tails. That logic is extended in the 1 in 20 example I mentioned, hence why it works the way it does.

Nobody expects people to reread every story at all. If something didn't happen, it doesn't mean you have to repeat it (but you can if you want). You're only doing it because you checked the sources, found there's a jump scare, and wanted to see it.

Missing jump scares would be an unfortunate thing to me personally, regardless of if I checked if they exist. Yes it'd be better to experience them without checking, but the fact that I even felt the need to check due to some being so uncommon isn't really a good thing in my opinion. The stories usually aren't even that scary at all to me without jump scares.

That said, 5% is indeed low and most of those will be unseen. Odd to have content locked by such a low chance of happening, especially when the player said they like jump scares.

So we agree on that at least. There's at least one that's 1 in 14 or 1 in 15 I think too. I'm not even saying they have to be 1 in 5 or higher, like I said 1 in 10 could be more reasonable, though I still think that's kind of low.

Booplicate commented 2 years ago

In the code it's still 1 in 20 every time yes, but the way I described is effectively how it does work in a row if it doesn't happen. Yes this is assuming it doesn't happen. If it does, then you'd have to start from the beginning again. So I had just edited this before I noticed your comment, to mention the simple example of a coin flip. 1 in 2 chance for heads, 1 in 2 chance for tails. Just because you flip it twice, doesn't mean you'll get both heads and tails. That logic is extended in the 1 in 20 example I mentioned, hence why it works the way it does.

That doesn't really help as an argument because when you say "the chance of getting this jump scare AT LEAST ONCE is 22.6% if you read it 5 times." 22.6% looks good to me. Because it could happen 1 time or 100 times. But the actual chance is 5%, and it's always 5%. You're comparing different probabilities.

Missing jump scares would be an unfortunate thing to me personally, regardless of if I checked if they exist.

I mean if you didn't check the sources, you wouldn't know (unless you watched a video or something like that). Also you can't really expect to "see everything" or "get 100% MAS." The experience of each user is intended to be different as "every Monika is different."

but the fact that I even felt the need to check

You did it before, so I doubt it's this one moment that made you do it again. And as said once you know X thing should happen, you already start anticipating it, just because now you know it exists.

I'm not even saying they have to be 1 in 5 or higher, like I said 1 in 10 could be more reasonable, though I still think that's kind of low.

20% looks good to me (that's 1:5).

Justformas commented 2 years ago

You did it before, so I doubt it's this one moment that made you do it again. And as said once you know X thing should happen, you already start anticipating it, just because now you know it exists.

To say something about this first, before I even started this game, I found out some stuff about it. Some stuff afterwards too. Some of the first things I discovered before even starting were some truly devastating events, like Monika disabling chess permanently (or worse), leaving you permanently, and certain ways that time travel could ruin your game. Knowing how I might like to experience games and that there could be other devastating things in store, I looked some stuff up as a precaution. Technically I could maybe experience at least some of those things by backing up my persistent files and then restoring them. Also technically, if I wanted to start all over, there might be other things I could do. But I'm not really interested in doing any of that (yet anyway).

However so far, I've only checked the code for a few things and that was one of them. Though I had found out how to access the code for a different reason, and it was pretty recently. To be fair, I didn't expect the mod to be so perfect/tailored for me that I wouldn't feel the urge to do so (that's probably just about impossible lol). The same could be said about me not expecting to not make any suggestions. That said, if we can agree that something is reasonable then it might work.

Also you can't really expect to "see everything" or "get 100% MAS." The experience of each user is intended to be different as "every Monika is different."

I'll admit I've moved away from that a bit (maybe I'll still take that challenge some day though, or just look up everything I don't see in the code). But like you said if the player says they like spooks, they probably want to see them.

20% looks good to me (that's 1:5).

Sounds good to me too.

Justformas commented 2 years ago

Now I see you were probably referring to 22.6% specifically. Yes 22.6% could happen 100 times (like to 100 different people), but for the other 77.4% of the time, there's still a good chance that people could have to listen to the same story 20 or more times just to see the jump scare at least once. My point was that even if they repeat the story, their chance is better than 5% but still low until they repeat it a lot. Anyway for players that are only going to listen to a story once regardless, yes their chance of seeing it would only be 5%. Either way, "5% is indeed low and most of those will go unseen." I think it is reasonable to expect that players might listen to a story a few times though, in which case there should be a good chance of seeing it at least once. 1 in 5 times or 20% like you said would do that I think.

More to say on your other reponses:

You did it before, so I doubt it's this one moment that made you do it again.

"This one moment" was indeed what "made me look it up" (along with a related reason). I had a pretty decent reason to look it up considering my path:

-I found out that there was at least one jump scare intro that was a one time only event. -For one of the jump scares in a scary story, it happened the first time I listened to it. -On a later date, found out saying whether you liked "spooks" or not affected this, and wasn't sure if I last said I did like them. -Made sure I said I liked spooks, repeated some scary stories once and got a jump scare I hadn't seen before this time. -Listened to both the scary stories that I saw the jump scares in again, and others, and didn't see any jump scares this time. -This all made me suspect that the scary story jump scares were also one time only events. -Was told that they are probably random events with a low chance. -Tried listening to some scary stories again. Eventually this seemed true, but one jump scare I heard about in particular seemed to never happen, and others I had already seen didn't happen again.

So that's why eventually I wanted to look it up, saw the surprisingly low chances for some jump scares, and the several that hadn't yet happen to me despite listening to those stories a few times. Although I was also checking the code for a related reason: to see if Monika's ghost sprite was used for one of them, because I didn't think it was still being used at all and made a suggestion about that (I'm not sure if you noticed that). Although I don't think it's used for general scary stories jump scares, I later found out that it still might be used for something, but maybe not.

That particular path that happened to me is probably pretty unlikely to happen to most people, but it did happen to me and that's far from the craziest things that have happened, "in this world of infinite choices". There are over 7 billion people, and we are all at least a little different, some maybe more than others. So is it really that surprising that this happened to someone? Still I'm not sure you believe that path, because you said you doubted it was this one moment that made me look it up. You also doubted another one of my paths before and you might still doubt it. But I'm giving you a chance to understand, because rather than doubting me, it'd make everything much easier if you just took my word on stuff like this.

And as said once you know X thing should happen, you already start anticipating it, just because now you know it exists.

Personally I'm ok with knowing about those specific jump scares that I haven't seen. That's a small "price" to pay considering the benefits I feel I've gotten from knowing. I mean, you being a main developer probably means you know about most if not all content in this mod, even without first experiencing new things that get added yourself. How does it feel, to have basically everything spoiled for you? But you're ok with that aren't you? Otherwise I think you wouldn't still be a main developer.

In fact, for me at least it can be quite scary even if I do expect something. There was actually one particular Easter Egg I don't think I saw before, but was able to figure out how to trigger just from 2 or 3 key words in the code. I'll say just one particular key word so you can know what I mean, but doesn't really help people who don't know about it: "Hungry". Despite expecting something, it gave me quite a scare. If something is so well done like that it can still be quite scary and surprising.

Also you can't really expect to "see everything" or "get 100% MAS." The experience of each user is intended to be different as "every Monika is different."

I'm actually not always a true completionist. I'll sometimes settle for completing things enough for what I consider to be reasonable. That could include doing things in-game that I consider reasonable for me, and just looking up what happens for the rest (or how to do it and maybe doing it if it's reasonable). That way, at least my knowledge could be complete on the matter.

Justformas commented 2 years ago

Here, as a sign of good will I found them all for you to reference quickly. Mostly just had to search for "spoops" in https://github.com/Monika-After-Story/MonikaModDev/blob/master/Monika%20After%20Story/game/script-stories.rpy More of them are low chance than I even remember seeing the first time I looked. Most are 1 in 10 to 1 in 20.

Low chance:

Line 1077: if (persistent._mas_pm_likes_spoops and renpy.random.randint(1,10) == 1) or mas_full_scares: Line 1112: if (persistent._mas_pm_likes_spoops and renpy.random.randint(1,15) == 1) or mas_full_scares: Line 1194: if (persistent._mas_pm_likes_spoops and renpy.random.randint(1,10) == 1) or mas_full_scares: Line 1229: if (persistent._mas_pm_likes_spoops and renpy.random.randint(1,20) == 1) or mas_full_scares: Line 1302: if (persistent._mas_pm_likes_spoops and renpy.random.randint(1,20) == 1) or mas_full_scares: Line 1417: if (persistent._mas_pm_likes_spoops and renpy.random.randint(1,14) == 1) or mas_full_scares: Line 1583: if (renpy.random.randint(1,20) == 1 and persistent._mas_pm_likes_spoops) or mas_full_scares: Line 1702: $ _mas_lantern_scare = renpy.random.randint(1,11) == 1 Line 1770: $ _mas_rects_scare = (renpy.random.randint(1,11) == 1 and persistent._mas_pm_likes_spoops) or mas_full_scares

Not as low chance but still low:

Line 1464: if (persistent._mas_pm_likes_spoops and renpy.random.randint(1,8) == 1) or mas_full_scares:

Higher chance and shouldn't need to be changed:

Line 1321: if (persistent._mas_pm_likes_spoops and renpy.random.randint(1,2) == 1) or mas_full_scares: Line 1328: if (persistent._mas_pm_likes_spoops and renpy.random.randint(1,2) == 1) or mas_full_scares: Line 1365: $ _mas_jack_scare = (persistent._mas_pm_likes_spoops and renpy.random.randint(1,4) == 1) or mas_full_scares Line 1541: if (persistent._mas_pm_likes_spoops and renpy.random.randint(1,3) == 1) or mas_full_scares:

ThePotatoGuy commented 2 years ago

This line from boop:

Odd to have content locked by such a low chance of happening, especially when the player said they like jump scares.

I agree, I think we should look at making sure the topic asking if the user likes jump scares/scares should be asked before we do scary stories, and then have that topic ask the user how much they like scares. Based on that range, we should scale the chances for jump scares in the stories. That way people who want to be scared will get it considerably more often than others.

A pity system / dynamic chance is a good idea on paper for fairness but requires a significant amount of persistent data for each property. Don't know if its worth doing that right now.

[leaving open for more discussion]

Justformas commented 2 years ago

I agree, I think we should look at making sure the topic asking if the user likes jump scares/scares should be asked before we do scary stories

Yeah I'm wondering how someone even came up with 1 in 20. But I didn't even think of that: Asking if the player likes spooks before any scary stories are unlocked. Yeah sounds good.

and then have that topic ask the user how much they like scares. Based on that range, we should scale the chances for jump scares in the stories. That way people who want to be scared will get it considerably more often than others.

Another interesting idea I didn't think of. Yes that sounds good too.

A pity system / dynamic chance is a good idea on paper for fairness but requires a significant amount of persistent data for each property. Don't know if its worth doing that right now.

Yeah this was me sort of thinking on the fringe for another idea to increase chances. That sort of system might be used more for things that are even lower in chance like 1% or less anyway, and most things in the mod probably have a higher chance of happening than that or should happen eventually anyway (like alternate intros).

But honestly even if something like that was implemented, I think it could still take awhile considering that you have to listen to a whole scary story, if the chance still started at something like 1 in 20. Then it could take another long time to see it again anyway. Just having the chance be increased in the first place (and possibly depending on how much the player says they like spooks) sounds much simpler and more elegant.