Magic and spoilers
I've been working again on the magic system for Rituals of the old in the last few days. The thing is I don't really want to talk about it. In fact I would like nothing more, I find the subject invigorating and enthralling. I've been studying religions, folk traditions, ritual magic and western mystery traditions most of my adult life. But when it comes to games there is one thing in particular that vexes me and it's spoilers.
The age of internet has been a blessing for multiplayer gaming, but at the same time the wikis and forums have ruined all the sense of mystery and discovery. It's so easy to cheat that we all do it at one time or another. All you need to do is get frustrated at your favorite game for a few minutes, conjure up Google and summon a wiki page on the game you're playing. Chances are that some dunce has already checked out all the data files of the game with a hex editor and posted the details online.
It's great that you can get help so easily when you're stuck. In my youth when you got stuck in a game it was pretty much game over if your friends didn't know the solution or if you didn't have access to a BBS with spoilers.
But what if I'm making a game that's supposed to have some secrets and mystery? We could achieve that if we were making a MMO. We would be in control of the servers and all the data. But we're not making a MMO. We're making a game where the players can run their own dedicated servers on the hardware of their choosing. So it's pretty much goodbye for all the secrecy and mystery, right?
A man can dream.
I've been thinking about this problem a lot. If your data is contained on the player's hardware there can be no real expectation of secrecy. And it's pretty much the same with the game's server software. If anyone can download it all the information contained there will leak. It's completely unavoidable, I know that.
Some might say that "Why do you worry about it? Let the people cheat who want to cheat. You can't prevent it and maybe you even shouldn't try to do that. Don't they have a right to cheat if they want to?" And while I completely agree with that sentiment there's one thing it doesn't take into account.
The other people.
When we're talking about multiplayer online games there's always the other people to consider. Let's say Jack and Charlie are playing on the same server. Jack likes to play it straight and learns and discovers things as he goes. On the other hand Charlie prefers to read all the wiki's in advance to learn as much as he can about the game before he even launches it for the first time. Jack likes adventure and Charlie is a power player who likes to dominate.
The above setting is not a balanced one because Charlie has an unfair off-game information source and thus an advantage over Jack. And Charlie is not playing a role in the game, he simply wants to win.
What we're doing with Rituals of the old is that we're trying to make a game which has people like Jack as the target group - people who love adventure, discovery and mystery. Magic is a powerful thing to learn in a single day from a wiki. So what can we do about the power players and other casual wiki-cheaters to square things off?
Randomization
One possible solution I've been thinking about would be to randomize everything either on a per player basis or on a per sever basis.
Randomization on a per player basis would mean that instead of having one definitive way to achieve an end result we would have countless of possible combinations - per player. This would make documenting the data on a wiki page completely useless for the players since they would have no way of knowing how everything works for them personally. The only way to know would be to experiment and to discover.
The negative side of this would be that factual player-to-player communication about magic inside the game would be as impossible.
One possible solution to this conundrum would be using server side parsing to synchronize the information in books, speech, animations and other abstract representations and to interpret it in unified manner for the clients.
So basically Jack would do a hand symbol representing "water" and Charlie would see it as "fire". Jack would read instructions in a book to say the words "Hur Ain" and Charlie would look at the same book and see different words but when uttered by Charlie Jack would hear them as "Hur Ain".
There are problems with this approach and everything cannot be corrected. And it's a bit heavy on the engineering side.
Randomization on a per server basis on the other hand would not completely prevent communication about magic outside of the server which would essentially enable cheating by sharing information by IM, forums, etc. It would also allow servers to make their own wikis if they'd like while also preventing the larger internet wide problem with spoilers. No two servers would have the same methods.
The negative side of both of these approached would be that it would generalize and weaken the lore of the game by unavoidably using more generic causal relationships between the symbolism. It needs to be further studied whether these approaches can be used without making too much compromises.
Personally I would prefer a game with some mystery and unpredictability in it. If it will be possible at the release of the game to write step-by-step instructions on a wiki titled "how to become a witch" that can be followed to a success without a fail then I know I have failed with this goal.