Jump to content
  • Advertisement
Sign in to follow this  
SymLinked

Thoughts about keeping some gameplay code on the client.

This topic is 3631 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

I'm playing around with a prototype where I've been doing movement and some combat hitscan calculations on the client. This is what I've been trying: * Client calculates movement and collisions against static objects. Collisions are only checked against static objects, even on the server. * Server does a distance check every 4th tick. * Server does a full collision check every 8th tick. The above numbers are only examples, might increase them. I assume since I'm only allowing collisions against static objects, the server vs client simulation shouldn't be much different in terms of collisions unless the user is cheating. Say I decrease the rate at which these checks are made on the server, and let other user clients automatically report to the server if another user is moving too fast, and let the server do a collision/range check immediatly - is this also practical? I understand if two users are cheating and both are under agreement not to send these reports, there will be a problem - but then I still got the server checks which are made every 8th or so tick. Makes sense? Comments?

Share this post


Link to post
Share on other sites
Advertisement
Detecting cheating on the sub-second level really doesn't scale that well. You end up being not good enough, unless you do a full simulation on the server.

Instead, if you want to accept some times of inconsistency, I suggest just running the tests every so often, and then detecting cheating at the macro level -- if someone has too much money, or is too accurate, or have too many community votes against them, then start keeping very close tabs on them to figure out what's going on.

Share this post


Link to post
Share on other sites
I second what hplus said. I used to have a belief like yours, that cheating was the main enemy, but you'll see it becomes impractical to check it as much as we'd like.

Share this post


Link to post
Share on other sites
Quote:
Original post by hplus0603
Detecting cheating on the sub-second level really doesn't scale that well. You end up being not good enough, unless you do a full simulation on the server.

Instead, if you want to accept some times of inconsistency, I suggest just running the tests every so often, and then detecting cheating at the macro level -- if someone has too much money, or is too accurate, or have too many community votes against them, then start keeping very close tabs on them to figure out what's going on.


But why isn't it practical to check only so often, when I can just get rid of an offending user as soon as they're caught? I mean, if the cheater gets an unfair advantage for a second or two and upon detection is banned, what's the problem?

Share this post


Link to post
Share on other sites
Quote:
when I can just get rid of an offending user as soon as they're caught?


How do you know that the state inconsistency is due to cheating, and not just due to a dropped packet, or a flaky internet connection, or some bad RAM or something?

The game ToonTown online has a network stack that keeps kicking off my kids from the game, even while they're not cheating. It turns out that, once a minute, my wireless bridge goes away for about a second, and that single second of drop-outs is enough to make their network code kick a player. The end user experience of that is terrible. It's like copy protection: if it's a real hassle for paying users, while not terribly effective at catching cheaters anyway, why do it?

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.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!