Flash games
Plausible Deniability
AI competition
other games

Interaction Lab
PR Lite

other projects:

other videos

ski lifts

email me
Plausible Deniability is an experimental RTS prototype that lets you cheat with plausible deniability. By that, I mean that if you play a multiplayer game and cheat, then even after the opponent watches the replay and compares it to what they saw while they played, it is impossible for them to prove that you cheated (short of hacking into the game or replay file). An example of cheating with plausible deniability is a map hack (seeing the entire map). An example of cheating without plausible deniability is giving yourself extra resources, since opponents can notice that when they watch the replay. But surely map hacks cannot be the only way to cheat with plausible deniability?

For example:

The key aspect to these features is that anything you don't do is wiped from history, so in replays (press shift + R to view an instant replay), your opponents won't see you doing anything beyond what is allowed in a normal RTS game. This works because you don't really have to make up your mind about what your units do until another player sees them.

sniper screenshot
All units connected by blue lines are actually different paths of the same sniper. The blue player doesn't have to decide which one is the "real" sniper until the red player sees one of the paths.

From a purely technical perspective, this is a fleshed out proof of concept that incorporates most ways of cheating with plausible deniability that I've thought of apart from exploiting identical units, which would practically require a rewrite to implement. But after I reached this point in summer 2014, I pretty much hit a brick wall because I have no clue how to turn this into an actual game, and neither does anyone I showed it to. That said, if I figure out a way to get unstuck (and simultaneously manage the necessarily complex codebase), I'd still love to turn this into a full multiplayer game. If you want to help, feel free to submit issues or pull requests to the GitHub repository, or email questions or comments to me.