allowing mods but not "hacks"

Started by
2 comments, last by ApochPiQ 11 years, 3 months ago

In my game I provide a very rich scripting interface using AngelScript. I do this so that mods can be added in the future and levels can be extremely varied and interactive. However this introduces a problem, it makes it very easy for people to "hack" the game (aimbots, speedhacks etc.). How can I encourage modding yet discourage those who just want to cheat at the game. I thought that maybe I wouldn't count achievements in a modded game or allow multiplayer unless everyone else had the same mod. But this also introduces another problem, How do I know if my scripts have been modified? Any other Ideas on how to encourage modders but discourage cheaters?

Advertisement

Hacking through scripts is generally not possible unless you make a lame-brain move and allow them access to the information they need for hacking.

For example, never allow players to know the positions of other players via scripts. Aimbot stopped. Simple as that. Think about what is possible for everything you expose.

To know that everyone has the same scripts, getting the mod is part of joining the server. Send the scripts as people join.

Heavy mods often require a special download of resources. Checksums help identify wrong/hacked or missing files.

L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

Those who want to cheat can do so even without scripting support.

It is fairly simple to write an aimbot even without modifying a game. There are lots of cheats for showing additional information on screen by exploiting overdraw.

For a hobby game it is generally best to ignore those who cheat. Provide the best experience for your intended audience, take some minimal steps to make it harder to cheat, but recognize that cheaters are out there and they will get around any protection you introduce.

No matter what you do, there will always be the hacker on the scoreboard with a score of 999,999,999. If it bothers you then maintain it and delete the occasional database record.

For a larger commercial game there are many things you can do to a client to make it harder to cheat, ranging from redundant overlapping internal checksums to detect executable modification to employing external products like PunkBuster. Even then cheaters still find ways to get around them and it is a constant arms race.

Make it completely open, but use a checksum approach to make sure that you can't join a multiplayer game with a different set of mods than the host/server offers. If the checksum indicates any mods whatsoever have been installed, you can also disable single-player achievements etc.

That's the best approach IMO. Keeps your players happy, keeps you from sinking an infinite amount of time into a losing war against cheaters, and gives some marginal protection for players who want to stay honest.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

This topic is closed to new replies.

Advertisement