I don’t think I’d ever put the Vigenere cipher in a game, myself - I know that they’ve been used and cracked in larp, but based on what I know about cryptography, there are two problems with employing them in larp:
- They were originally designed to be uncrackable, which means that your players need to break their backs working on it, and
- It’s only sensible to have your players break their backs if the encryption could only be a Vigenere cipher.
If the code is anything other than a Vigenere cipher, and the players spend time working on it assuming it’s a Vigenere cipher, that’s only going to be frustrating for them when they don’t get the answer. But if you tell them it’s a Vigenere cipher, then once they have the key the decryption is just busywork - there’s no actual puzzling involved.
The Caesar cipher is fine for hiding information from view: like any substitution cipher; they’re pretty easy to crack, especially if the plaintext includes words like A, I, THE, THAT, WHAT, etc.
I feel like the best larp-solving experiences come from something somewhere in between. Book ciphers and puzzle ciphers are great for this, because the encrypted text looks unusual in a way that could lead players to the encryption method - most book cipher text comes in a page-number.line-number.word-number form, like 23.11.6.
The first large-scale encryption I was involved with in a game was four pages of substitution cipher, with the twist that capital letters were encoded with different symbols than their lower-case counterparts. This injected some challenge back into solving.
If people want to use encryptions in game, I feel like there are two things they can do to make the experience evenly challenging for players:
- Provide a list of the cipher types you’ll use in the game (as was done for Musketeers)
- Vary the plaintext so that the ciphertext becomes harder to crack - if you reverse the plaintext before encoding, than the words A and I remain easy to crack, but everything else becomes a little more confusing. Same goes for if you stick an X somewhere in each word, or use a plaintext that has no Ts in it.
TL;DR: Encryption is hard to use effectively because it’s usually either impossible or trivial. If you want something in between, playing with the plaintext is a good place to start.