rickparrish / Usurper

32 and 64bit ports of Usurper BBS door game version 0.20e
78 stars 18 forks source link

Honouring the healing potion limit #25

Open rickparrish opened 2 years ago

rickparrish commented 2 years ago

I'll be using this issue to document the places where the player.healing count is incremented without enforcing the config.maxheals limit, so then we know what needs to be updated and tested.

The first instance I saw relates to pick-pocketing a guest at the dormitory, which leads to some questions about what should happen in an over-limit scenario:

dan1982code commented 2 years ago

Great points -- thanks, Rick! I don't have any personal opinion to add here but I do look forward to hearing what others think.

rickparrish commented 2 years ago

Thanks Dan. I have a personal preference, but it's by far the worst user experience, so I left it off the list of options :)

dan1982code commented 2 years ago

:)

I will add that whatever we do here is going to change the gameplay quite a bit; e.g. right now, people routinely use these hacks to stockpile healings. So like before going in for a big kill, people spend a few days gaining healing potions.

If we enforce the limit and remove these hacks, then things like the (t) massage in the gym become a little less useful...

codefenix-ConChaos commented 2 years ago

I will add that whatever we do here is going to change the gameplay quite a bit; e.g. right now, people routinely use these hacks to stockpile healings. So like before going in for a big kill, people spend a few days gaining healing potions.

If we enforce the limit and remove these hacks, then things like the (t) massage in the gym become a little less useful...

I can totally see your point there. However, it gets ridiculous at several thousand potions.

Perhaps one compromise might be a hidden max threshold. In other words, one can go above the configured limit, but there's a ceiling above that limit (say, 2x whatever the config'd limit is).

Or another idea, maybe allow them to carry above the configured limit for the remainder of that game day. And then have it corrected during the next day's maintenance. Say something like, "some of your extra potions seem to have spoiled during the night", or "went missing", or something.

(It's worth mentioning that this exploit is really only problematic in small games with one player or a team of players performing these actions unopposed by others, and therefore not having a need to even use potions, so it's easier for them to build up the supply. So maybe it's not as big problem in larger games with more players.)

  • I grab all 10, but the game tells me I'm clumsy and drop 8 of them. This updates the game logic for the player (they don't go over limit), but keeps the same logic for the guest (all their potions are stolen/broken, leaving them with zero)
  • I only grab the 2 that I can carry, leaving the guest with 8. This updates the game logic for both the player (limit enforced) and the guest (not all their potions are stolen)

I like both of these ideas as well.

rickparrish commented 2 years ago

Or another idea, maybe allow them to carry above the configured limit for the remainder of that game day. And then have it corrected during the next day's maintenance. Say something like, "some of your extra potions seem to have spoiled during the night", or "went missing", or something.

I kind of like that idea. Partly because it means just one change in the maintenance instead of several changes all over the place, but also because it mostly restores the sysop's control over the limit, while still allowing a player to temporarily stock up before a big kill.

BlaZZZed1980 commented 2 years ago

I also agree that the maintenance solution would be the ideal fix to this issue... still allowing for a small, temporary boost if necessary, but not allowing it to be exploited for cheating.

rickparrish commented 1 year ago

I've just pushed new binaries that incorporate the "spoil extra potions during maint" suggestion that @CraigEMP made.

In #23 it was mentioned that some people have stockpiled 20,000 potions. On one hand, that's an absurd use of the loopholes that allow extra potions, so I don't really feel bad for a user trying to unbalance the game to that degree. But on the other hand, if I was a user who went from 20,000 to 75 overnight, I probably wouldn't be very happy.

So maybe spoilage should be a percentage, and for example with 50% of extra spoiling every night it would take around 9 days to go from 20,000 to the default max of 75.

So I guess the two questions are whether we care that some people are going to be in for a big surprise one day, and if so, how quickly we should decrease their stockpile back to the configured limit?

BlaZZZed1980 commented 1 year ago

I think your 50%/day above the allowed limit is perfect.

codefenix-ConChaos commented 1 year ago

I've just pushed new binaries that incorporate the "spoil extra potions during maint" suggestion that @CraigEMP made.

I tested this morning and it works nicely! I went into editor and set a test character to 2000 potions, let maintenance run, and then saw the message about the spoilage and found that I was indeed back down to the configured limit.

In #23 it was mentioned that some people have stockpiled 20,000 potions. On one hand, that's an absurd use of the loopholes that allow extra potions, so I don't really feel bad for a user trying to unbalance the game to that degree. But on the other hand, if I was a user who went from 20,000 to 75 overnight, I probably wouldn't be very happy.

So maybe spoilage should be a percentage, and for example with 50% of extra spoiling every night it would take around 9 days to go from 20,000 to the default max of 75.

So I guess the two questions are whether we care that some people are going to be in for a big surprise one day, and if so, how quickly we should decrease their stockpile back to the configured limit?

My personal stance: I have little tolerance for cheating, and I have no qualms about upsetting players who deliberately take advantage of exploits like this.

Then again, it's only a game. :)

Bottom line, 50% per day until corrected is more than reasonable, as long as it's not difficult to implement.

EdgarVerona commented 1 year ago

