[Standards-JIG] New version of chess game protocol
Richard Dobson
richard at dobson-i.net
Fri Oct 6 04:14:48 CDT 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-JIG
mailing list