Jump to content

View more

Image of the Day

Inventory ! Va falloir trouver une autre couleur pour le cadre D: #AzTroScreenshot #screenshotsaturday https://t.co/PvxhGL7cOH
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

Sign up now

allowing mods but not "hacks"

4: Adsense

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 ic0de   Members   


Posted 16 January 2013 - 06:39 PM

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?

Edited by ic0de, 16 January 2013 - 06:40 PM.

Currently working on new DOS game, Chuck Jones: Space Cop of the Future, Check out my Dev Blog

you know you program too much when you start ending sentences with semicolons;

#2 L. Spiro   Members   


Posted 16 January 2013 - 07:53 PM

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

#3 frob   Moderators   


Posted 17 January 2013 - 10:56 AM

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.

Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I occasionally write about assorted stuff.

#4 ApochPiQ   Moderators   


Posted 17 January 2013 - 12:02 PM

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]

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.