Changes between Version 64 and Version 65 of ProtocolZero
- Timestamp:
- Jun 14, 2011 4:14:32 PM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ProtocolZero
v64 v65 7 7 == Overview == 8 8 ProtocolZero commands are sent as plaintext over a TCP/IP socket to Quake on port 6000. Currently, any new connections to this port result in the creation of a new bot. Initial commands are simply ASCII strings of the form CMD PARAM. The final initial command given is "ready", after which the bot is spawned, and live commands become usable. Live command format is of the form A BB IDNUM PARAM_1 PARAM_2 PARAM_3 PARAM_4... \n 9 * where A is either a 't' or 'n' character, for 'then'or 'now', specifying scheduling (see below).9 * where A is either a 't', 'r', or 'n' character, for 'then', 'replace', or 'now', specifying scheduling (see below). 10 10 * where BB is the opcode of the instruction (always 2 characters). 11 11 * where IDNUM is a sequence of numeric characters representing an unsigned 32-bit integer. This code will be returned on completion, for the client's convenience. We imagine that users will typically make this a sequence number, but we do not require or enforce uniqueness. … … 24 24 * The server might eventually respond "cp mf 350 blocked". 25 25 26 Quagents model their behavior in the form of a double-ended queue that has a maximum capacity of 1 28 commands. Commands can be pushed onto either the front ("now" commands) or the end ("then" commands).26 Quagents model their behavior in the form of a double-ended queue that has a maximum capacity of 1024 commands. Commands can be pushed onto either the front ("now" commands) or the end ("then" commands). Additionally, the top command can be atomically replaced by a new command ("replace" commands). 27 27 28 28 In addition to individual Quagents, there is also the possibility of commanding a wiki:GOD (Global Overview Descriptor) structure, which collects and returns macroscopic game data. The idea is that there are two types of connection permissions - GOD and Quagent. The GOD entity connects to the game server through port 6010. … … 165 165 166 166 * Basic robot-like functions for users who want low-level fine control. (Implement first) 167 * get [ENTITYID] - picks up an item from the environment 168 * drop [ENTITYID] - drops an item from inventory 167 169 * move [LOCATION] - bot moves to specified location. uses native pathfinding. It would be nice if along the way it used Quake's goal system. That would give us free puzzle-solving/button-pushing/surfacing-for-air. 168 170 * move [OBJECT] - finds the location of specified object, and pathfinds to it using move[LOCATION].