Skip to main content

Use build configurations with development fleets

Introduction

Development fleets work in conjunction with Development Dedicated Server Build Configurations, referred to as Build Configurations for brevity here and in the AccelByte Gaming Services (AGS) Admin Portal. This article walks you through creating Build Configurations and how to associate them with development fleets in the dedicated server claim flow.

To learn how to create a development fleet, see Create fleets to deploy dedicated servers. To learn more about development fleets, see the Fleet types.

note

Claiming a dedicated server from a development fleet will take longer than with a production fleet. This is because development fleets do not maintain a buffer of READY dedicated servers by default. Instead, a development fleet starts each dedicated server on demand at the time a match ticket or session tries to claim one. Since there are no dedicated servers running, the first claim request will fail, even as it triggers the launch of a matching dedicated server. The session will automatically retry the claim after 60 seconds and will then successfully claim the newly launched dedicated server.

Create a Build Configuration

To create a Build Configuration, follow these steps:

  1. Go to your game namespace in the AGS Admin Portal.

  2. On the sidebar, under ADD-ONS, select AccelByte Multiplayer Servers.

  3. Under the AccelByte Multiplayer Servers menu, expand Development Servers and select Build Configurations. The Build Configurations page will appear.

  4. Click the Create Config button and select Create New. The Create Config form will appear.

  5. In the Name & Image section, do the following:

    • Type in a name for your Build Configuration. It must be unique within the namespace.

      tip

      We recommend naming your Build Configuration using the same string your game client puts in the client_version attribute when it submits a matchmaking ticket or directly creates a game session. This lets you take advantage of the implicit game client version claim key that is automatically added to your claim requests so you do not have to add each Build Configuration name as an explicit claim key to your session template.

    • Choose the dedicated server image you want to run with this Build Configuration. The fleet will start dedicated servers based on this image. You can search for an image by using its image ID or image name.

  6. Click Next to go to the Command Line section.

    • In the Command box, add your dedicated server command line arguments and ensure that you specify any additional parameters required for your dedicated server to run in the desired configuration.

      The command line arguments for your Build Configuration are appended with the associated development fleet's command line arguments. If the required flags are not specified in either the development fleet command line or the Build Configuration command line, no dedicated servers will successfully launch for the fleet.

  7. Click Next to go to the Summary section.

  8. Review your Build Configuration, then click the Create button to finish creating your Build Configuration.

Use Build Configurations with development fleets

Just like with production fleets, you need to configure your session template to have claim keys that match the claim keys configured on your development fleet. To learn how to create a session template that claims dedicated servers from AccelByte Multiplayer Servers (AMS), see Configure Session service to claim dedicated servers from AMS. To learn how to set claim keys on a fleet, see Assign claim keys to a fleet.

When submitting a matchmaking ticket or directly creating a game session, the game client will use the name of the desired Build Configuration as the client_version attribute in the request, which triggers the matching development fleet to launch a dedicated server using that build configuration. To learn how to add the client_version to a match ticket, see Add version number to match ticket. Remember, the first attempt to claim a dedicated server from a development fleet will fail. AGS Session will automatically retry, but if you are writing your own dedicated server claim flow in your game client, you must build in retries.

As described in the Claim dedicated servers from AMS fleets article, the dedicated server claim request finds the desired fleet by searching for a fleet with a claim key matching any of the claim keys in the request. If the matching fleet is a development fleet, AMS looks for a dedicated server from that fleet that was launched using a Build Configuration with a name matching one of the claim keys from the request. If no dedicated servers are found, AMS will look for a Build Configuration with a name matching one of the claim keys, and launch a new dedicated server using that Build Configuration, so that one will be available to claim when the claim request is retried.

Basic setup example

This sample setup assumes you have created a development fleet and you want to configure it to be used by developers and QA to test dedicated server builds.

Follow these steps:

  1. Add a test claim key to your development fleet.

  2. Add test as a claim key to the preferred (or fallback) claim keys in the session template, which is configured in the match pool that your game client will use.

    With this setup, your game sessions will try to claim a dedicated server from your development fleet. Now, assume you have a dedicated server build and matching client build, 240506.2.main, which you would like to test using your development fleet.

  3. Create a Build Configuration named "240506.2.main" and choose the uploaded dedicated server image that corresponds to build 240506.2.main.

  4. Make sure that your 240506.2.main game client is using the build version "240506.2.main" as the client_version in the match ticket.

    Your 240506.2.main game clients will matchmake into sessions that will try to claim a dedicated server from your development fleet. This will trigger a dedicated server launch using your "240506.2.main" Build Configuration, and then claim that dedicated server for the session.

    You can then repeat the above two steps to create a Build Configuration for each build that you want to test using this Development fleet.

Hybrid setup example

A hybrid setup allows you to mix and match development fleets with regular fleets to save cost when running a variety of builds while still providing a fast claim experience for your high-use builds.

This sample hybrid setup assumes:

  • You have defined a session template for your "romp" game mode that uses a particular set of command line parameters to launch the DS.
  • You want to use that session template across multiple builds.
  • You have a daily playtest on a particular build, but still expect developers and testers to use other builds throughout the day.

In this setup, you'll want to maintain a buffer of ready servers using the playtest build to ensure players receive a DS as quickly as possible. Although this setup may cause longer wait time for players using other builds, this still ensures they will eventually be able to get the DS they need to launch their respective builds.

The example below uses build 1242 as the playtest build.

Follow these steps:

  1. Update the game client code to ensure game clients submit a client_version string as romp_<build_number> for match tickets in the "romp" game mode.

  2. Create a development fleet and add romp_fallback as a claim key. Then, set a buffer value of at least 1.

  3. Add romp_fallback to the Fallback Claim Keys list in your "romp" session template.

  4. For each build that will be used, create a development config for each usable build, named with the format romp_<fleet name> (e.g., romp_1245 for build 1245).

  5. For each playtest, create a regular fleet using the daily playtest build and add a claim key with the format romp_<fleet name> (e.g., romp_1242). Set the appropriate buffer for your playtest size

In this setup:

  • Matches formed with clients playing "romp" on the daily playtest (build 1242 ) will first attempt to claim a DS from the regular fleet using the claim key romp_1242. If no DS is available, a DS will be launched on the development fleet using the romp_1242 configuration due to the romp_fallback claim key matching the development fleet.
  • Matches formed with clients playing "romp" on build 1245 will not claim a DS from the daily playtest fleet since they don't match the claim key, and will trigger a DS to launch on the development fleet using the romp_1245 configuration.

What's next

Now that you have your build configuration for your development fleet, you are ready to configure a Play Session to claim dedicated servers from your fleet.

You can also explore different dedicated server claim scenarios.