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.
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:
Go to your game namespace in the AGS Admin Portal.
On the sidebar, under ADD-ONS, select AccelByte Multiplayer Servers.
Under the AccelByte Multiplayer Servers menu, expand Development Servers and select Build Configurations. The Build Configurations page will appear.
Click the Create Config button and select Create New. The Create Config form will appear.
In the Name & Image section, do the following:
Type in a name for your Build Configuration. It must be unique within the namespace.
tipWe 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.
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.
Click Next to go to the Summary section.
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:
Add a
test
claim key to your development fleet.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.Create a Build Configuration named "240506.2.main" and choose the uploaded dedicated server image that corresponds to build
240506.2.main
.Make sure that your
240506.2.main
game client is using the build version "240506.2.main" as theclient_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:
Update the game client code to ensure game clients submit a
client_version
string asromp_<build_number>
for match tickets in the "romp" game mode.Create a development fleet and add
romp_fallback
as a claim key. Then, set a buffer value of at least1
.Add
romp_fallback
to the Fallback Claim Keys list in your "romp" session template.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 build1245
).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 keyromp_1242
. If no DS is available, a DS will be launched on the development fleet using theromp_1242
configuration due to theromp_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.