[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PBeM beyond email (was Scramble boards)
Here are my own crazy ideas about providing the option for graphical
interfaces to PBeM.
(1) Extend PBeM to accept commands (and emit responses) via HTTP/CGI,
telnet, or some other socket-based protocol. For example, PBeM
receives an HTTP request for the URL
"http://www.gamerz.net/http_interface.cgi?command=twixt%20move%20
341%20kwalker%20my_password%20o9", PBeM does its usual routine for
the command "twixt move 341 kwalker my_password o9", then sends back
a "web page" (text/plain, not text/html) which is identical to what
it would send in the body of an email message in response to that
command. Why would this be a Good Thing? Because then others could
write graphical client interfaces in their favorite language to make
and receive PBeM moves for their favorite PBeM games. Here's what
the client would have to do when making a move: (a) interpret a mouse
click as a game move, (b) construct the PBeM command (e.g. "twixt
move 341 kwalker my_password o9", if I clicked at o9), (c) send an
HTTP request as above, (d) receive the HTTP response, and (e) parse
it too see whether the move was accepted. To receive an opponent's
move, the client would have to poll PBeM to see whether a move had
been made on that board.
Advantages of crazy idea number (1): (a) very little work needs to be
done on the PBeM server end -- the commands and responses are
identical to what's already being sent/received via email; (b)
flexible, open framework -- people could write clients in the
language of their choice, for the games of their choice.
(1a) With a little extra work, PBeM could send a reply that is more
easily machine readable (instead of the current text board
representation plus recent move list). This would save client
authors the trouble of constructing complicated regexes to parse the
boards.
(2) As an alternative to (1), someone could set up a separate server
that monitors PBeM games via email. (cf.
http://www.math.lsu.edu/~wamelen/gamerz.html) This separate server
could serve clients as in (1). Advantages over (1): zero
modifications needed to PBeM. Disadvantages: considerably more work
to write the separate server.
(3) Write a real-time game server, which optionally interfaces with
PBeM via (1) or (2) above. (So the server would provide both
real-time games and also correspondence games via PBeM.) If this
server used modular, open protocols, it would be feasible for various
people to add games to the server. If anyone is interested in
collaborating on a project like this, please let me know. I've
already taken some initial steps in this direction: graphical game
tree editors for Hex and Twixt, with Reversi and LoA underdevelopment
(see http://www.xmission.com/~kwalker/jgame/).
--------------
Actually, I think (1) is a very practical and good idea -- not crazy
at all. I haven't done any programming for PBeM, but I am an
experienced programmer, and I'd be happy to help implement this idea.
Kevin