Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

With so many XNA asset viewers out there, how do I distribute my XNA game for PC without having my assets open for persons to steal or manipulate? I know i can create custom asset importer/processor, but that's too time consuming right now. So, are there any alternatives to securing my assets?

model viewers:

http://modelviewer.codeplex.com/

http://xnamodelviewer.codeplex.com/

https://github.com/devpro/Xna-Model-Viewer

Edit: found a solution: http://www.xnawiki.com/index.php/Compressed/Encrypted_Content_Archive I was looking for something like this all along, but there is still the problem of 3d ripper dx. I guess i'll have to rely on copyright as my protection

share|improve this question
2  
You've hit the only real answer yourself. Write a content importer and change the info you're saving. –  Phil Jan 17 '13 at 0:25
    
this article proposed a possible solution i might look into: c-sharpcorner.com/uploadfile/iersoy/… –  Nicolas Brown Jan 17 '13 at 0:33
    
Note that since its written in .net, you would need also to obfuscate your code so that someone can't just look at your reader code - you need to change how writer and reader works, importer is the thing that loads 3rd party formats to your processor. And even then, since its directx, everyone can just something like 3D ripper DX and capture your models directly form game (with some limitations). –  Kikaimaru Jan 17 '13 at 9:30
    
what are the limitations? –  Nicolas Brown Jan 17 '13 at 14:43
    
You can't capture animations. I didn't use it that much, there maybe other limitations. Btw I agree with others, there is no way you could protect models if someone really wants them. And I don't see how someone using your models for his testing, since he can't publish game with copyrighted models, would hurt you. Btw now you can get models from most of AAA games very easily. –  Kikaimaru Jan 18 '13 at 8:06
show 1 more comment

2 Answers

up vote 5 down vote accepted

There is no way to securely protect your assets. You can make it more difficult to get them, but you can't prevent it.

The reason is that in order to use your assets, your game program must be able to read them. And when the game program can read them, any other program can do the same.

You could encrypt your resource files somehow. Even a very weak encryption, like XOR-ing all files with your lucky number, would break any off-the-shelf resource viewer. But in order to read them, your game must include the encryption algorithm and the encryption key. A determined hacker will be able to extract these through reverse engineering and then extract your resources or even release a customized resource viewer for your game, when there is a demand for that. Obfuscation of your code can make this harder, but it can't make it impossible. Any code which is readable for the machine is also readable for a dedicated human.

The best way to prevent others from using your assets is by exercising your rights according to international copyright law.

share|improve this answer
add comment

There is this thing called copyright. It gives you all the protection you need.

If someone wants to steal your assets, they're going to do so whether you waste your time on obfuscating your data or not. If it isn't an XNA asset viewer, it'll be 3d Ripper DX or something like it.

Now, a more interesting question is to ask why you think someone is going to steal your assets, and if they do, how is it going to hurt you?

share|improve this answer
    
3d ripper dx may be a problem :/....any way to work around it? –  Nicolas Brown Jan 17 '13 at 14:54
    
No. My point is -- don't bother trying to "protect" your assets with technical means, since it's a futile waste of time. If someone is ripping off your assets, use the fact that you own the copyright and sic some lawyers on them. –  ccxvii Jan 17 '13 at 15:19
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.