So I read a reddit post by a guy who made a mobile game that turned out to be popular. So popular, it wound up being cracked and distributed illegally. He was worried about those users accessing UGS, and driving up his bill.
Is there an official built in Unity UGS way to deal with this? I’m a bit new to UGS, but I’ve got cloud save going which is super cool. I just want to deny access to UGS, I’m not looking to obfuscate code or the like.
I think you would need to provide your own solution per platform.
There are some assets on the asset store as well
This problem goes a bit beyond Unity Gaming Services.
For Google play games, using the Play Integrity api is a good way to help prevent pirated copies of your game.
Apple has a similar integrity api: Establishing your app’s integrity | Apple Developer Documentation
Depending on which services you use, you can also mix this with your own backend validation logic to extend the security. This could be done with cloud code for example.
The pirated copy could still alter your client logic to bypass this, but it becomes harder to do the more you use it at important places within your game.
These solutions can’t really be retroactively enforced for versions of your game that are already out, but can be added for future versions.
2 Likes
Not quite the answer to your question either, but Access Control can guarantee that hacked clients (pirated or otherwise), cannot call the services directly.
This means that the calls will go through an intermediate arbiter (either your own dedicated server, or Cloud Code), and that dedicated server can guarantee only valid calls are made to the rest of UGS.
This can be used to prevent cheating as implied above.
2 Likes
Thank you everyone for your answers. I’m still early in development, so implementing these suggestions should be trivial.
@GabKBelmonte , could you expand a little more on Access Control and Cloud Code for this? That sounds like the route to use. Using Cloud Code, how would I determine if a call is valid or not?