Hey again (I asked about Gunvolt, super happy you enjoyed it as much as you did), I saw your blog entry about secrets and wanted to ask if in this age of the internet and datamining, do you think it’s possible to hide secrets as well as older games have done? Any special methods you can think of?
The easiest thing you can do is encrypt or keep resources off the hard drive. Don’t describe whatever it is in plaintext, because that’ll get dumped then ctrl F’d. Don’t store whatever you’re hiding in plaintext anywhere. Don’t name the files after it, don’t name the folders after it, don’t have any references to it in any image or sound file, unless you encrypt those files, and hide the encrypted result inside another file that is of a type people would overlook.
The key for hiding things from modern day datamining is Steganography paired with cryptography. Cryptography means nobody can hit ctrl F and find it. Steganography means nobody thinks to look for it.
This is of course assuming that what you want to hide is an object represented in text, with textures, with models, with sound. If you want to hide a particular gameplay interaction, that’s fairly easy. It just needs its own variables that are not tied to any of the more commonly used variables.
For reference, look at a lot of the undertale datamining efforts, especially the research into the Fun variable.
http://rawr.ws/undertale/
https://tcrf.net/Undertale
Of course, Undertale being made in game maker also makes it particularly susceptible to data mining, since game maker games can be decompiled into the raw GMK file.
Building secrets in the age of datamining means being sneaky basically, in original ways. It also means not building an expectation that there are secrets that need datamining.
Building a game that is actually resistant to datamining is falling into like, DRM territory and code obfuscation territory. There’s a lot of weird ways to do things with code that can produce results like that. Like if you really really don’t want assets to get read, you can use algorithms to procedurally generate them using code, which I can’t explain how to even do.
Beyond that, hiding easter eggs isn’t so hard. You can do dumb things like have people type out passwords, press random button combinations, walk over invisible switches in specific orders, check the same place 50 times, and so on.
Or more clever things like have the enchanted forest water in Wind Waker instantly kill the forbidden forest boss.
Or being able to punch the bald bull during his charge in punchout by using the camera in the audience as a tell.
Or having a secret way to complete an entire secret sam level pacifistically.
Or everything in dark souls, from hidden ways back to the asylum, to hidden rooms, to hidden bosses, to hidden worlds, to hidden invasion covenants, to hidden everything. It took a really long time to find all of dark souls’ secrets.
The thing I think you want to establish is a steady drip of secrets. If your game calls too much attention to itself, like Undertale did, then it gets datamined and all the secrets are out in a year or less. Dark Souls 3 had a similar treatment, but also its secrets weren’t as well hidden.