Jump to content
  • Advertisement
Sign in to follow this  
glhf

Is it possible to prevent players from altering the client side graphics in a game?

This topic is 2433 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

First of all I'm not sure which is the best forum to post this question in so it's ok to move it if you think there's a better place for it.

So yeah it's a pretty simple question..
I don't want players to alter graphics like trees or remove darkness from caves/night etc.
It completely ruins so many wonderful game features in many games.. They remove trees so it's only a stub or the root whtever you want to call it remaining. 100% daylight everywhere always. Remove pretty much anything that might cover their view or make the game harder.

Arma2 is a good example where they've removed everything pretty much client side and the whole aspect of crawling in the grass to stay hidden is ruined.. Very hard to stealth though forests when there's barely anything to cover you.. etc.

Share this post


Link to post
Share on other sites
Advertisement
There's no current technological solution to this. The most effective mechanism is to punish people caught doing it and foster a playerbase that frowns upon such cheating.

Share this post


Link to post
Share on other sites
There was a post on altdevblogaday just a few days ago about this. And no, there is no way to prevent it.

Share this post


Link to post
Share on other sites
Not sure how they do it, but one simple way to cheat is tweaking shader code or adjusting images being used in the game. For example, making all the leaves/grass transparent.

Maybe a wild idea, but maybe this helps detecting cheaters (as far that as is possible):
- For each map, before starting, render a special part of the scene in the background. This scene is a compilation of typical content of that map. Grass, a soldier, coverage, and whatsoever.
- Render the scene and take a snapshot
- Compare the snapshot with a prebuild (hardcoded) bitmap that contains the same image how it *should* look
- If not (almost) equal, it means the player tweaked something
- Shout Al Qaeda and blow up his computer

Basically it's sort of an iris-scan.

Of course, there are some practical issues as images never look 100% the same, especially not if there are many options. So there must be some tolerance in the comparison, otherwise noone will be able to play. But other than that, the comperator should detect invisible grass, blue colored handgrenades, or whatever that has been visually changed by adjusting the textures/shaders...

I bet there are still workarounds, as said, it's just a wild idea that popped up suddenly.

Share this post


Link to post
Share on other sites

Not sure how they do it, but one simple way to cheat is tweaking shader code or adjusting images being used in the game. For example, making all the leaves/grass transparent.

Maybe a wild idea, but maybe this helps detecting cheaters (as far that as is possible):
- For each map, before starting, render a special part of the scene in the background. This scene is a compilation of typical content of that map. Grass, a soldier, coverage, and whatsoever.
- Render the scene and take a snapshot
- Compare the snapshot with a prebuild (hardcoded) bitmap that contains the same image how it *should* look
- If not (almost) equal, it means the player tweaked something
- Shout Al Qaeda and blow up his computer

Basically it's sort of an iris-scan.

Of course, there are some practical issues as images never look 100% the same, especially not if there are many options. So there must be some tolerance in the comparison, otherwise noone will be able to play. But other than that, the comperator should detect invisible grass, blue colored handgrenades, or whatever that has been visually changed by adjusting the textures/shaders...

I bet there are still workarounds, as said, it's just a wild idea that popped up suddenly.


While this would prevent a user from simply changing the assets it would be far easier then to just grab a checksum for the assets and shaders and send to the server.

The real problem is that any user could also modify the client and have it render the background scene(or generate checksums) using the original assets while using the modified ones for the part the player sees, (This isn't that difficult to do and if you get a decent number of players you can be almost certain that someone will do it and upload a patch or loader on the internet for less tech-savvy cheaters to use), Any kind of clientside anticheat prevention will basically go down the same path as copyprotection schemes, at best it will delay the cheaters/pirates by a few days or weeks.

The only solution then is to update so frequently that client modifications become too much of a hassle, something which you most likely cannot afford to keep doing for a very long time.

Share this post


Link to post
Share on other sites
I know in big games like WoW, rift etc I've never heard about any clients where they've altered client side graphics like removing trees etc.
But I guess it's less meaningful to do that in those games.

But in Darkfall Online, Which I haven't played much but I don't think there was those type of clients available there either.
And in this game it would be a big time advantage removing all trees etc to easier spot players.

So is it just fluke no one have done it for these games or have they some kind of prevention?
Or were there altered client side graphics clients available that I didn't know about?

Share this post


Link to post
Share on other sites
The problem is that they can change anything on their client side..
So solution is to make game art to NOT be on the client side... or at least on on the players computer.

Is it possible to stop them if the game is browser based or if they have to play from some kind of VPS or something?
Then we could limit them from doing anything else but playing the game?

Share this post


Link to post
Share on other sites

I know in big games like WoW, rift etc I've never heard about any clients where they've altered client side graphics like removing trees etc.
But I guess it's less meaningful to do that in those games.


On the contrary. I remember map editing being a problem in WoW. It would allow for various "wall hack" and related exploits.

In the end there was really no technical prevention that Blizzard could possibly concoct to stop it. Instead they relied on good old game master monitoring and harsh punishments.

Share this post


Link to post
Share on other sites
You can but it would require you to run the full rendering on the server side like Onlive does. Tweak the shaders to your hearts delight on the client side, nothing is rendered there.. However that doesn't mean u can't hack, just means those hacks are not possible.. Maybe u can do round robin, where your rendering is rendered by your neighbor etc.. so the client would have no incentive to hack their side? That's kinda crazy though..

-ddn

Share this post


Link to post
Share on other sites
In general it's impossible.

If it annoys you that much, then either:

* Develop for a platform which has DRM and is protected against being rooted (e.g. XBox, iPad). They can still be rooted, but the hardware provider typically discourages it and makes it difficult, you can have your game refuse to run on jailbroken / rooted hardware, and indeed, deactivate the player's account if he tries to play on using a (known) rooted client. The providers typically already have such mechanisms in place.
OR
* Don't write games which are susceptible to this kind of cheat

In general, the types of games which are most hard to cheat on are

* Games where all information is known to all players anyway. Imagine a resource-management game where all info is available to all players - there is no benefit from a player modifying the client-side graphics (i mean, they COULD if they wanted, but it would not confer a specific advantage).
* Hey why not open up your network protocol AND open-source your client, then people can write their own client (including bots) legitimately if they want

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!