[jdev] how to program a jabber game server

Mridul mridul at sun.com
Fri Feb 9 04:55:13 CST 2007


Andrew Plotkin wrote:
> On Thu, 1 Feb 2007, Michal 'vorner' Vaner wrote:
>
>> Hello,
>>
>> On Thu, Feb 01, 2007 at 12:32:49PM -0500, Andrew Plotkin wrote:
>>>
>>> Hi -- I'm one of the Volity developers. I missed this discussion
>>> yesterday, but I can comment on how Volity got the way it is.
>>
>> Do I get Volity right that just everything happens on the server and you
>> can not have games without server support? It is a bit glitch for things
>> like tic-tac-toe or battleship, IMHO.
>
> I think the answer to your question is "yes, everything happens on the
> server". Except that's confusing, because I'm not talking about a
> *Jabber* server. Every game requires a Volity game server, which is a
> Jabber client (bot).
>
> If that's what you meant too, then good. :)
>
> As everyone has said, cheating is a problem -- both passive cheating
> (seeing private information) and active (making illegal moves). Having
> a game server makes the problems go away. And it's much easier to
> build a uniform system than to say "ok, these games don't need a
> server, those games need one, and these others don't *need* one but
> it'll save us a lot of anticheating design..." The fact that
> tic-tac-toe can be done more simply isn't a compelling argument;
> tic-tac-toe doesn't draw in many real players.
>
> Also, the game server winds up handling a lot of infrastructure work
> (noticing new players, distributing game status to them, tracking
> players across client disconnects).
>

When we had this discussion in the past in the JIG, this was exactly
what I was alluding to.
When I wrote a chess server for a friend (not xmpp based though), the
problems we faced included rule enforcements (we wanted to support a
bunch of chess variants including 2+ player ones), enforcing rules & how
to prevent rule violation, how to manage user info (elo rating, stats,
etc), 'seeking'/processing invites for game requests, how to allow
observe & chat with other observers(whisper)/also to players(kibitz),
tournaments, etc.
In the context of xmpp, a lot of this is already present in the defined
rfc/xep's itself (read only pubsub nodes for stats, muc's for
multicasting info : seeks, kibitz/whisper, etc) and if I was to do it
today, I might seriously look at xmpp.

All this for chess - different games have differing set of requirements
and any infrastructure xep should be flexible enough to allow any game
(or the targeted class of game types) to be supported.
A first person shooter multiplayer game like Counterstrike source will
have differing requirements from multiplayer scrabble or chess or bomberman.

Regards,
Mridul


> --Z
>




More information about the JDev mailing list