メインコンテンツまでスキップ

ローカル専用サーバーをAMSに登録する

Last updated on July 15, 2026

注釈:本資料はAI技術を用いて翻訳されています。

はじめに

AMS Simulatorを使用して、ローカルで実行されている専用サーバー(DS)をAMSに登録できます。これにより、マッチメイキングやセッションの作成を含むゲームフローをエンドツーエンドでテストでき、専用サーバーをAMSにアップロードする必要がありません。このガイドでは、ローカル専用サーバーをAMSに登録する手順を説明します。

備考

このセクションでは、AMS Simulatorを「クラウド統合」モードで実行することについて説明します。このモードでは、Matchmaking・Sessionサービスで使用するために、ローカル専用サーバーがAMS環境に登録されます。AMS Simulatorを初めて使用する場合、またはAMS Simulatorをスタンドアロンモード(完全にローカル)で実行したい場合は、AMS Simulatorの実行(スタンドアロンモード)を参照してください。

備考

各ネームスペースは、最大10台のローカル専用サーバーを登録できます。

ローカル専用サーバー認証用のIAMクライアントを設定する

ローカル専用サーバーをAMSに登録する前に、以下の権限を持つconfidentialのIAMクライアントをAdmin Portalで設定する必要があります。

権限名アクション
NAMESPACE:{namespace}:AMS:LOCALDSCreate
AGS Public Cloud

AccelByte Public Cloudのお客様は、AMS->Watchdogs PermissionsでCreate権限を持つconfidential IAMクライアントを使用してください。

このIAMクライアントは、AMS Simulatorの識別情報を検証するために使用されます。認可について詳しくは、Authorizationを参照してください。

AMS Simulatorを設定する

