Permalink
Fetching contributors…
Cannot retrieve contributors at this time
320 lines (295 sloc) 8.4 KB

#Client Data Specification

This document specifies the structures that all data logged to ADAGE should be derived from. Game clients can inheret from and add their own fields where needed but all generic ADAGE tools are built to work based on the fields from the base ADAGE data specifications.

###ADAGEData

This is the base structure that all other ADAGE data types inheret from.

Field name type description
application_name string a name for your game
application_version string the application token assigned by the ADAGE server for this client
adage_version string electric_eel
timestamp string Format should be Unix timestamp (Milliseconds since the epoch)
session_token string A unique string comprised of the Device ID and the start time of the session. This is used for grouping all logs from one instance of play from applicaiton start to application exit.
game_id string A unique string comprised of the the session token plus seconds since start of the application. This game id is used to group logs within a game. If a game allows saving the game id should be stored with the save and restored if that save game is resumed. For multiplayer games all players playing a game together should be reporting the same game_id.
ada_base_types List of strings a list of strings containing the names of the ADAGE structures this entry is derived from
key string This structures name. should be unique to this game

###ADAGEVirtualContext

This structure is embedded in other ADAGE structures as a holder for information about the player's progress

Field name Type description
level string The name of the level asset that is currently loaded. In Unity this is the Scene name.
active_units List of strings List of strings for uniquely named chunks of gameplay

###ADAGEPositionalContext

This structure is embedded in other ADAGE structures as a holder for positional information

<tr>
   <td>rotx</td>
   <td>float</td>
   <td>x rotation (Euler angle)</td>
</tr>
<tr>
   <td>roty</td>
   <td>float</td>
   <td>y rotation (Euler angle)</td>
</tr>
<tr>
   <td>rotz</td>
   <td>float</td>
   <td>z rotation (Euler angle)</td>
</tr>
Field name Type description
x float x coordinate in world space
y float y coordinate in world space
z float z coordinate in world space

###ADAGEContextStart and ADAGEContextEnd

The structure for the start and end of contexts are the same but seperated for functional reasons. Logging these structures update that active_units list in the virtual context. The contexts are used to tag groups of game play logs into chunks of gameplay. The lookup for the active_unit list is done by name so contexts should be named uniquely.

Field name Type description
name string The unique name of this context
parent_name string name of an context that is parent to this context if there is one. Can be null.
success bool Set if this context has a notion of success

###ADAGEGameEvent

The main structure to derive from when logging data that does not have a position. Good for things like system event, player choices, tweaking settings, etc.

Field name Type description
virtual_context List of strings an ADAGEVirtualContext Structure

###ADAGEPlayerEvent

Derived from ADAGEGameEvent contains the virtual context and positional context

<tr>
   <td>positional_context</td>
   <td>List of strings</td>
   <td>an ADAGEPositionalContext Structure</td>
</tr>
Field name Type description
virtual_context List of strings an ADAGEVirtualContext Structure

###ADAGEDeviceInfo Logged once on game start up to collect information about the device that the player is currently using.

Field name type description
device_model string The name of the device model
device_type string The name of the device type
device_unique_identifier string The unique id of the device
graphics_device_id int Graphics device id
graphics_device_name string The name of the graphics device name
graphics_device_vendor string The name of the graphics device vendor
graphics_device_vendor_id int The id of the graphics device vendor
graphics_device_version string The graphics API version supported by the graphics device
graphics_memory_size int Amount of video memory
graphics_pixel_fillrate int Approximate pixel fill-rate of the graphics device
graphics_shader_level int Graphics device shader capability level
operating_system string Name of the operating system including version
processor_count int Number of processors
processor_type string Type of the processor
system_memory_size int Amount of system memory
supports_accelerometer bool Is there an accelerometer in this device
supports_computer_shaders bool Does this device support computer shaders
supports_image_effects bool Does this device support image effects
supports_instancing bool Does this device support GPU draw call instancing
supports_location_service bool Does this device support location reporting
supports_render_textures bool Are render textures supported
supports_shadows bool Are built in shadows supported
supports_stencil int I the stencil buffer supported
supports_vibration bool Does this devcie support vibration