[Standards-JIG] New version of chess game protocol

Richard Dobson richard at dobson-i.net
Fri Oct 6 09:14:48 UTC 2006


I think for the server component mode of protocol this it makes the most 
sense for it to be structured in the following way:

You have a central  game server component which people can browse 
through using disco (similar to the way yahoo games works), where you 
would have multiple levels like the following:

games.jabber.org/board
games.jabber.org/board/chess
games.jabber.org/board/checkers
games.jabber.org/board/backgammon
games.jabber.org/card
games.jabber.org/card/poker
games.jabber.org/puzzle
games.jabber.org/word

When you get to the level in the hierarchy of a particular game for 
example /board/chess you would get a list (in disco) of the games 
currently in progress e.g.

chess4433 at games.jabber.org
chess33422 at games.jabber.org
chess34 at games.jabber.org
chess45332 at games.jabber.org

If a client understands the gaming protocol once it gets down to the 
/board/chess level it will examine the disco features and present a 
"Create Game" button in the client interface so people can start new games.

The game server component (games.jabber.org) will manage the games and 
validate any turns people make and sending out the result of that turn 
to all the players which the players will use to update their copy of 
the board etc so they dont have to worry about checking against the 
rules etc. Similar to how the workgroups protocol works if a chat room 
is needed in a game the game server component will create the room and 
give its address to all the participants (i.e. chess34 at muc.jabber.org) 
so they can join if they want to, this seems far more inline with 
xmpp/jabber to me as its using the various components (i.e. MUC) for the 
purpose it was designed for rather than trying to layer stuff like the 
sending of game moves etc ontop of it which makes things far more 
complicated than above as you need to have one of the people in the room 
acting as the master/validator of any moves which just seems rather 
messy to me, it seems far better to me to just move all the complexity 
to the server properly using a proper component designed for the job.

Richard





More information about the Standards mailing list