Registering your game and builds
Probably the first thing you will want to do when starting with our platform is setup your Application (Game).
In this example we will create an Application and demonstrate how you can upload and register the builds for that Application.
The following elements will be created in this chapter:
See also: Application Element Relations
Application
The Application element represents your application or to be more specific, your game or a utility.
In the following example we'll create a game Application:
HTTP request
Request body
{
"type": 1,
"managementProtocol": 2,
"name": "Bluewolf",
"websiteUrl": "www.bluewolf.game.com",
"description": "Life is not the same after meeting your worst enemy",
"developerName": "Crywolf",
"publisherName": "ThePubs"
}
Response body
[
{
"id": "245926280441350104",
"type": 1,
"managementProtocol": 2,
"name": "Bluewolf",
"websiteUrl": "www.bluewolf.game.com",
"description": "Life is not the same after meeting your worst enemy",
"developerName": "Crywolf",
"publisherName": "ThePubs",
"createdAt": 1568316402,
"inUse": 0
}
]
ApplicationProperty
The ApplicationProperty is an element that adds meaning to the Application element. E.g. you can define that an application uses a certain network port, or requires a password or multiple ports, and a preset password, or have the system generate a unique password for each ApplicationInstance. These properties are necessary for the system to function properly.
In this example we will create 3 properties:
- gameport
- managementport
- managementpassword
The gameport
property
This property is of type "public network port" (1). Its value must be either 0 for auto-configuration (recommended) or between 10240 - 29999. The latter will serve as the default port to use upon deployment. If the port is already in use by another game server on the same host, we will keep incrementing the value until we find a free port.
HTTP request
POST /v3/application/245926280441350104/property
Request body
{
"propertyType": 1,
"propertyKey": "gameport",
"propertyValue": "60100"
}
Response body
[
{
"id": "521575199273317208",
"propertyType": 1,
"propertyKey": "gameport",
"propertyValue": "60100"
}
]
The managementport
property
This property is of type "private network port" and works just like the game port in the previous property example, except it will be picked from the private port range (30000 - 49151). However, the name managementport
is special in that by defining this property you tell the platform that we can use this port to contact your game server's management protocol. In the Application example above, we have indicated that our Application supports the Arcus (2) management protocol.
HTTP request
POST /v3/application/245926280441350104/property
Request body
{
"propertyType": 6,
"propertyKey": "managementport",
"propertyValue": "0"
}
Response body
[
{
"id": "68643036590177757",
"propertyType": 6,
"propertyKey": "managementport",
"propertyValue": "0"
}
]
The managementpassword
property
This property tells the platform to connect to Arcus with the given password. In this example though, the property value is left blank. This means the platform will create a unique (8 character) password for each game server. If you supply a property value instead, the platform will use that password for all your game servers.
HTTP request
POST /v3/application/245926280441350104/property
Request body
{
"propertyType": 2,
"propertyKey": "managementpassword",
"propertyValue": ""
}
Response body
[
{
"id": "519833085683350374",
"propertyType": 2,
"propertyKey": "managementport",
"propertyValue": ""
}
]
ApplicationBuild
There is one thing left to do: create an ApplicationBuild that essentially tells the platform how to run your game server.
HTTP request
Request body
{
"name": "Bluewolf-server PC",
"executable": "bluewolf-server",
"startupParameters": "-gameport VAR_GAMEPORT -managementport VAR_MANAGEMENTPORT -managementpassword VAR_MANAGEMENTPASSWORD",
"installId": 627322,
"osId": 151,
"label": [
{
"key": "platform",
"value": "pc"
}
]
}
Response body
[
{
"id": "2324653987059528218",
"name": "Bluewolf-server PC",
"applicationId": "245926280441350104",
"type": 1,
"executable": "bluewolf-server",
"startupParameters": "-gameport VAR_GAMEPORT -managementport VAR_MANAGEMENTPORT -managementpassword VAR_MANAGEMENTPASSWORD",
"installId": 627322,
"osId": 151,
"createdAt": 1568319468,
"label": [
{
"key": "platform",
"value": "pc"
}
]
}
]
Great! You've setup your application (game) and you have created an ApplicationBuild that you can now use in your Deployment Template. To learn how, continue with the next chapter: Creating a completely configured deployment environment from scratch.