SDK (Java): Difference between revisions
m (→Data) |
m (→Examples) |
||
Line 48: | Line 48: | ||
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. | 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=== | ===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. | For specific examples on how to perform basic tasks using the SDK, please refer to the [https://github.com/Tygron/SDK/tree/master/java/examples/src/com/tygron/pub/examples Examples] project in the SDK. This project contains a number of documented examples for interacting with the API both with and without the SDK. | ||
==Adapting and contributing to the SDK== | ==Adapting and contributing to the SDK== |
Revision as of 07:32, 5 August 2015
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, although other developments environments can be used as well.
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
To use the SDK, the Core project must be a dependency of your application. The other available projects have the Core project as their dependency. For first time usage, it is recommended to test your setup by running one or more 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 iterate 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 documented 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.