HDIAndrew / EFS

12 stars 0 forks source link

(enhancement) Implement a system to reduce impact of save scumming in multiplayer games #169

Open floralpond opened 1 year ago

floralpond commented 1 year ago

Description:

It was discussed in Discord with some people that there could be a way to implement a seed system (or some other system which serves a similar purpose) to make random rolls more consistent within a single turn. This could help mitigate save scumming in multiplayer games by reloading your turn.

Possible solutions include but aren't limited to:

  1. implement a seed that is the bases for RNG roll checks during a specific turn in multiplayer
  2. implement a timer in multiplayer games where after you load you can't reload unless the timer has expired
  3. Write counter for how many times a game is loaded after fabricating a mp cloud system
  4. Complete online management of all saves and games, requiring network connection and reworking the entirety of the save system
  5. Whenever a random event occurs, it can be recorded into a log in the save game, which may be able to be inspected at a later time by other players. (for example, if a player has gotten rebellion checks 10 turns in a row but never actually got a rebellion, maybe that is suspicious and the player could be disciplined?)
  6. other??

Some scenarios where save scumming is helpful:

Some of the listed solutions fix certain save scumming advantages but not others.

Commit hash:

V1.51 vanilla

Why is it good for the game?:

In multiplayer games, players may be temped to reload a save to get a better result. Most MP games of EFS have a rule to not do save scumming, but there is no way to enforce this. It's hard to say if it's a problem currently (most people asked doubt it), but if the EFS playerbase expands a lot then it could become a bigger problem. On the other hand, certain people who seem to always get the best luck maybe will just have a hard time finding others to play with again in the future.

Matt-Caspermeyer commented 1 year ago

This problem may not be fixable as is endemic with a random roll system.

I've played the King's Bounty game, and it saves the random seed; however, all you need to do is change the order in which random rolls are done and the random seed, even if saved, provides a different outcome.

Addressing your points:

  1. Would fall prey to the above issue, with performs tasks in a different order.
  2. Anything done here is easily controverted by a savvy player. I won't go into details; however, any system here would be easy to defeat unless it is not done locally.
  3. This is a huge undertaking and would be outside the scope of EFS. A next version of the game would probably implement what you state here.
  4. Once again, beyond the scope of this game.
  5. Easily defeated by a savvy player.

With that said, things that happen at the beginning of the turn may be able to take advantage of saving the seed.

From the examples provided:

So it may be possible to fix things that happen at the start of the player's turn before they are allowed to perform their turn, but pretty much anything else is defeatable.

Additionally, there are memory scanners and other tools that cheaters use to defeat all this and I'm no security expert, but we'd probably need one on the team to seriously attempt to defeat any of these issues.

So I think for now, this one probably won't be fixed, I'm sorry to say, without us having someone on our team that knows how to defeat these problems...