Changes between Version 11 and Version 12 of Java Quagents Client


Ignore:
Timestamp:
Sep 1, 2011 4:29:54 PM (13 years ago)
Author:
jherwitz
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Java Quagents Client

    v11 v12  
    33[[Image(Java_Duke.png)]]
    44
    5 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.
     5The [[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. This wiki is meant to detail the abstract structure of the client. For information on usage, see [[Java Quagents Client Tutorial]]
    66
    77== Compiling The Client ==
     
    3232=== Entities ===
    3333
    34 All objects in quake which may impact the game world are treated as Entities, and represented with the Entity interface.
     34All objects in quake which may impact the game world are treated as Entities, and represented with the Entity interface. This includes both the GOD (Director) and Quagents. All Commands and ReaderThreads (see below) use entities to perform internal operations, so socket operations are independent of entity type.
     35
     36==== Client (Entity) ====
     37
     38The Client entity is an implementation of a QuagentEntity, which is a derived form the aforementioned Entity. It represents a Quagent in the Quake world. The Client is notable because it provides a multitude of convenience methods for executing Commands. We realize that the , so this provides a more functional paradigm for users.
    3539
    3640=== Commands ===
    37 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
     41
     42The 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 
     43
     44=== ReaderThread ===
     45
     46Another important structure is the non-blocking ReaderThread. Each entity has a ReaderThread associated with it, which handles read operations from the socket. Once a message is read, it is parsed and interpreted, at which point the ReaderThread locates the Command object associated with the message (by using the command ID and a list of currently running operations) and performs the relevant operation.
     47
     48=== Listeners ===
    3849
    3950== External (User-Level) Structure ==