Skip to content

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:

Full API reference

HTTP request

POST /v3/application

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.

Full API reference

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.

Full API reference

HTTP request

POST /v3/applicationBuild

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.