Detect Piracy?

Hey guys!

This post (The most extreme punishments for PC gaming cheats and pirates | PC Gamer) began an interesting idea: could I make my game detect piracy somehow?
I’m assuming ue4 doesn’t have this on it’s own, but what does anti-piracy involve? Is it even possible? I mean, I know that it will always be possible to override it, but…

What I’m trying to ask is does either ue4 have this feature or is there a way using c++.

Thanks!

No. The only way to check to see if a game is pirated is with the Steam SDK as Steam includes copy protection. Unless I’m wrong but someone will correct me below, UE4 doesn’t have any native copy protection. However it could be possible to implement in-game anti-piracy. You could start by looking into online subsystems or networking by checking the links below.
https://docs.unrealengine.com/latest/INT/Programming/Online/index.html
https://docs.unrealengine.com/latest/INT/Gameplay/Networking/index.html
Michael

That is common, creative and funny way to deal with piracy; but backfires as bad reviews because most ppl don’t understand why the game is that buggy.

There are a lot of game devs who do this. GameDevTycoon for example lets you get bankrupt, because of piracy, which is the best thing i’ve ever seen.

The truth is, you should not worry about it at all. Ubisoft tried so many different ways to block piracy. The biggest fail was there DRM thing, where you needed
to stay online. They did not prevent any piracy, but lost a lot of customers who did not want to be online all the time.

You just need to accept that people who don’t want to buy the game, won’t buy it. So even if they pirate the game, you lose nothing. That person will not buy
your game, at least not at full price.

So i would not bother with that and just focus on making the game fun enough to be bought.

PS: Only games that need a constant connection to online Servers (MMORPGs for example) and these that don’t have Singleplayer in it, won’t be pirated.
Although even that is not true, because World of Warcraft for example has huge Private servers. They are buggy, but people are playing on them for free.

But here again, these people won’t buy the game and pay for it, so why losing a thought on them (:

As someone who barely buy games and use the sparrow version a lot, there is only a way to make people like me buy a game, make a good game, make it cheap and don’t even think about DLCs if they aren’t free.

If you block pirating people playing your game they will just break through the drm to play your game. It’s a fruitless endeavor. Just look at spore and its drm. Pirates will play your game no matter what. The real meaning and use of DRM is to maximize revenue to the companies by minimizing your rights as a consumer and selling your rights back to you. Even when the internet didn’t exist and we played music on records there was still piracy. Vinyl piracy was huge. VHS had a major opposition at its creation by many in the movie industry. They were basically saying multiple people could watch movies on a given vcr but not all of them had to pay to watch it. The same similarities can be applied to games though. I could buy game x, invite you over and you could play it. Furthermore, I can buy a bag of golf clubs invite you to the greens and let you use them… It’s an idiotic thought process. Piracy has been happening for a long time, and there are no good ways of stopping it outside of having something people way to pay for. If they were not going to buy it originally its not a lost sale, don’t worry about it. Worry about making a great project. There are actually many games that you have to pay for hosted on torrent sites for free by the developers themselves. Granted most of them are not your “aaa” quality title. they are usually indie games. These developers use piracy as a means of publicity and it actually works to a degree. People pay for great stuff, even pirates.

You could just release a pirated version of your game on BitTorrent, but make the pirate release be fatally broken in some way.

People who download the game won’t know the difference between an intentionally broken game released by you and a cracked working game released by some other pirate. In a way, you’re poisoning the well.

I just lol’d. We could talk about all the little work-arounds/ways to poison the well all day. One way would be to purchase servers with extremely fast speeds to sit there and download torrents of your game in order to slow down the downloads for everyone else…

i lol’d here

there are no way to protect your game, unless client build is not full and require connection to network to work, like mmo

It is not a very good idea, because a false positive will result in furious customer.

The only title that handled piracy in decent fashion in that article are Alan Wake and Dark Souls.

And, no, you cannot reliably detect if user is playing pirated version. Any check you make can be bypassed by someone sufficiently skilled.

Also, keep in mind that a good way to make your customers hate you is making them watch anti-piracy warning in something they already paid for.

I think adding unobtrusive stuff like pirate hats or maybe an on-exit note to buy it if you like it are the way to go, if anything. More likely it’s better to spend time working on features and bug fixing.

The best way to determine who is a pirate is as people have said above, release the pirated copy yourself. Some of the AAA games out there that troll the pirates have better anti-copy protection schemes. Game Dev Tycoon is known for their pirated release but Trials is a good example where they removed leaderboards in the pirated version. Shooting Star also comes to mind.

Back in the Worms days. We had a few ways of detecting pirates. About 1 month after launch on Worms 2?, I switched on a server side test that caused an RPC on the client to determine if it was running legit (we’d included a huge file on the CD that was just data we could scan as a way of determining if the copy was legit), the only thing it did, was alter the server side flag on the players flag display to a pirate flag. So basically the server told the client to ping it with legit/pirate and changed some visual display online based on that test.

Well, long story short, I turned on that flag and about 2/3 of the online players turned pirate… you can imagine that caused some fun and games.

So my advice. Don’t turn on your “protection” straight away. Leave it for a short while so that people think its safely cracked.

We also did things like uploading almost-working-but-not versions to all pirate sites. Which didn’t turn out to be hugely effective, but was fun anyway.

There’s no way to detect piracy. If there was a way to detect it, the pirates who cracked your game would just crack out the detection too lol.

GameDevTycoon like some mentioned above, uploaded their own broken copy to torrents.

However you need to be careful with this. If you upload a copy that says “HAHA CAUGHT YOU, PIRATES!” then someone will immediately upload a real copy of your game instead.

If you want to go that route, you need to be subtle so they don’t immediately realize it’s not the real game version. :slight_smile:

Also remember that many pirates wouldn’t have ever bought your game if they couldn’t pirate it. But instead of thinking of them as lost sale, think of them as hired sales people or a form of advertising. If people who don’t pay, like your game, they may tell their friends about a great game whom might be the type of person who do buy games.

There is some percentage of people who will never pay. Don’t worry about them, there is nothing at all you can do, they aren’t lost sales.
Sometimes the game isn’t that great and the perceived value and the cost don’t align. I think some number of companies don’t realize this. Their game is overpriced for the quality/content of the game.

All these millions of bucks spent, only because of pirating.
So many games, had a bad launch with securom and so on.
I realease at warezsites first, no extra bugs.
Then torrents.
Then i make a weird update system with weirdo update numbers, to confuse anyone.
0.1.4.5
4.2.0.5
9.6.X.7