I’m trying to think of ways to counter cheating through custom mods as I’ve seen used in other games I’ve played. Like changing wall textures to be transparent or invisible (easy; just don’t allow them to be modded) or player models with huge axis lines extending from them, so they clip through walls (where my question stems from).

I know I can check for custom model files being used and allow or deny connections, but if I still want players to be able to have custom shit, the next best solution I thought it was making it so a custom model still has to fit within a certain boundary of size, eliminating the huge axis lines and other fuckery cheaters might try. Is that even possible, though? I don’t think I’ve ever seen anything actually do it.

I guess this would pertain mostly to the engine so let’s just say UE5 or Unity since those are most likely what I would use.

  • DrQuint@lemmy.world
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 year ago

    If you make a model boundary, players will just find a way to somehow fuck with particle effects to get that shown.

    And if you try to make a boundary for that, you risk a tenuous particle effect you didn’t account for triggering false positives.

    Cheating vs Anti-Cheat truly is a rat race.

  • Still
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    there’s not really a good way to do custom models but going a way like Minecraft and having a few models that custom textures can be applied to

  • kevincox@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    Yes, you can check if models have certain sizes or cover certain areas. However making this code robust will be difficult. Probably the most robust option is having a “base” minimal model like a black rectangle that is always loaded. Then you can apply custom models (or the default models) on top.

    However you can’t stop users from cheating in general. It is their device and ultimately they can hack around any checks that you add. Other than oppressive DRM/anti-cheat/remote attestation you can’t ensure that the run exactly the code that you want them to run.

      • kevincox@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 year ago

        This is one of the cases where I can see use of DRM. It could be useful to provide an optional feature where users on “verified” setups can be given a bit that makes them more likely to get matched with other verified users in matchmaking. This way if you do this verification you are less likely to encounter cheaters. If course it is critically important that failing this doesn’t send you directly into the “confirmed cheater” pool. You should land somewhere in the middle.

        Although the problem here is that just having this attestation API available is opening the doors for less user-friendly uses.

  • TonyTonyChopper@mander.xyz
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    I’m not a developer, but maybe you could enforce just one collision model, like normal human shaped. And have a separate visible model that can be modded.

  • Julian@lemm.ee
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Theoretically it wouldn’t be that hard to do a basic bounding box check - just loop through each vertex and make sure it’s within the bonds.

    Of course players could still use a model that goes right up to that bounding box, so they might get a slight advantage, but if the collision stays the same it might not be that helpful.