[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: Cheating in OS games?



Jiri Svoboda wrote:

1. What is cheating?
Well, in this context, I think it's when a player uses skills (such a programming skills) that
lie outside the range expected of most of the other players.  Especially if those skills impart
a significant advantage in ways that are outside the game 'genre'.

2. It it possible to prevent cheating?
No - but you can make it a LOT harder to do.  In the limit, you can make it SO hard to do that
nobody can be bothered to do it.

Sounds simple? Think again.
No - it doesn't sound simple...far from it.

4. CHEAT
--------
We'll take a pice of paper and a pencil and do the mapping ourselves. Is that cheating
> or not? Don't know.

This is not a cheat within my definition because it's something that every player can do if he/she feels
like it - and if this is a game like Quake, it's something you could probably do in the real world too.
If you have time to take your hands off the rail-gun and doodle on a notepad - then it's not unreasonable
that you should be able to take your hands off the keyboard and do the same thing.


But instead of a piece of paper and a pencil we could use another computer and make
> a bot to play instead of us, here we go again...

...this is clearly cheating IMHO. (Although - as you say - it may be impossible to prevent)

If the genre of the game is some kind of futuristic land warrior who might have a mapping
computer and an auto-aim bot - then all players should have that and it should be built
into the game so there would be no benefit to cheating in this way.

If it's medieval knights that we're simulating - then this is cheating.

Thus trying to prevent cheating (of most of the listed types 1-4) just doesn't make sense.
Yes, it does.  Cheating spoils the game - and in some cases where cheating is rampant, it
can just make the whole effort in writing and maintaining the game become pointless.  For
commercial games, this is a BIG problem.  There aren't enough OpenSource networked games
with a huge following to know what might happen - but I'd bet there are proportionately
just as many annoying idiots out there.

If you can keep out 99% of the cheaters - and (especially) if you can make the hacks the
cheaters need to do take months to write - then the life of the game is prolonged.

For OpenSource games, I think this mean keeping most of the code and as much of the
information about game state as possible on the server.   Then, it doesn't matter a
damn what anyone knows about the server code so long as a trusted version is being
run on a trusted server.

If the client code does very little with very little information - then the scope
for cheating is greatly reduced.

It'll never be eliminated though.   So long as you can edit Mesa to turn all of
the lights on and make all polygons somewhat translucent, nobody can hide in the
dark corners.

CONCLUSION
----------
Not finishing the game just because you spent too much time on security is a shame.
> Just try to keep your code nice and clean and with some basic security aspects in your mind.
When (If) you have the game working and becoming popular, fix some security holes, if you like.
I don't think this is the right advice - your message is essentially "Don't worry about
security - you can always patch it up in the end".   That's the way Microsoft work.

IMHO, you need to think about the INFRSTRUCTURE of your security from the very beginning
because if your conclusion is that game state should be kept mostly in the server, that's
a VERY different computer program from one where it's all kept in the clients.

If you don't make that kind of strategic decision at the very outset, it's next to impossible
to fix it later.

Motivate players not to cheat.
So this is also what you do about SPAM, Telemarketters and DOS attackers?

We'll just "motivate" them not to hack into our PC's - then we won't need firewalls and
we can stop worrying about security loopholes and email filters?

Nice thought - but just a bit naive!

Hope thay don't cheat. Have a coffee. Be proud of your game.
Shrug.

In my opinion, the way to avoid cheating is to only play with
people you know well.  Friends.   LAN parties are probably almost
totally immune from cheating.

It's when you play against total strangers that you encounter
cheaters.  You can't tell whether you've come across a black-belt Quake
player or whether he's just added a line into OpenGL to make all the
polgyons 50% transparent.

Regrettably, most of the fun of networked games is that you can ALWAYS
find someone to play against - even at 3am on a Wednesday morning. It's
inevitable that any moderately popular game will have people wanting to
cheat.

---------------------------- Steve Baker -------------------------
HomeEmail: <sjbaker1@airmail.net>    WorkEmail: <sjbaker@link.com>
HomePage : http://www.sjbaker.org
Projects : http://plib.sf.net    http://tuxaqfh.sf.net
           http://tuxkart.sf.net http://prettypoly.sf.net
-----BEGIN GEEK CODE BLOCK-----
GCS d-- s:+ a+ C++++$ UL+++$ P--- L++++$ E--- W+++ N o+ K? w--- !O M-
V-- PS++ PE- Y-- PGP-- t+ 5 X R+++ tv b++ DI++ D G+ e++ h--(-) r+++ y++++
-----END GEEK CODE BLOCK-----