amssim generate-configコマンドを実行して、現在のディレクトリにデフォルトのconfig.jsonファイルを生成します。AMS Simulatorは、amssim runを実行する際にこのファイルを使用します。config.json内の以下の値を変更してください。

  • AGSEnvironmentURL:ローカル専用サーバーを登録したい環境のURLを、スキーム(例:http://)を除いて指定します。
AGS Public Cloud

AccelByte Public Cloudのお客様の場合、AGSEnvironmentURL<studionamespace>-<gamenamespace>.prod.gamingservices.accelbyte.ioになります。

  • AGSNamespace:ローカル専用サーバーを登録したい環境内のネームスペースを指定します。Public Cloudの場合は<studionamespace>-<gamenamespace>を使用します。

  • IAM:AMS Simulatorの認証に使用したClientIDClientSecretを指定します。

  • LocalDSHostLocalDSPort:プレイテスターが接続先を把握できるように、ローカル専用サーバーを実行するマシンのIPとポートを指定します。

  • ClaimKeys:セッションサービスがローカル専用サーバーをクレームする際に使用するクレームキーのリストを指定します。デフォルトでは、ServerNameがクレームキーの1つとして登録されます。

  • ServerName:ローカル専用サーバーに付けたい名前を指定します。デフォルトでは、コンピューター名を使用して自動生成されますが、必要に応じて変更できます。デフォルトでは、これがクレームキーの1つとして登録される点に注意してください。

例えば、config.jsonは以下のようになります。

{
"WatchdogPort": 5555,
"AGSEnvironmentURL": "mystudio-mygame.prod.gamingservices.accelbyte.io",
"AGSNamespace": "mystudio-mygame",
"IAM": {
"ClientID": "00000000000000000000000000000001",
"ClientSecret": "00000000000000000000000000000002"
},
"LocalDSHost": "127.0.0.1",
"LocalDSPort": 7777,
"ClaimKeys": [],
"ServerName": "JohnV1-MAC-AB",
"HeartbeatTimeoutSeconds": 30
}

ローカル専用サーバーを実行する

ローカル専用サーバーがAMS Simulatorに接続すると、Simulatorはconfig.jsonファイルで指定された環境に、ローカル専用サーバーを自動的に登録します。登録に成功すると、サイドバーのAccelByte Multiplayer Serversセクション内、Admin PortalのLocal Serverタブにエントリが表示されます。

Image shows the Local Server page10

ローカル専用サーバーをクレームする

ローカル専用サーバーはリージョンを持たないものとして扱われ、クレームリクエストで指定されたリージョンよりも_常に_優先的に選択されます。AMSに登録されたローカルサーバーをクレームするには、サーバーが「ready」状態になっていることと、クレームリクエストに、config.jsonにリストされたクレームキーまたはサーバー名のいずれかに一致するクレームキーが少なくとも1つ含まれていることを確認するだけで済みます。

このドキュメントの残りの部分では、マッチメイキングとセッション管理にAccelByte Gaming Services(AGS)を使用していることを前提とし、ゲームクライアントがローカルDSにマッチメイキングできるようにするための、より詳細な例を示します。

AGSを使用する場合、セッションタイプがDS - AMSで、amssimのconfig.jsonファイルで指定されたクレームキーのいずれかに一致するクレームキーを持つAGSセッションテンプレートを設定できます。なお、以下で説明するように、マッチメイキング/セッション作成リクエストにserver_nameを指定していれば、クレームキーを空欄にしておくこともできます。

regionsフィールドは空欄にしておくことができます。また、非ローカルDS用に同じセッションテンプレートを使用しており、そのためのデフォルトリージョンを設定したい場合は、任意のリージョンを設定できます。これにより、マッチメーカーは、設定したセッションテンプレートを使用してプレイヤーをローカル専用サーバーに配置できるようになります。

ローカルDSでのテスト用に新しい専用セッションテンプレートを作成する必要はありません。以下の条件を満たしていれば、既存のセッションテンプレートを再利用できます。

  1. 使用しているマッチプールが、DS - AMSタイプのセッションテンプレートを参照している。
  2. ゲームクライアントが、FOnlineSessionV2AccelByte::StartMatchmaking()(マッチメイキングではなく直接セッションを作成する場合はFOnlineSessionV2AccelByte::CreateSession())にSETTING_GAMESESSION_SERVERNAME属性を含めている。
備考
  • SETTING_GAMESESSION_SERVERNAMEの値は、ams config.jsonで定義されているServerNameと一致する必要があります。
  • DSをローカルで単体テストしたい場合、amsのconfig.json内のClaimKeysの値は空欄にしておくことができます。デフォルトでは、ServerNameがクレームキーの1つとして登録されます。

以下は、マッチメイキングリクエスト時にゲームクライアント内からローカルサーバー名を渡す方法の例です。

// Set local server name for matchmaking request, if any.
// This is useful if you want to try matchmaking using a local dedicated server.
FString ServerName;
FParse::Value(FCommandLine::Get(), TEXT("-ServerName="), ServerName);
if (!ServerName.IsEmpty())
{
UE_LOG_MATCHMAKINGDS(Log, TEXT("Requesting local server with name: %s"), *ServerName)
MatchmakingSearchHandle->QuerySettings.Set(SETTING_GAMESESSION_SERVERNAME, ServerName, EOnlineComparisonOp::Equals);
}
...
GetSessionInt()->StartMatchmaking(
LocalPlayers,
SessionName,
FOnlineSessionSettings(),
MatchmakingSearchHandle,
CompletionDelegate);

完全なコード例については、Byte Wars: Matchmaking with DSを参照してください。

マッチメイキングとセッションテンプレートの詳細については、以下のガイドを参照してください。

トラブルシューティング

ローカルAMS Simulatorに接続済みであるにもかかわらず、DSがAdmin PortalのLocal Serverタブに表示されない場合は、session/<sessionid>.logのログファイルでより詳細なログを確認できます。よくある原因は、権限エラーによりローカルAMS Simulatorが(fleet-commandである)AMSへの接続に失敗していることです。IAMクライアントに不足している権限を追加し、config.jsonが正しいことを確認してください。Public Cloudの場合、AGSNamespaceとAGSEnvironmentURLが、完全なネームスペース<studionamespace>-<gamenamespace>を使用していることを確認してください。