Some people say that piracy cannot be stopped, and while there isn’t a practical solution on how to stop piracy 100%, there are some solutions that can help you at least reduce piracy. My personal opinion is that I would use some pretty good copy protection system and be done with it. But since piracy cannot be completely ignored, here are some ways to deal with it:
 Copy protection system
There are copy protection systems which you can use. They vary in features, and one widely used is SoftwarePassport (previously known as Armadillo). These cost something, but they’ll save time, nerves and money in a long run.
Small tip: If you choose to use this kind of anti-piracy options, make sure your copy protection doesn’t annoy customer.
 Separate demo and full version
This is another very fine way to copy protect your software: simply create separate versions of your product. Your demo version might contain only 30% of the assets, and when people purchase the full version you can give them the full 100% of the elements. It’s very practical and inexpensive way to copy protect your game.
 Online game features or online registration
If you have features that require Internet, you can use online copy protection for your product. One example could be that you wouldn’t send player server list unless user has sent a valid username and password to your game server. That way you couldn’t play the game illegally with others since you wouldn’t get their server information.
 Give discounts or lower the product price
I’m not really recommending this – just rather listing this one as a general way that might decrease piracy. I’m not even that convinced this one is really a solid answer to problems of piracy.
Some people say that this might help getting rid of some pirates. The problem with this approach is naturally that when you lower your price, you get less profits per sale. Then the problem continues: lowering your product price doesn’t not necessarily lead to increased sales.
 Give your product for free
Some people have done radical moves and are giving their product for free. These guys might use some different tactics (like these) to generate income while providing their product for no cost.
 Don’t give away your software source code
This might sound quite basic, but projects with multiple programmers carry a risk of shared source code. While I believe in open development, there is a risk that your source code gets stolen or leaked. If you keep your source code hidden, it means other people cannot get it – but then you face a problem regarding the product progress. I believe in open atmosphere and I focus on getting reliable people in the team, rather than focusing on protecting my code in case somebody isn’t reliable. Working with reliable guys has been better option rather than worrying piracy.
Nevertheless, you might need to consider this to protect your code.
 If your product ends up to some warez site, take legal actions
If your product ends up hacked and into some illegal site, contact the internet service provider of the warez site and tell them about the problem (not the warez people, but those who own and manage the servers physically). Since one email might get ignored, it’s useful to discuss about the warez site first in a forum. While 1 email might get ignored, 10 or 100 emails from different indies can help shutting down the illegal site.
I personally don’t ignore pirates, but I also won’t concentrate on fighting against piracy. The roots of the problem isn’t small income (since how the heck those pirates can afford to buy $1000 computers, but cannot spend $20 on some fine games), it’s the attitude.
That’s why I think you should perform some of the necessary elements (like copy protection system), and then focus on building a great service around a great product.