SDK (Java)

From Tygron Preview Support Wiki
Jump to navigation Jump to search
This article describes a technical aspect, and is mainly for advanced users.

Template:Learned

What is a Software Development Kit?

A software Development Kit (SDK) is a (collection of) software or programming resources, which are designed to make a programming task easier. Often, software or hardware which is designed to accept input from other programs also have an appropriate SDK.

How does the SDK relate to the Tygron Engine?

The Tygron Engine offers an API, which allows external application to interact with it. However, the specific options available via the API are not always intuitively relatable to specific operations when using the client application. To compensate for this, the SDK wraps a number of these operations into more human-understandable functions. In addition, it provides functionality to handle some of the complexity related to obtaining, storing, updating and using data present in the Tygron Engine.

Getting started with the SDK

At this time, the SDK is only available for Java, and is still in development. The recommended IDE is Eclipse.

Obtaining the SDK

The SDK is freely available from github, and can be obtained using either SVN or Git. The following projects are contained in the repository:

  • Core (required). This project contains all essentials of the SDK
  • Examples. This project contains a number of examples for interacting with the Tygron Engine both with and without the SDK.
  • Tools. This project contains practical tools developed using the SDK and made available to the public. These also serve as practical examples.

Setting up the SDK for use

The Core project can be used as dependency of your application. The other projects have the Core as their dependency. For first time usage, it is recommended to test your setup by running one or more of the examples. To run the examples, you will need to add your Tygron credentials to the setup. For instructions on adding your credentials to the examples, see the Readme of the SDK.

Using the SDK

Please note: because the SDK is still in development along with the Tygron API, the following information is subject to rapid change.

Components

Using the SDK means using one or more of the components provided to interact with the Tygron Engine. The SDK can be used as a library of functionality, just as most other software libraries. The SDK offers a number of features designed to make interaction with the Tygron API easier. The following components are most important, and can contribute the most to your application.

Data Connector

The Data Connector and Extended Data Connector serve as the connection between your application and the API. Calls to fire specific events or requests for specific data can be placed with the DataConnector, and will return a Data Package, with the (raw) returned data. The Extended Data Connector offers additional functionality for starting and stopping sessions with a single function call.

Data Module and Player Module

The Data Module and Player Module are meant to be used together with the Data Connectors, connected to an actual session. They wrap basic events and data requests in functions, and return only the relevant return value of the call. The Data Module can be used for generic retrieval of data. The Player Module contains functions which mimic player actions.

Data Monitor and Update Monitor

The Data Monitor and Update Monitor allow for retrieving data automatically, rather than on demand. The Update Monitor manages the connection to the "update/" url of a session. When it receives an update, it is stored in a Data Monitor, which records both the most recent states of data in a session, and the "version" of that data. The Update Monitor uses this version to listen only to the most recent changes. With each update received, the Update Monitor also alerts registered listeners, allowing your application to respond immediately.

Items

The Items are the representation of the various types of data in a session (such as Buildings, Stakeholders, or Functions. These objects also allow the data pertaining to these items to be stored, but in many cases also offer easier methods of interacting with the data. An example of this is the ability to retrieve the exact function values for the categories of a given function.

MapLinks and Events

The Data Connector can be instructed to make a request to any url within the API, by providing a string with the desired url. However, to assure that requested urls are valid, it is recommended to make requests by supplying the MapLink or Event objects.

Utilities

In addition to the essential components listed above, a number of utility classes exist as well.

Settings

The Settings utilities allow for easy loading and storage of credentials and application settings.

Json

The Json utilities allow for easy deserialization of data sent back by the Tygron Engine. It can deserialize into generic List and Map structures for generic access, or to (Lists or Maps of) specific objects or Items.

Data

The Data utilities allow for the deserialized data to be cleaned up easily, to make it easier to itterate through programmatically.

GamePlay

The GamePlay utilities wraps operations together to allow more complex gameplay tasks to be performed, such as finding a building with specific properties or finding a popup related to a building.

Examples

For specific examples on how to perform basic tasks using the SDK, please refer to the Examples project in the SDK. This project contains a number of examples for interacting with the API both with and without the SDK.

Adapting and contributing to the SDK

The SDK is currently still in development, as is the API, which means both the Software Development Kit and the API it communicates with can change rapidly. We aim to keep the two compatible as much as possible. However, it is possible that changes temporarily break functionality of the SDK. If this occurs, you can contact Tygron support.

Alternatively, because we offer the source code of the SDK freely, it is also possible to make your own changes or improvements to the SDK. If you are interested in contributing to the SDK, please contact Tygron support.