wiki:Java Quagents Client

Version 11 (modified by jherwitz, 13 years ago) (diff)

--

Java Quagents Client

The Java Quagents Client is made of two parts - the core API and the front-end Scenarios. The API is meant for internal development, and will usually not be necessary to modify for most intents and purposes. The front-end is meant for general user development - research, education, et cetera.

Compiling The Client

To compile the client, simply navigate to the client/API/ directory and type "ant". To remove the associated build directory and executable jar, type "ant clean".

Launching The Client

The server and client must be launched independently. The server must be running when the client jar is executed.

To start the server:

  • Navigate to the top-level quagents directory.
  • Launch the server using the run script by executing "./run.sh <builddir>", where <builddir> corresponds to the directory which you specified during initial installation.

NOTE: if you receive an error when attempting to run the script, use the command "chmod u+x run.sh" to fix.

To start the client:

  • Navigate to <topdir>/client/API/, where <topdir> corresponds to the top-level quagents directory.
  • Execute the command "java -jar Quagents3.jar <SCENARIONAME> <MAP>".
    • For a list of usable maps and scenarios, execute "java -jar Quagents3.jar" (note: this is not synchronized with new maps and scenarios automatically, these must be inserted at ScenarioStarter?.java).

Internal Structure

Entities

All objects in quake which may impact the game world are treated as Entities, and represented with the Entity interface.

Commands

The Java client is built on Command objects. These objects each represent one or more commands. Each command must first be instantiated, which sets all relevant parameters and generates necessary structures for use in data retrieval. At this point, the Command is independent of a command "executor". Once the command is constructed, it must then be attached to an executor. This may most easily be accomplished by using the Entity Another important structure is the non-blocking ReaderThread?. Each entity has a ReaderThread? associated

External (User-Level) Structure

List of Files

For More Information

For more detailed information on class and method uses, see the javadoc, located at <topdir>/client/API/doc/

Attachments (1)

Download all attachments as: .zip