Atlas Feature Candidates

From WorldForgeWiki
Jump to: navigation, search

ATLAS-FC-001 Separately negotiable UDP observation channel

After TCP connection has been negotiated clients may optionally request a separate UDP channel which transmit observation messages from server to client to enable uninterrupted and more efficient observation stream to the client. TCP channel would still transmit all other messages in normal fashion.

Example cases to be optimized using UDP channal and fixed structure binary messages:

Transmitting pieces of large planar objects to client on requested detail level. This could include terrain, sky and large walls. Object need not be strictly flat but the information is bound on a plane of reference with fixed unit vectors (u,y) and height. Server may internally contain the object shape in any format like functions, vectors or matrix. The information is transmitted to client on demand with given accuracy.

Request:

GET PLANAR MODEL:

[16]  id        : globally unique identifier of the object
[6] edge length : square edge length as 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[1] edge points : number of points per edge (For example 100 creates 100x100 matrix) Value can be 1-15
[6] origo x     : 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[6] origo y     : 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[6] origo z     : 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent

PLANAR MODEL:


[16]  id        : globally unique identifier of the object
[6] edge length : square edge length as 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[1] edge points : number of points per edge (For example 100 creates 100x100 matrix) Value can be 1-100
[6] origo x     : 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[6] origo y     : 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[6] origo z     : 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[6] origo ux     : plane defining unit vector x component. 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[6] origo uy     : plane defining unit vector y component. 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[6] origo uz     : plane defining unit vector z component. 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[6] origo vx     : plane defining unit vector x component. 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[6] origo vy     : plane defining unit vector y component. 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[6] origo vz     : plane defining unit vector z component. 6 byte float as follows: 4 bytes for integer value and 2 bytes for exponent
[2] height exponent : exponent for all height data floats
N x {
[1] point type : type index of the point (for example terrain or cloud type) 
[4] height float : height float value of the point
}

Comments

ATLAS-FC-002 Operation args member to map instead of list containing map

For historical reasons atlas operation arguments member (args) is a list containing one member namely map containing the actual named arguments. If atlas will have new major release it is proposed that args member type will be changed to map and only named arguments will be supported by atlas.

Comments

ATLAS-FC-003 atlas.xml to become the definition file of Atlas protocol objects

Currently Atlas is defined using .def files and parsed to various formats like atlas.xml. It is proposed that atlas.xml becomes the official format for this definition as xml is well known format instead of the custom format used in the .def files. In addition it would be beneficial to clean deprecated definitions from the definition files or at very least mark them deprecated.

Comments

ATLAS-FC-004 Game specific Atlas objects to separate specification files

Move the game specific atlas definition files to separate definition files like mason.xml or def files under mason directory structure.

Comments

ATLAS-FC-005 Use type member for announcing Atlas object instead of reusing parents member.

Currently parents have dual usage in Atlas. In type definitions is contains the inherited types and in object instances it contains the object type. It would be cleaner to use string member type to specify type instead of dual purpose parents member.

Comments

ATLAS-FC-006 Rename objtype member to category

Rename objtype to member to category to clearly separate it from the type of the object.

Comments

ATLAS-FC-007 Add atlas operations and entities for conversing with master server

Currently master server is supporting only custom UDP protocol. It would be easier to integrate to it if it had atlas interface.

Comments