Release the engine as open source. Accept donations.
Piracy = defeated.
^^^^^
This :D
You aren't going to beat piracy, ever. People that do beat piracy have a product that nobody wants ;)
What you can do is make it either really difficult (at the expense of user frustration) or change the business and deployment model.
Many games companies choose option 1. Because F*** YOU THAT'S WHY... But in my honest opinion that doesn't help and add costs to development.
The second problem is pricing. We are seen as a resource to be exploited, hence the prices keep on rising. Paying £40-£50 ($70-$90) for a game is ludicrous! So people pirate it.
Solution?
1. Go open source and accept "Donations". This is...a bad idea for your business. Truly. Consumers are unreliable and want your game for free! Many people only care about themselves and are of the opinion of "If I don't have to, why should I?" Many people will, but this hasn't really stopped the problem you're facing. People using your game for free.
2. If you have an online based game, go Free-To-Play. People like having the option to "get something better" (Personally, I'd keep this cosmetic, because Pay-To-Win can go ... you get the idea) which links to option 3.
3. Have "Veteran" or "Gold" packages. Some of the game is stripped down for the free version, you allow access to this content from a valid paid for account. Maybe have extra mission areas (which drop cosmetic gear), some better clothes, allow you to PM 50 people at once, who knows. Up to you, but try not to make the extra content game breaking/requirement. Because then people feel they are forced to pay, which is bad. People are much more willing to hand over small amounts of money, more often, for something that is optional..4 ;)
4. Micro-Transactions. These are named as such because the amounts are deceivingly small. Farmville is the best example of this model I have ever seen. Buy 20 EXTRA MEGA EPIC SEEDS only £0.50! What's 50 pence/half a dollar/euro to most people. Hell I lose more than that a month. People spend small, but often. At the end of the month they might have spent £20. But they don't realise this, because each individual spend is tiny (This also belongs in the Free-To-Play model)
5. Don't charge a lot for the game. Really is that straight-forward. Don't think you can get away with charging £24.99. If your game is small, lacks content/artwork, you can't charge as much. Also, yes, people are that shallow. If a game *looks* good, they're willing to spend more, even without the gameplay element.
6. Make it online only and change the protocol often. If the network protocol is obfuscated and changed on a bi-weekly basis. This stops people from reverse engineering your protocol and creating a fake authentication server.
So, there you have 6 suggestions on how to reduce (or more or less eradicate) piracy =)