[Kde-games-devel] Re: Re: Re: Incomplete Information and KGame

Neil Stevens kde-games-devel@mail.kde.org
Sun, 16 Feb 2003 00:47:21 -0800


=2D----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Saturday February 15, 2003 11:41, Martin Heni wrote:
> The KGame message framework allows you to easily send your
> own data messages to any receiver in the game (i.e broadcast to all,
> any KPlayer or any KGame object). For this the "sendMessage()" functions
> are supplied (used exactly for user messages contrary to the
> sendSystemMessage for system messages as used by the KGame object and
> e.g. the KGameProperties). These functions exists already in a few
> variations to allow sending strings, int,
> bytearrays or a general QDataStream.

OK, that lets me send a message to a KGame object.  But every client will=20
still see that message, which puts me back where I started.

> However, I do not quite see the difference by manually sending the
> data to the player compared to the automatic property update. If
> a player really wants to hack his client, why wouldn't he hack your
> transmission scheme. If you do not implement some kind of
> crypto-layer in the communication you have no chance in the end
> if someone really wants to hack it.  We discussed this when setting
> up the library but decided that it would be quite hard to prevent
> cheating.

What I want is to never send to the client any information that the=20
client's players are not supposed to know.  Cheaters can't hack the client=
=20
to display the information the client never gets sent the information.

OK, I've read your docs page again, especially this page:=20
http://www.sbcomputing.de/heni/libkdegames/kgamedoc/index.html

Looking at the diagram there, there are three connections to the server. =20
Two are remote, one is direct.  Let's assume the direct connection is=20
Player A, and the remote connections are Player B and Player C.  I want to=
=20
ensure Player A's secret information is only made available locally, never=
=20
sent down either socket.  I also don't want Player B's information sent=20
down Player C's socket, nor do I want Player C's ifnormation sent down=20
player B's socket.

Can I do that within KGame?

> However, some extension to crpyto/signed messages would be of interest
> for the library also with repect to the highscore system. So if you have
> good ideas do not hesitate to discuss them and implement them in the
> lib.

Hm...  When I think about it, one way to do what I want would be to=20
negotiate a secret key for each socket on connect, then encrypt private=20
properties using that secret key.  If I have to do that, then it'll take a=
=20
while before Megami goes multi-player. :-)


=2D --=20
Neil Stevens - neil@qualityassistant.com
"Distinctions by race are so evil, so arbitrary and insidious that a
state bound to defend the equal protection of the laws must not allow
them in any public sphere." -- Thurgood Marshall
=2D----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+T1AZf7mnligQOmERAtp9AJ92KSRz+S029lARpudqbpa43Lvb4wCeIQZN
yLbmnOOlO7mfow8Fc9AwaRU=3D
=3D87Bg
=2D----END PGP SIGNATURE-----