Who has implemented a licensing API/SDK

Started by
24 comments, last by codingo 10 years, 6 months ago

I'm starting this topic to get general information, anecdotes, tips, warnings, suggestions, recommendations, ideas from all those out there who have ever implemented a licensing scheme into their application be it a licensing API/SDK or your own proprietary solution.

I've written a small program and have looked at services from Halpeiron, Safe-Net, RLM and others and have recently began implementing one solution into my app. It is a process of learning a new, and from the looks of the documentation, robust SDK that deals with areas of programming I have never explored before. I do 3d math stuff. This SDK deals with network calls, encryption, permissions, XML and really tricky code styles that rely on many many defines, function pointers, and many many funky functions that do obscure things that I can't find in a myriad of books that deal with 3d graphics programming.

What was your experience like?

Advertisement
My experience was that it was an utter waste of time and trivially cracked by an amateur reverse engineer (me) in a matter of a few minutes for the simpler solutions, and a couple of days of hardcore reversing for the more sophisticated options out there. (I won't name them, for legal reasons.)

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Yes even the most sophicticated services like Halpeiron stipulate that if someone wants to crack your code bad enough, they will do it. So is it even worthwhile protecting your product?

what sophisticated solutions did you explore?

I tend to figure Apoch has it correct. Most DRM solutions are trivial to bypass and generate "valid" keys once folks get even a basic sampling of keys. I have integrated (under protest if it was more than a unique ID) many of the different DRM solutions out there and they are ALL crap in one way or another. They range from light DRM with SHA/MD/whatever generated hash keys to massive invasive BS that is a complete nightmare of integration. The light user friendly ones are easily broken, the heavy handed ones are a pain in the ass to integrate and generally end up pissing off your actual customers and still not preventing piracy.

What Apoch doesn't say, though hinted at it. No matter the DRM, the game *WILL* be hacked and pirated. (Even Ubisoft's 'uncrackable' you don't have all the code was hacked.) You have two choices: live with it or implement a fail solution (tie your game to servers so the client never gets everything) like SimCity 5 which was a complete disaster. The problem with DRM is that it will be broken, usually within days, and you can't do jack about this. It is literally you versus thousands and anything with popularity will be of interest to those thousands. Implementing the Sim City 5 solution is a fail case. Your pre-purchasers are due to the fan base who will buy no matter what. When it comes out and is crippled because of the DRM by a happier name, even your initial fan base starts saying "don't buy this" and you have destroyed your franchise.

So, obviously, my experience is completely negative. First off, no matter how much you work at it, 1:1000 odds are that a cracked version will turn up within days, if not hours of the release. If you really work at it and do a SimCity 5 style always online DRM you will loose even your pre-order fan base because the DRM is onerous and annoying to the point that even those fans become disenfranchised. Loosing the folks willing to preorder is a ***STUPID*** business idea no matter how much you hate piracy. (Could I somehow make "STUPID" stand out more? smile.png)

I'd even say that if whatever you code doesn't gets cracked in a short while, your product isn't popular at all :D

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

Steams CEG solution seems to be the better direction for this stuff, as it doesn't impair the game on a functional level. It just makes it so you can't use certain features or texts are changed to other things. Which can make a game look like this:

this is a pirate copy hence the Yarrrr replacement of real text smile.png, we never disabled the game other then the text. Batman Arkham made the game playable up until you had to use your cape to glide somewhere which the game didnt allow if it was a pirated copy.

These are also crackable but more subtle and make your game act like a demo for the real product, so that when users start to complain on your forums you can tell them, to buy the full version to get ride of the issues.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

My opinion on DRM is it will always be cracked and only annoy people who legally bought your program. At the same time people would probably be encouraged in copying when there is no protection.

So I would go for something very light and cheap that just prevents casual copy and paste and hopefully gives you a few days(or more likely hours depending on your luck) before its cracked. Then later you can remove it in a patch without loosing much effort, if you feel like it gives you a reputation boost to call your program DRM-free.

There is an example: http://rampantgames.com/blog/?p=6446

My take on this is that you need some really basic stuff to prevent the not-very-small population of extremely nontechnical people from just copy-pasting. Other than that, the more popular you are, the faster they will crack you.

When The Witcher 2 was released, there was a DRMed disc-based version sold in stores and a completely DRM-free release on GoG.com (as well as some other distribution channels), all at the same time. The game showed up on file sharing sites within hours of being released, however the version showing up there was practically exclusively the cracked, DRM version.
I couldn't find the original interview where that was mentioned but the story is referenced here.

On a more personal note, when I consider buying a game nowadays the first thing I find out is "Does it have DRM?". Unless I can answer quickly that the answer is a simple "No, it does not", I will abandon all intentions of buying the game, no matter how much anything in there interests me.
I have dealt with Steam, I have dealt with other handrolled DRM and I'm just no longer willing to put up with it. On the other hand, I'm spending well over the average when anything in a (DRM-free) Humble Bundle interests me, I have accumulated a rather huge library from GoG and I have left quite a bit of money with several indie developers who go DRM-free (and mark that properly).

A similar attitude is mirrored in friends with the exception that they are generally more accepting of Steam.


These are also crackable but more subtle...

That seems like an interesting solution.

How do you reason with someone who wants instant gratification by asking them to make the choice between 'free' or 'at-cost'? It makes it very difficult to make any endeavor profitable.

This topic is closed to new replies.

Advertisement