1
\$\begingroup\$

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

\$\endgroup\$
6
  • 2
    \$\begingroup\$ You've hit the only real answer yourself. Write a content importer and change the info you're saving. \$\endgroup\$
    – Phil
    Commented Jan 17, 2013 at 0:25
  • \$\begingroup\$ this article proposed a possible solution i might look into: c-sharpcorner.com/uploadfile/iersoy/… \$\endgroup\$ Commented Jan 17, 2013 at 0:33
  • \$\begingroup\$ 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). \$\endgroup\$
    – Kikaimaru
    Commented Jan 17, 2013 at 9:30
  • \$\begingroup\$ what are the limitations? \$\endgroup\$ Commented Jan 17, 2013 at 14:43
  • \$\begingroup\$ 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. \$\endgroup\$
    – Kikaimaru
    Commented Jan 18, 2013 at 8:06

2 Answers 2

5
\$\begingroup\$

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.

\$\endgroup\$
2
\$\begingroup\$

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?

\$\endgroup\$
2
  • \$\begingroup\$ 3d ripper dx may be a problem :/....any way to work around it? \$\endgroup\$ Commented Jan 17, 2013 at 14:54
  • \$\begingroup\$ 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. \$\endgroup\$
    – ccxvii
    Commented Jan 17, 2013 at 15:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .