In the last journal post I expressed my dissatisfaction with the over-the-top copy protection scheme EA was incorporating into the PC released of Mass Effect and Spore. My main objection was that rechecking the validation of a game every 10 days was like a slap in the face for those who actually bought the game. Subsequently it seems they quickly dropped that particular element. And I've also heard that it didn't delay the crack for Mass Effect by more than a few days, so it's not as if it would have been much of a benefit.
However if I plan to make an indie game for sale, then I'll eventually have to tackle the question of copy protection myself. Is it worth it to include copy protection in an indie game, or conversely is it folly to release a non-protected game for download over the internet?
I'm aware of Stardock and their copy protection free Galactic Civilizations II, but I'm not sure if their model is directly applicable to the sorts of games I wish to make. My understanding is that Gal.Civ.2 is unprotected for single player or local LAN play, but requires activation for internet play or downloading updates. Also, the game itself is quite large with about a CDs worth of material. My games however are far more likely to be single player only and small downloads.
I'm also of the opinion that spending any significant amount of effort to come up with a crack-proof system is wasteful, as absolutely anything and everything seems to be crackable these days. The options for my games would be either no copy protection or something very simple just to stop very casual copying. Furthermore, I also consider anything that makes it significantly more of a hassle to play the game for paying customers than pirates to be pointless as well. Anything more than a one-time entry of a key would be too much, and something done automatically would be better.
On the practical side of things, having no copy protection would make designing the program easier, especially if I go with Python at the core. I could release the main program script as there's no need to protect the part that does the copy protection. Plus I really don't want to spend much time working on how to integrate copy protection that could be spent doing something else.
And on the social side, I'd much rather deal honestly with customers who are the kind of people nice enough to buy my game than try to whack them with restrictions in order to rap the knuckles of would-be pirates. But there's a small part of me that's wondering if I'm naive about this.
The obvious thing to do is make it much easier to be honest and buy the game from the official channels than get it from somewhere else. My concern isn't so much about the warez sites lurking around the bowels of the internet; the sort of person who frequents those isn't the sort of person who would buy my game anyway. I'm more worried about casual copying; friends giving copies of games to other friends. That's the sort of thing a simple protection scheme can help against. However if it's at the cost of playability for the customers, or it wouldn't be much more of a benefit over, say, including a reminder screen in the game to please not share copies, would it be worth it?
I know I'm babbling now, but it's something that has been lurking in the back of my mind for months now. Personally I want to trust potential customers to pay for software, because I feel if you approach your customers with the mindset that you trust them, then you're more likely to attract those who are genuinely trustworthy. But I'm not an expert in business, so I don't know if this is a foolish philosophy to take.
Regardless it's not something that I need an answer for right away, as it's not as if I'm close to being ready to launch a business. But it is something I think I need to keep in mind as part of the whole parcel of customer relations, a completely new area for me to make new and exciting mistakes in.
The easiest way to do this is if you have online play that is facilitated by your own servers. In this case you can make it so that each user can only be logged on once (concurrently). Its certainly not crack-proof, but cracking it would most likely be beyond the capabilities of the average user, that's pretty much the best you can hope for.
To facilitate this you have to keep a database of unique registered user keys, not authorization algo. That way, people can't create a "key gen" program that can create a valid key from scratch. When someone pays for the full version of your game, they get a file with the registration code that identifies them on your servers. Someone could copy the game, but if they tried to go online at the same time as their friend, one (or both) of them would get kicked, or blocked from playing.
On the other hand, you could use the Diablo/StarCraft model, where someone can play with a copy of the game, but only with that person they copied the game from. That way they can play the game a bit and get introduced to it, but if they want to play on their own, they'll have to buy a copy.
That's my $0.02 on the subject. Its certainly not definitive.