I don't know if it matters either way, but if folks are worried about backlash, what if it just refunded them the difference - so basically maintenance happens and the "refund fairy" comes and takes your extra potions, and gives you some % of their cost as a refund.

Definitely two different modes of thought out there - the "don't punish an exploit the game allowed" group and the "they should have known better" group. I personally don't know which is right (or if one is universally), but if you lean toward the former perhaps the "refund fairy" idea might be a less punitive alternative.

On Thu, Oct 27, 2022, 5:57 AM CraigEMP @.***> wrote:

I've just pushed new binaries that incorporate the "spoil extra potions during maint" suggestion that @CraigEMP https://github.com/CraigEMP made.

I tested this morning and it works nicely! I went into editor and set a test character to 2000 potions, let maintenance run, and then saw the message about the spoilage and found that I was indeed back down to the configured limit.

In #23 https://github.com/rickparrish/Usurper/issues/23 it was mentioned that some people have stockpiled 20,000 potions. On one hand, that's an absurd use of the loopholes that allow extra potions, so I don't really feel bad for a user trying to unbalance the game to that degree. But on the other hand, if I was a user who went from 20,000 to 75 overnight, I probably wouldn't be very happy.

So maybe spoilage should be a percentage, and for example with 50% of extra spoiling every night it would take around 9 days to go from 20,000 to the default max of 75.

So I guess the two questions are whether we care that some people are going to be in for a big surprise one day, and if so, how quickly we should decrease their stockpile back to the configured limit?

My personal stance: I have little tolerance for cheating, and I have no qualms about upsetting players who deliberately take advantage of exploits like this.

Then again, it's only a game. :)

Bottom line, 50% per day until corrected is more than reasonable, if not difficult to implement.

— Reply to this email directly, view it on GitHub https://github.com/rickparrish/Usurper/issues/25#issuecomment-1293487995, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEXON34Y466FHUFFH7XDXDWFJ34HANCNFSM5LC6AMSA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

codefenix-ConChaos commented 1 year ago

I don't know if it matters either way, but if folks are worried about backlash, what if it just refunded them the difference - so basically maintenance happens and the "refund fairy" comes and takes your extra potions, and gives you some % of their cost as a refund.

Potions only cost money when bought in the Magic Shop or from the monk in the Dungeon, and you cannot buy more than the configured max either way. Potions gained via exploits are gained at no cost. Therefore, your refund fairy would be awarding free money for potions gained through exploits.

Definitely two different modes of thought out there - the "don't punish an exploit the game allowed" group and the "they should have known better" group.

When you put it like this, the 50% per day correction now seems all the more a fair compromise. Less punishing and more forgiving, but still correcting the issue to make it fair for others playing.

EdgarVerona commented 1 year ago

Ah! I didn't realize that. Yeah, totally makes sense then.

On Thu, Oct 27, 2022, 7:49 AM CraigEMP @.***> wrote:

I don't know if it matters either way, but if folks are worried about backlash, what if it just refunded them the difference - so basically maintenance happens and the "refund fairy" comes and takes your extra potions, and gives you some % of their cost as a refund.

Potions only cost money when bought in the Magic Shop or from the monk in the Dungeon. Potions gained via exploits are gained at no cost. Therefore, your refund fairy would be awarding free money for potions gained through exploits.

Definitely two different modes of thought out there - the "don't punish an exploit the game allowed" group and the "they should have known better" group.

When you put it like this, the 50% per day correction now seems all the more a fair compromise. Less punishing and more forgiving, but still correcting the issue to make it fair for others playing.

— Reply to this email directly, view it on GitHub https://github.com/rickparrish/Usurper/issues/25#issuecomment-1293641011, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEXON2O3RMDMCBYYAXBKQTWFKI7ZANCNFSM5LC6AMSA . You are receiving this because you commented.Message ID: @.***>

dan1982code commented 1 year ago

Without the thousands and thousands of healing potions exploit, is Supreme Being defeatable? :D just want to make sure because using the healing potions exploit is how I finished the game in the past.

BlaZZZed1980 commented 1 year ago

I did it just the other day with some mediocre weapons, and only 3 white-water massages to boost the potions up to around 500. That wouldn't have been affected by this new cleanup routine anyway. So, yes. It's very doable.

codefenix-ConChaos commented 1 year ago

I've done it with the default 125. Just by standard dungeon grinding, daily Orbs drinks, and spending all my wishing well wishes on defense.

rickparrish commented 1 year ago

Only spoiling 50% of the extra is an easy change. I still didn't setup a game, so as with the last binaries these aren't tested, so please backup before seeing how they work!

BlaZZZed1980 commented 1 year ago

Updated to the win32 binary with 50% spoilage. Works fine! Thanks so much for this update.

codefenix-ConChaos commented 1 year ago

I concur that the 50% fix works great. I tested the go32-v2 (DOS) version as well.

Thanks for this update. It goes a long way to fix some balance issues.

And since it's been brought up more than once in this thread, to those concerned that you somehow need thousands of extra potions to win the game:

  1. You don't.
  2. A sysop may allow a higher maximum potion amount (up to 9999), which can be still kept legitimately with this change.
rickparrish commented 1 year ago

Thanks for testing!