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

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

Last updated on February 4, 2026

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

はじめに

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

備考

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

備考

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

ローカル専用サーバー認証IAMクライアントのセットアップ

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

Permission nameAction
NAMESPACE:{namespace}:AMS:LOCALDSCreate
AGS Shared Cloud

AccelByte Shared 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 Shared Cloud

AccelByte Shared Cloudのお客様の場合、AGSEnvironmentURL<studionamespace>-<gamenamespace>.prod.gamingservices.accelbyte.ioです。

  • AGSNamespace:ローカル専用サーバーを登録したい環境内のネームスペースを使用します。Shared 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に接続すると、シミュレータはconfig.jsonファイルで指定された環境にローカル専用サーバーを自動的に登録します。登録が成功すると、サイドバーのAccelByte Multiplayer Serversセクションの下にあるLocal ServerタブのAdmin Portalにエントリが表示されます。

Image shows the Local Server page10

ローカル専用サーバーのクレーム

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

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

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

リージョンフィールドを空白のままにすることも、非ローカル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を参照してください。

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

トラブルシューティング

DSがローカルAMS Simulatorに既に接続しているのに、Admin PortalのLocal Serverタブに表示されない場合は、session/<sessionid>.logのログファイルでより詳細なログを見つけることができます。一般的なケースは、権限エラーのためにローカルAMS SimulatorがAMS(fleet-command)への接続に失敗したことです。IAMクライアントに欠落している権限を追加し、config.jsonが正しいことを確認してください。Shared Cloudの場合は、AGSNamespaceとAGSEnvironmentURLが完全なネームスペース<studionamespace>-<gamenamespace>を使用していることを確認してください。