AW: Software License Manager

Malte Brill revolution at derbrill.de
Mon Sep 8 06:27:03 EDT 2008


Hi Tiemo,

I guess everyone has a different take on this and there are quite a  
few options. I will for sure not claim completeness in this email,  
nor will I claim to be right in any point I make. :)

I think it is important not to be paranoid about piracy. There will  
always be the cheapstakes that will try to get everything for free.  
Those will never be your customers. They just won't. If they can not  
get it for free, they will search for something different. I don´t  
think these people is what I need to care about. If I use something  
sophisticated to "protect" my work, I only risk to challenge someone  
to get around my protection scheme. And if they try, they will get  
around it. Using 3rd party technology like wrappers around your  
application only increases the likelyhood that a cracker has it  
easier to get around the protection. If the protection technology is  
cracked for any other application, it will be fairly easy to get  
around it for MY app. too if it is protected using the same  
technology. I would only considder a wrapper option, if I used a  
payment processor with an affiliate system, that stores data in the  
wrapper to pay out my affiliates (custom builts)

IMHO it is important to make it easy enough for a person that is  
willing to open the wallet to do so. And leave them with a "Yes, it  
was worth to pay for it" feeling. This is not only about the  
techology you use to protect your work, but also about the experience  
in buying it. Depending on the kind of application you develop and  
the way you deliver to your users, you have different options, which  
can leave your users with a positive feeling about your software or  
mildly to terribly annoyed.

If you deliver on a disc, you might require the disc to remain in the  
drive, which I would not like to use. I would prefer all the stuff  
installed on my HD or if I need to save space, have the option to run  
of the Disc.
If you deliver download versions you might go the timeout or the  
crippleware approach. A timeout can be based on a date xyz days after  
install, a given time of actual use or a number of launches, while a  
crippled version would become only fully functional after the app has  
been purchased. Both approaches require the user to enter an unlock  
code that he has to purchase from you. For different types of  
programs, different approaches might be the best fit. These methods  
require that you store some information in a sensible place on the  
users machine. So you would need to take care that the file is not  
too easy to find if you go with a timed copy. If you store the key  
for a crippled application, that would be less important, as it would  
not make sense to delete the unlock code and thus reverting the  
programm to demo mode. You have the option to call home, to check if  
the key they are trying to use has been stolen, but I do prefer not  
to. I do not trust apps that call home, why should anyone else?

It is important to make the entering of the key as easy as possible  
(I learned that the hard way). Give an option to paste from clipboard  
and strip all whitespace before and after. Prompt the user if the  
stuff pasted is wrong (multiple lines for example) Nothing is more  
frustrating when you try to enter your user data and it is too  
complicated. If this works in your app, it is important to make it as  
easy as possible for your customer to pay you. If you have to click  
more than twice on your homepage  to buy your product they might have  
lost interest already. If you use an online payment processor make  
sure to send out the registration immediately. Here is how I do it in  
my games:

Game times out after an hour playtime. It has an unlock code checker  
and links to the order now page on my website. Payment is handled by  
PAYPAL (I know, i know) Once purchase is done PAYPAL sends a so  
called instant payment notification to my server. A PHP script  
receives the IPN and extracts the relevant purchase data from the  
IPN. The script then generates an unlock code that the checker in the  
game will parse. This code is sent by email and displays the unlock  
code to the user. The whole process is (hopefully) convenient for the  
buyer, but also saves me a heap of work, as I do no longer need to  
generate unlock codes by hand.

2 euro cents.

Malte


More information about the use-livecode mailing list