From 7e5b08180753d07354b2d586b8c78fd4d51c5e0f Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Sat, 5 Nov 2005 14:57:56 +0000 Subject: [PATCH] Commit RRGP protocol document as a starting point. --- PROTOCOL | 732 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 732 insertions(+) create mode 100644 PROTOCOL diff --git a/PROTOCOL b/PROTOCOL new file mode 100644 index 0000000..a97a176 --- /dev/null +++ b/PROTOCOL @@ -0,0 +1,732 @@ + Ricochet Robots Game Protocol (RRGP) + Version 0.1.2 + 2003-5-31 + + Keith Packard Carl Worth + keithp@keithp.com carl@theworths.org + +Introduction + +RRGP is a network protocol for playing the Ricochet Robots game. It permits +a single server to host multiple games with named participants. The +protocol is designed so that people can play using only telnet, but it is +expected that graphical interfaces will be able to drive the protocol as +well. + +RRGP borrows ideas from other network protocols like SMTP using a +synchronous command interface. + +Document Conventions + + All commands include a response (yeah, synchronous protocols are + bad. tough) + + + + -> + + + + is one of: + + + ERROR + +1. Requests + +1.1 Connection setup + + The RRGP server has no well defined port; agreement on which port to + use must be done through some external mechanism. Once connected, + the client must identify itself: + + HELO [] + + -> + + HELO + + If the client doesn't supply , the server will compute + one and return it. + + Possible errors: INVALIDNAME + +1.2. Global commands + + 1.2.1 Listing available users + + WHO + + -> + + WHO ... + + lists connected users and the number of games they've won. + + 1.2.2. Listing available games + + GAMES + + -> + + GAMES ... + + 1.2.3. Message + + MESSAGE + + -> + + MESSAGE + + 1.2.4. Help + + HELP { } + + Displays help. If is provided, displays more + detailed help on a specific command, otherwise displays an + overview of all commands. + + 1.2.5. Quit + + QUIT + + -> + + QUIT + + 1.2.6. Version + + VERSION + + -> + + VERSION + + Negotiates version number between client and server. The server + will respond with a version no higher than the client version + number, but it may be lower. Version numbers are integers. + + This document describes protocol version 1. + +1.3. Game management commands + + 1.3.1. Listing players in a game + + PLAYERS + + -> + + PLAYERS ... + + Possible errors: NOGAME + + 1.3.2. Listing watchers of a game + + WATCHERS + + -> + + WATCERS ... + + Possible errors: NOGAME + + 1.3.3. Get game information + + GAMEINFO + + -> + + GAMEINFO