View Full Version : Protecting your media
Hi all
I am a lone wolf developer, so I have to rely of purchasing media for my games.
However, when releasing games, my media is there for anyone to grab.
Does anyone know of any tools to pak and encrypt media ? Should I use zlib ?
I code my games in C++, at the moment it seems zlib is my only option, unless there is some other lib ( hopefully ) out there.
dxgame
07-21-2005, 12:45 AM
How will someone grabbing your media stop you from making money?
ManuelFLara
07-21-2005, 12:46 AM
There's also UnrarLib (http://www.unrarlib.org/), which IMHO is very good (even better than ZLib).
soniCron
07-21-2005, 12:57 AM
Instead of using compression libraries which usually end up being accessable to archive programs like WinZip and WinRAR, just XOR all your data with a unique key. It's not perfect, but if you're really concerned with people stealing your media, this will deter any casual hackers and nothing would stop serious attempts no matter what you do. The amount of time it takes to impliment is almost zero, and worth it if you're interested in protecting your files from joe shmoe.
How will someone grabbing your media stop you from making money?
It wont, just dont like the idea of people taking media I payed for.
mahlzeit
07-21-2005, 01:46 AM
If you license sound effects from certain companies, you may be required to protect/hide them anyway.
hflKitaro
07-21-2005, 02:24 AM
I thought about the same stuff a while ago also. The easisiest and best way I found out was Molebox Pro (Molebox HomePage (http://www.molebox.com) ).
With this app you could pack your data and .exe without even do any code changes. It can be encrypted also. I really like that app. It will cost 119$ to register.
Does anyone here know if:
* The game data is wrapped in with Molebox, will it still be compatible with Reflexive purchase system?? (I think I saw a post about this somewhere)
woah molebox is very cool
hmmm, gotta check the cash flow first :) I see you can get the standard version for $59, but in that version you can only pack media into an exe, not pak files.
Black Hydra
07-21-2005, 08:17 AM
I think the importance of protecting your media is slim. Most the people who are going to be playing or buying your game aren't developers. Out of the developers that do play your game few would steal anything. You might have the odd newbie developer who uses a sound clip or two, but is it really worth your time? From my perspective spending time worrying about piracy is a far greater investment and most the people here still believe that is largely futile.
Actually, I really like it when the developer leaves the background music for the game untouched, sometimes it is really good and I don't mind listening to it when I am not playing. Again, the amount of people who would do this would probably be negligable, but it does give a reason other than time for why you shouldn't encrypt...
Savant
07-21-2005, 08:26 AM
PopCap doesn't protect any of their media and they seem to do alright.
digriz
07-21-2005, 09:28 AM
I see you can get the standard version for $59, but in that version you can only pack media into an exe, not pak files.
Wouldn't your pak file be obsolete if you used the standard version?
Wouldn't your pak file be obsolete if you used the standard version?
yup, it sure would :)
Robert Cummings
07-21-2005, 10:22 AM
Protecting your media is pointless as the people ripping your media cannot legally use it: in fact if they do, and make money from your stuff, you could take them to court for very little money, and sue for damages. But you would need to own the media outright first.
The only case where it's worth protecting the media is when you have entered an agreement with the artist or media providers to protect the content.
Ryan Clark
07-21-2005, 10:26 AM
I've rolled my own solution. If you're using SDL, you can take a look at the tutorials here:
http://gpwiki.org/index.php/C:Custom_Resource_Files
http://gpwiki.org/index.php/C:Displaying_a_Bitmap_from_a_Custom_Resource_File_ using_SDL_RWops
http://gpwiki.org/index.php/C:Playing_a_WAV_Sound_from_a_Custom_Resource_File_ using_SDL_RWops
It's not zipped, but that doesn't matter much to me... the installer is compressed anyway.
Cartman
07-21-2005, 11:11 AM
For those BlitzMax users who haven't discovered this yet, there was a release yesterday of a packing tool for BlitzMax(MPacker). It includes some nice features and is free to everyone. Best features is it's Windows, Mac and Linux compatible.
The news post on it is here (http://www.blitzmax.com/).
The download is here (http://www.blitz3dfr.com/mpacker_projet/mpacker.zip).
I've rolled my own solution. If you're using SDL, you can take a look at the tutorials here:
holy cow !!
you made p fizzwizzle !?!?
I love that game, played the demo yesterday, really thinking of buying it !
Ryan Clark
07-21-2005, 11:45 AM
holy cow !!
you made p fizzwizzle !?!?lol, yes, Matt Parry and I made Professor Fizzwizzle. It uses the techniques described in the above linked tutorials.
I love that game, played the demo yesterday, really thinking of buying it !Excellent! I'm glad to hear it :)
Savant
07-21-2005, 11:50 AM
I need to return to my previous statement, sorry.
Why are people so intent on obfuscating and hiding assets when successful companies like PopCap don't bother in the least? id didn't hide a single asset in Quake3 either - they used renamed zip files for their PAK file system.
What do you believe hiding your assets will gain you?
Robert Cummings
07-21-2005, 12:13 PM
(just wanted to point out that blitzmax also allows you to pack the media with the exe using incbin and that molebox supports a pak file in addition to packing media)
Ryan Clark
07-21-2005, 01:15 PM
Why are people so intent on obfuscating and hiding assets when successful companies like PopCap don't bother in the least?For me, it's one part paranoia, one part "fun technical challenge", and one part "makes the installation faster".
Really, I don't see the harm in it, and since I already know how to do it, why not do it? :)
Savant
07-21-2005, 01:20 PM
There's certainly no harm in doing it (outside of potentially limiting your modding community). I just don't see the need for it when it's argued from the "protect our assets" point of view.
soniCron
07-21-2005, 01:24 PM
Protecting your media is pointless as the people ripping your media cannot legally use it: in fact if they do, and make money from your stuff, you could take them to court for very little money, and sue for damages. But you would need to own the media outright first. While true, it's not entirely feasable. For one, if someone in another country steals your media, it would cost a hell of a lot more to handle the situation than if it was domestic. Even if it was domestic, I believe you have to go where they are and sue, and a plane ticket isn't cheap.
I strongly suspect Kraisoft and Divo Games have used a sound effect (the sound is almost identical, and very unique) from one of my old games in a couple of their products, but I haven't the means to persue any legal action. It's not really worth it, to me. And in this case, since it was a little sound effect, it's somewhat flattering to see it in their commercial products. Of course, the game the sound effect came from wasn't a commercial game, but now that I am entering the commercial sector, I'll be more careful to protect my property.
That said, I'm still not going to bother digitally protecting my media. If you want it that bad, you'll find a way to get it anyway.
Nexic
07-21-2005, 03:16 PM
I use molebox and it works very well.
However it doesn't work with most wrappers. For BigFish and Reflexive I had to use an un-encrpypted version. Really I don't think there are many that are easily compatible with any wrappers.
chanon
07-21-2005, 08:39 PM
I rolled my own too. LIBC is all you need :D
I do remember that in the license agreement when buying sound fx they say that you must not distribute the sound files as bare files. So that's one reason.
Another reason is since my game has many levels each with different background/tileset graphics, I don't want the player to be able to see what the later levels look like before he/she reaches them. I want to keep them curious.
EDIT: (added info about my implementation)
My implementation is almost a full virtual file system. The media loading layer will use MyFS::instance()->open() / read() / write() instead of fopen() fread() fwrite(). The pack file supports nested subfolders. All file paths are referenced with forward slashes like "/path/to/file.ext". The FS abstracts away whether the file is in a pack file or not. Local folders or pack files can be mounted onto a specified path in the virtual file system. The resource system can preload all resources under a specified path.
So in addition to the "protection" reasons, the virtual FS gives a lot of resource handling benefits.
soniCron
07-21-2005, 08:41 PM
...I don't want the player to be able to see what the later levels look like before he/she reaches them. I want to keep them curious. I bet you don't put cheats in, either, do you? ;)
chanon
07-21-2005, 08:51 PM
I bet you don't put cheats in, either, do you? ;)
Heh heh, I haven't decided on that yet :)
tentons
07-21-2005, 09:36 PM
I don't want the player to be able to see what the later levels look like before he/she reaches them. I want to keep them curious.
I was thinking along those lines, but if they've paid for the game, I figure who cares? :) If they want to peek at it, I've got their money so let 'em.
thanks for the response guys. It seems when need be I will write my own solution.
Thanks again.
vBulletin v3.6.0, Copyright ©2000-2008, Jelsoft Enterprises Ltd.