How to 'ship' your game assets

Started by
15 comments, last by cozzie 10 years, 11 months ago

I would have things simply renamed or compressed into zip files named something else. The reason is that something this basic would stop many would-be hackers, and NOTHING will stop the real hackers. Let's say that these simple things are 10% effort, with 100% being something like an all out DRM(like maybe the famous one from Spore that was cracked very quickly anyway). The average game player may look at files, but when they don't see something familiar(like files with zip icons, etc...) they won't do much else. Let's say this is 95% of the game players, which of course may be off, but it can't be THAT far off. So....10% effort stops 95% of the players from hacking, and the other 5% wouldn't have been stopped even at 100% effort, so though there is no reaspon to go all out, there is also no reason to not do that small 10%.



Advertisement

non-standard file-formats are likely to be a bigger protection than encryption:

with encryption, once they figure out the basic algorithm and/or encryption keys, they are done;

with a non-standard file-format, they have the data, but may still need to go through the time/effort to reverse-engineer the file-format and write loaders/converters/...

granted, many straightforward uncompressed formats can generally be worked out pretty quickly just by looking at a hex-dump, but if it is a non-standard compressed format, there wont be so many obvious visual cues (it may well just look like a garbled mess of random bits).

like, say, the developer uses a custom arithmetic-coded BWT variant or similar (vs something more obvious, like Deflate... like person looks at a hex-dump and spots "78 DA" from the ZLib header or something... or if savvy, will recognize the magic numbers used in things like BZip2 and similar as well, ... at which point you have pretty much already lost...).

even as such, a determined person will still probably have it all figured out within a few days or weeks.

(then again, who knows, maybe if a person can devise "sufficiently convoluted" file formats, it might well slow them down... like, say, they didn't expect some random glob of compressed data to use right-to-left bit-packing, or variable-width gray-codes as numbers, or text strings are obfuscated as pseudo Chinese, or whatever else... then maybe figuring it out takes them around a month...).

granted, there are other reasons for making custom file-formats though...

Please don't take this as offensive, but it really comes down to several simple questions. Who are you fighting? Why are you fighting them? And what do you think you gain in the process? After 20 years of making games, I still don't follow this chain of thought, much like I don't believe in DRM beyond the "enter your key" level or non-intrusive Steam style which still allows play off line. You are blocking 95% of folks from doing something they might enjoy because 5% scare you, but you admit the 5% will do it anyway so, what is actually gained? If it makes the customer happy to fiddle with the assets on their local computer, that's fine with me. Grammy thinks her character should wear pink instead of black, making it easy for her grandson to make the change will make them both happy in ways beyond the initial intention of the game. If someone wants to use an asset as their Facebook image, please do, it's free advertising and the best form of up voting possible.

The only time worrying about asset integrity really matters is online games where modified assets can change the game experience for *others*, I don't give a damn what the hacker does locally. Of course, this is generally going to be the 5% everyone so far as agreed that you can't beat, they will figure it out. Asset protection locally isn't going to work against this group and all you can do is help prevent them from ruining the game for others which has little or nothing to do with preventing asset modifications. Yes, common cheats are to hack opponent models to include huge axis bars so they show up from a long way away as easy to see, or to change shaders to render all opponents as hot pink without lighting. Even if you could prevent this from the assets side, they can go in with D3D/GL intercepts and add it outside of your games control. But, ignore all of that because it is way beyond the scope here.

So, back to the original point, the only people a single player game is fighting through obfuscation is your paying customer base. Err, contradiction much, you are trying to entertain them but hiding a vector of entertainment value to some of them? What a person does with their personal computer is not a damned bit of my business, just please clear your browser history before you let my niece and nephew use your computer. :) Other than the multiplayer aspect, everytime I see encrypt your files, obfuscate etc, I roll my eyes.

FWIW: I was sort of implying that all the effort that a person could put into encryption/obfuscation/... is ultimately pointless...

Interesting thoughts, thanks everyone for all the input.
Probably this expains why ID ships big 'pak' files just to improve reading speed of the data. And another example, why valve ships a bunch of folders with wav files,which probably works fine for them in terms of speed/performance.

I'm going for the little effort option, which simply gives the folder contents the 'feel' I want it to have and keeps the 80% or 90% 'pickers' away.

@alleightup: I follow your thoughts, but when you're in startup, the beginning artist or sound guy in a team might also like it when there's at least a little measure on their content

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

FWIW: I was sort of implying that all the effort that a person could put into encryption/obfuscation/... is ultimately pointless...

That is not entirely true and is entirely personal.

As the OP pointed out - the obfuscation will make the dev team feel safer about it - i.e. they're not just handing out the assets on the silver platter in the directory named "Take.Me.!!!"

The whole point of the obfuscation, as I see it, is to at least make it a little harder for the bastards that will take it and make them at least work for it (even if all it means for them is running another tool or two).

That, in my opinion, is well worth the few days of a programmer's time. What are 3-5 days on some bigger game, anyway ? It's a great learning excercise, plus it cleans out the whole directory of the old lingering mess.

Plus, as an added bonus, it makes those bastards curse as hell when they decrypt some nice welcome message (or some gory image you left for them in the textures directory) that you prepared for them and loose 15 more minutes - which is always welcome smile.png

VladR My 3rd person action RPG on GreenLight: http://steamcommunity.com/sharedfiles/filedetails/?id=92951596

I fully agree

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

This topic is closed to new replies.

Advertisement