The collection of documents that make up the StarFleet User Guide is intended to provide a straightforward and easy to read introduction to playing StarFleet. This particular document serves as an introduction to the StarFleet system itself, including a sketch of the system architecture. As such, if your main interest is in Getting Started you can skip ahead without missing too much. If you've managed to get StarFleet running already you can skip ahead to the Client Tutorial.
The StarFleet system is divided into three components as shown in the figure below. These parts correspond to basic functions of the system as well as separate executables that can be run on separate machines. The system components along with their executable names and a short description of each is given here:
This program consititutes the physics of the system. When a ship blows up, or a missile moves, or a planet grows food, the server is responsible. The server also handles connections to clients and to the robot. Information is disseminated from the server to clients in a timely manner (on the order of 8 times a second), and input is given to the server from clients continuously.
This is the program a StarFleet player will have the most interaction with. The StarFleet client is the means by which players interact with the server (and by extension, the robot). This X program takes input from the user and translates it into opcodes meaningful to the server. The client, in turn, displays the status of the surrounding universe and the state of the client's ship.
This program is really the brains of the system. Ships that are not controlled by individual players are operated by the robot. The robot is made up of smaller controllers that operate individual ships, as well as controllers that give orders to groups of robots. At present, the robot is the least developed component of StarFleet, and does not show a large amount of intelligence.
The client program provides a large number of options for configuration. In particular, arbitrary keys can be bound to functions such as fire missile or bring up window. In addition, the layout of the client windows can be controlled by the user. Our attitude has always been that the server sends out a stream of raw data and the client program's purpose is to display it. How it gets displayed should be of no concern to game play.
The server also provides options that can be configured. For instance, the number of updates per second, or clock ticks can be control from the server configuration file. Many other options that relate to the basic physics of the system as well as administrative control are provided.
All three binaries share