Open Source Copy Protection

Started by
10 comments, last by Deyja 18 years, 9 months ago
"In a single-player context, an open source game engine necessarily means trivial piracy of game content." Discuss. Or, in other words: Can it be a financially viable prospect to sell a game based upon an open source game engine? Either the copy protection could be part of the standard distribution, in which case its inner workings is easily available to would-be crackers, or it could be added later by the game developers themselves, in which case a version without protection is available to crackers. Are there any existing copy protection systems that can deal with this? (presumably if there are, they would have to involve some kind of online 'activation', but personally I can't think of a method that would actually work).
Advertisement
People have figured out the CD-Key checksum algorithms for proprietary games and they still sold.

People have written tools to extract game content from proprietary games and they still sold.

All you can do (commercially or open source) is make the point that game content is not for redistribution. If you wish to implement some form of copy protection and the engine's license allows linking to proprietary modules, then just don't openly license the copy protection module. It's perfectly legal and as equally effective as if the engine was proprietary.

If crackers download the version without copy protection then they're really gaining nothing, since the game's data files, etc, are not covered by the open source license anyway, so it's completely useless to a player.
Quote:Original post by Motz
If you wish to implement some form of copy protection and the engine's license allows linking to proprietary modules, then just don't openly license the copy protection module. It's perfectly legal and as equally effective as if the engine was proprietary.

If crackers download the version without copy protection then they're really gaining nothing, since the game's data files, etc, are not covered by the open source license anyway, so it's completely useless to a player.


From what I've read, the best copy protection is the kind that is built right into the game at the deepest level, so that you have to play through the entire game to make sure a crack has been successful (perhaps less armour is available for hacked players, or weapons are less accurrate, and there might be some randomness in there too so it's more or less impossible to fully test your crack) so the extra copy protection module that is just tacked on at the end may not be so successful. Also, the advantage of having the version without copy protection is that a quick diff makes it much easier to identify the copy protection code within the executable, and hence isolate and remove it.
Quote:Original post by AndyGeers
From what I've read, the best copy protection is the kind that is built right into the game at the deepest level, so that you have to play through the entire game to make sure a crack has been successful (perhaps less armour is available for hacked players, or weapons are less accurrate, and there might be some randomness in there too so it's more or less impossible to fully test your crack) so the extra copy protection module that is just tacked on at the end may not be so successful. Also, the advantage of having the version without copy protection is that a quick diff makes it much easier to identify the copy protection code within the executable, and hence isolate and remove it.


Wouldn't that just make people think your game is crap and make sure their friends don't try it? Or did I miss something?

E.g. having the protection kick in for the last boss etc won't help anyone, the player will get furious, and the author wouldn't get any money either way, perhaps even less.


Quote:Original post by AndyGeers
From what I've read, the best copy protection is the kind that is built right into the game at the deepest level, so that you have to play through the entire game to make sure a crack has been successful (perhaps less armour is available for hacked players, or weapons are less accurrate, and there might be some randomness in there too so it's more or less impossible to fully test your crack) so the extra copy protection module that is just tacked on at the end may not be so successful. Also, the advantage of having the version without copy protection is that a quick diff makes it much easier to identify the copy protection code within the executable, and hence isolate and remove it.


The last thing you'd want to do is to intentionally make a cracked game work badly. People who play a cracked copy of your game will just think that your game sucks. I don't think you can afford that kind of bad publicity, even if you don't approve cracking your games copy protection.
Also, while you can place copy protection check through out your game, it'll make little difference, if all of the check essentially do the same thing, ie. try to read some specific bad sectors from the CD or something like that. The crackers will just create a fix around the copy protection check itself, without even trying to find all the places, where you've coded a check, so you just end up wasting alot of your own time.
Quote:Original post by AndyGeers
From what I've read, the best copy protection is the kind that is built right into the game at the deepest level, so that you have to play through the entire game to make sure a crack has been successful (perhaps less armour is available for hacked players, or weapons are less accurrate, and there might be some randomness in there too so it's more or less impossible to fully test your crack) so the extra copy protection module that is just tacked on at the end may not be so successful. Also, the advantage of having the version without copy protection is that a quick diff makes it much easier to identify the copy protection code within the executable, and hence isolate and remove it.


Not really. You would never be required to create binary build of the unprotected code, since an Open Source license wouldn't stipulate that you had to. As such, the cracker would never see an unprotected build from your development box that he could perform a reliable diff against. The first place that he'll trip up is if there are several different compilers for your language of choice (let's say it's in C++, for simplicity's sake). If you're using G++ and he's using MSVC++, then you're going to get different code built for a start. It will do the same thing in effect, but a binary diff would be all but useless. Secondly, if you've used different compiler flags, then it becomes even harder. Your compiler may have unrolled loops that his didn't, or his may have inlined a function which yours decided against doing. If you want to get really obnoxious, you can further secure the program with an EXE packer or whatever.
Quote:Original post by Syranide
Wouldn't that just make people think your game is crap and make sure their friends don't try it? Or did I miss something?

E.g. having the protection kick in for the last boss etc won't help anyone, the player will get furious, and the author wouldn't get any money either way, perhaps even less.


You may be right, it's just an idea that I've heard several times before, and Codemasters mentioned they do it in this month's issue of "Develop" magazine (in the UK)

You could go the key gen way but have a server running all day that verifies the cdkey upon opening the program. When people first run it they are required to enter the cdkey and register it. A name and pass can be provided, now that program can only be run on a comp which knows the name/pass/key.

Altho thats a little extreme since it means anyone running ur program NEEDS an internet connection... And its still easy to bypass the inital key check... With some crackin of the exe, remove from lines, insert a goto.

Honestly, I doubt there is any way to ever protect ur game open source or not. So just make em.
In my opinion, unless you are going for the latest copy protection used today, then don't bother too much, eitherway your application will be cracked by anyone with the slighest experience...

But having a simple name and key-registration would probably be appropriate, as that would of course remind the people that got your application that it truly isn't freeware, but that one should pay for it. (otherwise it is likely to get the scenario where it is cracked/bought and spread, and no one will ever know that it costs money). (yes of course the entire check could be removed, but likely not as they would just trick the "validator".)

Hmm, you will distribute your engine open source? (totally missed that), then you can truly forget any copy protection except for those that provide a small stop as a reminider that it should be bought. Copy protecting open source is pretty much impossible unless you rely on a non-open source part which can be protected, but having the code infront of you, it isn't very challanging at all to find the "validator"-function.

Just a personal thought.


Quote:Original post by AndyGeers
"In a single-player context, an open source game engine necessarily means trivial piracy of game content." Discuss.


Doing a web search for software piracy shows that piracy of closed source games is pretty trivial once someone has found a way to do it.

It also depends on which open source license you're using, something like the MIT, BSD, or zlib licenses means you don't have to share your source. Using the GPL means you will have to share your source.


Quote:Can it be a financially viable prospect to sell a game based upon an open source game engine?

Yes. But if the game is any good, expect the content to be pirated either at or above the rate of closed source software.

You're also going to have to make the content not available online, you'll have to either arrange shelf space at retail stores or mail out CDs or DVDs yourself. Regardless, expect this content to become freely available on the internet as quickly as commercial closed source games are pirated today.

This topic is closed to new replies.

Advertisement