Anti-Cheating Measures

Options
I have a few questions, all more less related to the subject of preventing players from cheating in my game.

I know PUN is not authoritative, so what measures are there to prevent players from cheating? The game I am developing does not need persistence, so PUN is perfect for it, other than I am worried about players easily being able to modify variables, etc. Is there anything I can do?

I considered switching to Photon Server for this same reason, but it seems like a lot of setup(and cost!) when I don't most of the benefits of a self-hosted server, only the ability to limit client authority. Is making the switch to Photon Server for this reason alone worthwhile?

If it is, I have a few questions regarding that as well. I will be developing it on another machine on my local network, and then more than likely hosting it with Azure/Amazon. Is it possible to convert an existing PUN project over to use a self-hosted, authoritative server? Or would I need to develop the game with that in mind from the beginning?

Thanks your time and help.

Comments

  • nindim
    Options
    I was going to post my own topic on this, but it seems like it would be better to try and get this one answered instead.

    Something that has piqued my interest is the Enterprise Services:

    "Photon Enterprise Cloud - Dedicated Servers & Custom Code Plug-ins

    In a nutshell the Photon Enterprise Cloud is like our well established public Photon Cloud and adds the following features: Runs on dedicated servers, provides guaranteed service levels (SLAs) and high priority support. Another big plus: You can run your own authoritative server logic via Plug-ins.
    Typical Photon Enterprise Cloud scenarios are apps with 10,000 concurrent users or more, bigger game projects that need authoritative server logic or companies whose compliance policies restrict them to dedicated resources.

    Interested? Get in touch at developer@photonengine.com."

    This seems like it could be the best of both worlds, the ease of use of the in-built systems, with the power to run server code and detect/prevent cheating.

    Is the idea that you develop with the standard PUN PhotonTransformView etc approach and then it just works with this system, but then I can run code to combat players hacking their speed variables etc?

    I like the idea of going with a simple implementation up front, then if the game is successful, making money and cheating is becoming an issue, we switch to the enterprise solution to combat it. I want to design my network systems from the off with this in mind so that I don't need to make massive changes for this to be achievable. Any advice on this? Would love the Photon devs to chime in on this :)

    I am also considering a MasterClient Authorative approach, mostly because it will cut my chances of having a cheater able to modify his values (only the master client could modify things like speed and have it affect the game). I have not found many resources on this kind of setup though, any help on this would be appreiacted, even if it's high level setup.
  • JohnTube
    JohnTube ✭✭✭✭✭
    Options
    You can find insightful information written by our @Kaiserludi here.

    I want to add two useful Unity related links:
    - Alan Zucconi's "A practical tutorial to hack (and protect) Unity games"
    - Anti-Cheat Toolkit asset.