Thursday, February 25, 2010

The Awful Anti-Pirate System That Will Probably Work

So, when I read that Assassin's Creed 2 for the PC would fight piracy by requiring a live internet connection all the time when you were playing, I thought it was a joke. Sort of a dry, post-modern satire of the whole idea of DRM. Then I learned that, if your internet connection broke while playing it, the game would freeze. What's more, if the connection didn't return soon enough, the game would quit and your progress would be unsaved. This convinced me that the whole thing was a joke.

Then I learned, as explicitly confirmed by Ubisoft representatives, no. Not a joke. Not at all.

Of course, this is pretty harsh medicine, and the many reasons this set-up is hostile have been ably discussed. What if you have an inconsistent internet connection? What if servers ever go down? (Due to malfunction, bankruptcy, or no longer wanting to pay to maintain them.)

Also, you don't hold onto your saved games anymore. They do. This part is really significant. That's why the game needs the net connection all the time. It's not just for their amusement. The constant contact is necessary because your game is saved on their machine. Not yours. They are claiming that this is for your convenience, because then you can get at your saved games from any computer anywhere, but nobody is fooled.

But, in all the writing and bitching on the topic, everyone seems to be missing the most significant detail of this new system. Everyone always assumes that all DRM will be broken immediately and pirated versions will appear instantly and anti-hacker measures never work. But this system (and I know saying this will immediately get me written off as an idiot, but bear with me) is the one that will finally do a good enough job of holding off pirates. It won't hold them off forever (I think) but it will hold them long enough for the game to get its sales.

Here's why ... This is how hacking usually works. A game (or word processor, or operating system) is programmed to, say, check in at launch with the home server to make sure it's a legal copy. The hacker goes through the code and looks for that line of software and disables it. Snip. And the program is cracked and ready to be sent to the Torrents. This is a bit of a simplification, but it gets at the heart of the thing. Most hacking require disabling a small chunk of the program, and that is not hard.

But Assassin's Creed 2 is different. Remember, all of the code for saving and loading games (a significant feature, I'm sure you would agree) is tied into logging into a distant server and sending data back and forth. This vital and complex bit of code has been written from the ground up to require having the saved games live on a machine far away, with said machine being programmed to accept, save, and return the game data. This is a far more difficult problem for a hacker to circumvent. What are the options?

1. Make your own, free saved game server and alter the application code to use it.

This means a lot of work and expense, both to duplicate Ubisoft's game saving code and to set up and maintain the servers. Won't happen.

2. Trick the Ubisoft servers into believing you have a legit copy, so that they will let you save your game.

OK, the hackers will probably eventually come up with a keygen program. This is tricky, because the software that generates the keys will be in Ubisoft's hands, far from prying eyes. But they could possible do it, given a bit of time. But if they ever figure out you have a fake or duplicate key (and I bet they have their ways), poof. Your account and saved games disappear. I don't think this will work.

3. Hack the game to not need to save games on a remote server.

This means a hacker has to figure out the saved game format, somehow jam into the application new code to write the saved data and new code to read it, TEST IT, and get it to work. Doable. But it will take time, and I bet you'd get some bugs in the process.

So this will be a tough nut to crack.

Remember what it takes to get DRM to work. It doesn't have to be uncrackable. Nothing is. All it has to do is delay the hackers long enough for the game to get a couple months worth of sales. And by turning a key part of their game into a MMO ("We, like WoW, control the saved game, not you."), they have come up with a clever and brutal way to do just that.

But this will make everyone hate them.

Perhaps. Make no mistake. Ubisoft will lose customers and earn much nerdrage over this. But they are engaged in a grand experiment. They are seeing if an adequately pirate-proof game can make money. Will keeping cracked copies off the Torrents for a month make extra sales? And enough extra sales to make writing PC games worthwhile? Because the current system, where 90% of the copies out there are pirated and only megahits that could turn a profit on that 10%, doesn't seem to be working.

But it's an amazingly harsh system. As much as I hope for someone to come up with an anti-hacker measure that can reliably hold off the thieves for a few months without ticking the entire planet off (so that I can start using it), well, I wouldn't buy a game with the system Ubisoft is using. I really sympathize with what they're trying to do, and I can't join in with the (almost) unanimous chorus of rage. But this doesn't feel like the answer.

People might buy more copies of Assassin's Creed 2, but this is the sort of measure that can sour people on PC gaming as a whole. And that hurts everyone. Including me.

Edit: Thanks everyone for the comments! A couple responses.

Yes, of course there are solutions for making your own authentication server. But for the DRM to work, all it has to do is 1. delay the cracking, and 2. make it difficult/unreliable for the bulk of non-super-technically-apt gamers. Making people set up their own servers (on their own machines or not) is enough of a barrier to entry to get the job done.

Remember, I didn't say it was uncrackable, only that it was difficult/slow enough to give a profitable first few months.

As for the game making local copies of the saved games. IF this turns out to be the case, and IF the game also has easily accessible features in place for loading those saves (as opposed to only caching them there and only being able to load from the distant server), then yes, it's a dumb and easily crackable system. But even if this is the case, that doesn't change the fact that the next game to use this system will be slow to crack for the reasons given above, and all of the factors and consequences given above still apply.

Edit 2: One quick question for the "Anything can be cracked right away." crowd. Where do I get my cracked copy of World of Warcraft that can play the real game (not some cobbled together emulation server) without paying. Answer: You can't.

Once you accept the need for a constant internet connection, the developer can just load more and more of the game logic onto the servers. Right now, they're just trying it with saved games. (And who knows what else? Do any of us really know what the game is using that constant internet connection for?) But they can put more and more of the game onto their end until cracking the game will involve rewriting the damn thing.

Oh, and by the way, people accept their game needing a constant internet connection all the time. WoW. CounterStrike. Team Fortress. So saying people won't accept it for single player games is a bit of a stretch. They'll get used to it soon enough.

Edit 3: Wow. Main page Slashdot. The Escapist. All the hate is making my face burn. I've written a follow-up article, but I'm posting a squib from it now because I want to address the most common and fallacious point, that any system can easily be cracked:

"You want your very-difficult-to-crack DRM system? Here it is! Take all the statistics and scripts for creatures and items and weapons and put them on the server. The game only downloads them when it needs them. This is ten thousand scripts and bits of data, and it will take a long time for a cracker to get the game to download them so he can isolate and read them all and put them in his fake server/cracked game. And God help you if he missed an item. Don't just wave your hands and go, "Oh, someone could break that easy." This. Would. Work.

(And I bet Assassin's Creed 2 has some of this and they just haven't told us yet. Remember, it has to be using that constant net connection for something.)"

No comments:

Post a Comment