Amazon GameLift Servers용 Go 서버 SDK - 데이터 유형
해당 서버 SDK 참조를 사용하여 Amazon GameLift Servers와 함께 호스팅할 멀티플레이어 게임을 통합합니다. 통합 프로세스에 대한 지침은 서버 SDK를 사용하여 게임 서버에 Amazon GameLift Servers를 추가합니다. 페이지를 참조하세요.
GameLiftServerAPI.go는 Go 서버 SDK 작업을 정의합니다.
Amazon GameLift Servers용 Go 서버 SDK - 작업
데이터 타입
LogParameters
Amazon GameLift Servers가 게임 세션 종료 후 업로드하고 저장하기를 원하는 게임 세션 중에 생성된 파일을 식별하는 객체입니다. 게임 서버는 ProcessReady() 호출 시 ProcessParameters 객체의 일부로 LogParameters를 Amazon GameLift Servers에 제공합니다.
|
속성 |
설명 |
LogPaths |
Amazon GameLift Servers가 향후 사용을 위해 저장하도록 하려는 게임 서버 로그 파일의 디렉터리 경로 목록입니다. 서버 프로세스는 각 게임 세션 중에 이러한 파일을 생성합니다. 게임 서버에서 파일 경로와 이름을 정의하고 이를 루트 게임 빌드 디렉터리에 저장합니다. 로그 경로는 절대값이어야 합니다. 예를 들어, 게임 빌드가 유형: 필수 항목 여부: 아니요 |
MetricsParameters
지표 시스템을 초기화하기 위해 구성 파라미터를 전달하는 객체입니다. 이 구성은 StatsD 보고, 충돌 보고 및 지표 처리 동작을 설정하는 데 사용됩니다. 게임 서버는 InitMetrics() 호출의 일부로 MetricsParameters를 Amazon GameLift Servers에 제공합니다.
|
속성 |
설명 |
StatsdHost |
지표 보고를 위한 StatsD 서버 호스트(예: "localhost"). 유형: 필수 항목 여부: 예 |
StatsdPort |
지표 보고를 위한 StatsD 서버 포트(예: 8125). 유형: 필수 항목 여부: 예 |
CrashReporterHost |
충돌 추적 및 프로세스 모니터링을 위한 충돌 리포터 호스트입니다. 유형: 필수 항목 여부: 예 |
CrashReporterPort |
충돌 추적 및 프로세스 모니터링을 위한 충돌 리포터 포트입니다. 유형: 필수 항목 여부: 예 |
FlushIntervalMs |
밀리초 단위의 지표 플러시 간격. 지표가 StatsD로 전송되는 빈도를 제어합니다. 유형: 필수 항목 여부: 예 |
MaxPacketSize |
바이트 단위의 지표에 대한 최대 패킷 크기. StatsD로 전송되는 UDP 패킷의 크기를 제한합니다. 유형: 필수 항목 여부: 예 |
ProcessParameters
서버 프로세스와 Amazon GameLift Servers 간의 통신을 설명하는 객체입니다. 서버 프로세스는 ProcessReady()를 호출하여 이 정보를 Amazon GameLift Servers에 제공합니다.
|
속성 |
설명 |
LogParameters |
게임 세션 중에 생성되는 파일에 대한 디렉터리 경로가 있는 객체입니다. Amazon GameLift Servers는 나중에 액세스할 수 있도록 파일을 복사하고 저장합니다. 유형: 필수 항목 여부: 아니요 |
OnHealthCheck |
Amazon GameLift Servers가 서버 프로세스에서 상태 보고서를 요청하기 위해 간접 호출하는 콜백 함수입니다. Amazon GameLift Servers는 60초 간격으로 이 기능을 호출하고 60초 동안 응답을 기다립니다. 서버 프로세스가 정상이면 TRUE를 반환하고, 정상이 아니면 FALSE를 반환합니다. 응답이 반환되지 않으면 Amazon GameLift Servers는 서버 프로세스를 정상이 아닌 것으로 기록합니다.유형: 필수 항목 여부: 아니요 |
OnProcessTerminate |
Amazon GameLift Servers가 서버 프로세스를 강제로 종료하기 위해 간접 호출하는 콜백 함수입니다. 이 함수를 호출한 후 Amazon GameLift Servers는 서버 프로세스가 종료될 때까지 5분을 기다렸다가 ProcessEnding() 호출로 응답한 후 서버 프로세스를 종료합니다. 유형: 필수 항목 여부: 예 |
OnStartGameSession |
Amazon GameLift Servers가 업데이트된 게임 세션 객체를 전달하기 위해 간접 호출하는 콜백 함수입니다. 매치 채우기 요청이 처리되면 업데이트된 매치메이커 데이터를 제공하기 위해 Amazon GameLift Servers에서 이 함수를 호출합니다. GameSession 객체, 상태 업데이트(updateReason) 및 매치 채우기 티켓 ID를 전달합니다.유형: 필수 항목 여부: 예 |
OnUpdateGameSession |
Amazon GameLift Servers가 업데이트된 게임 세션 정보를 전달하기 위해 간접 호출하는 콜백 함수입니다. 매치 채우기 요청이 처리된 후 업데이트된 매치메이커 데이터를 제공하기 위해 Amazon GameLift Servers에서 이 함수를 호출합니다. 유형: 필수 항목 여부: 아니요 |
Port |
서버 프로세스가 새 플레이어 연결을 수신 대기하는 포트 번호입니다. 이 값은 이 게임 서버 빌드를 전개하는 플릿에 대해 구성된 포트 범위에 속해야 합니다. 이 포트 번호는 게임 세션 및 플레이어 세션 객체에 포함되며, 게임 세션이 서버 프로세스에 연결할 때 이 포트 번호를 사용합니다. 유형: 필수 항목 여부: 예 |
UpdateGameSession
게임 세션 객체의 업데이트로, 여기에는 게임 세션이 업데이트된 이유와 게임 세션의 플레이어 세션을 채우기 위해 backfill을 사용하는 경우 관련된 채우기 티켓 ID가 포함됩니다.
| 속성 | 설명 |
|---|---|
| GameSession | GameSession 객체입니다. GameSession 객체에는 게임 세션을 설명하는 속성이 포함되어 있습니다.유형: 필수 항목 여부: 예 |
| UpdateReason | 게임 세션이 업데이트되는 이유입니다. 유형: 필수 항목 여부: 예 |
| BackfillTicketId | 게임 세션 업데이트를 시도하는 채우기 티켓의 ID입니다. 유형: 필수 항목 여부: 아니요 |
GameSession
게임 세션의 세부 정보입니다.
| 속성 | 설명 |
|---|---|
| GameSessionId |
게임 세션에 대한 고유 식별자입니다. 게임 세션 Amazon 리소스 이름(ARN)은 다음과 같은 형식을 갖습니다. 유형: 필수 항목 여부: 아니요 |
| 명칭 |
게임 세션을 설명하는 레이블입니다. 유형: 필수 항목 여부: 아니요 |
| FleetId |
게임 세션이 실행 중인 플릿의 고유 식별자입니다. 유형: 필수 항목 여부: 아니요 |
| MaximumPlayerSessionCount |
게임 세션에 연결된 최대 플레이어 수입니다. 유형: 필수 항목 여부: 아니요 |
| Port |
게임 세션의 포트 번호입니다. Amazon GameLift Servers 게임 서버에 연결하려면 앱에 IP 주소와 포트 번호가 모두 필요합니다. 유형: 필수 항목 여부: 아니요 |
| IpAddress |
게임 세션의 IP 주소입니다. Amazon GameLift Servers 게임 서버에 연결하려면 앱에 IP 주소와 포트 번호가 모두 필요합니다. 유형: 필수 항목 여부: 아니요 |
| GameSessionData |
단일 문자열 값으로 포맷된 사용자 지정 게임 세션 속성의 집합입니다. 유형: 필수 항목 여부: 아니요 |
| MatchmakerData |
게임 세션을 생성하는 데 사용된 매치메이킹 프로세스에 대한 정보(JSON 구문 사용, 문자열 형식). 사용된 매치메이킹 구성 외에도 플레이어 속성 및 팀 배정을 포함하여 경기에 배정된 모든 플레이어에 대한 데이터가 포함됩니다. 유형: 필수 항목 여부: 아니요 |
| GameProperties |
키:값 페어로 포맷된 게임 세션에 대한 사용자 정의 속성 집합입니다. 이러한 속성은 새 게임 세션을 시작하라는 요청과 함께 전달됩니다. 유형: 필수 항목 여부: 아니요 |
| DnsName |
게임 세션을 실행하는 인스턴스에 할당된 DNS 식별자입니다. 값은 다음 형식을 사용합니다.
TLS 지원 플릿에서 실행되는 게임 세션에 연결할 때는 IP 주소가 아닌 DNS 이름을 사용해야 합니다. 유형: 필수 항목 여부: 아니요 |
ServerParameters
Amazon GameLift Servers Anywhere 서버와 Amazon GameLift Servers 서비스 간의 연결을 유지하는 데 사용되는 정보입니다. 이 정보는 InitSDK()에서 새 서버 프로세스를 시작할 때 사용됩니다. Amazon GameLift Servers 관리형 EC2 인스턴스에 호스팅되는 서버의 경우 빈 객체를 사용합니다.
| 속성 | 설명 |
|---|---|
WebSocketURL |
Amazon GameLift Servers Anywhere 컴퓨팅 리소스에 대해 유형: 필수 항목 여부: 예 |
ProcessID |
게임을 호스팅하는 서버 프로세스에 등록된 고유 식별자입니다. 유형: 필수 항목 여부: 예 |
HostID |
새 서버 프로세스를 호스팅하는 컴퓨팅 리소스의 고유 식별자입니다.
유형: 필수 항목 여부: 예 |
FleetID |
컴퓨팅이 등록된 플릿의 고유 식별자입니다. 자세한 내용은 RegisterCompute를 참조하세요. 유형: 필수 항목 여부: 예 |
AuthToken |
Amazon GameLift Servers에서 생성한 인증 토큰으로, Amazon GameLift Servers에 서버를 인증합니다. 자세한 내용은 GetComputeAuthToken을 참조하세요. 유형: 필수 항목 여부: 예 |
StartMatchBackfillRequest
매치메이킹 채우기 요청을 생성하는 데 사용되는 정보입니다. 게임 서버는 StartMatchBackfill() 호출을 통해 이 정보를 Amazon GameLift Servers에 전달합니다.
| 속성 | 설명 |
|---|---|
| GameSessionArn |
고유한 게임 세션 식별자입니다. API 작업 유형: 필수 항목 여부: 예 |
| MatchmakingConfigurationArn |
매치메이커가 이 요청에 사용할 (ARN 형식의) 고유 식별자입니다. 원본 게임 세션에 대한 매치메이커 ARN은 매치메이커 데이터 속성의 게임 세션 객체에 있습니다. 매치메이커 데이터에 대한 자세한 내용은 매치메이커 데이터를 사용하는 작업을 참조하세요. 유형: 필수 항목 여부: 예 |
| Players |
현재 게임 세션에 있는 모든 플레이어를 나타내는 데이터 세트입니다. 매치메이커는 이 정보를 사용하여 현재 플레이어와 적절하게 일치하는 새로운 플레이어를 검색합니다. 유형: 필수 항목 여부: 예 |
| TicketId |
매치메이킹 또는 매치 채우기 요청 티켓의 고유 식별자입니다. 값을 제공하지 않으면 Amazon GameLift Servers에서 값을 생성합니다. 이 식별자를 사용하여 매치 채우기 티켓 상태를 추적하거나 필요한 경우 요청을 취소합니다. 유형: 필수 항목 여부: 아니요 |
Player
매치메이킹 중인 플레이어를 나타내는 객체입니다. 매치메이킹 요청을 시작할 때 플레이어는 플레이어 ID, 속성, 지연 시간 데이터를 가지고 있을 수 있습니다. Amazon GameLift Servers는 매치가 성사된 후 팀 정보를 추가합니다.
| 속성 | 설명 |
|---|---|
| LatencyInMS |
플레이어가 특정 위치에 연결되었을 때 발생하는 지연 시간을 나타내는 값 집합으로, 밀리초 단위로 표시됩니다. 이 속성을 사용하는 경우 플레이어는 나열된 위치에서만 매칭됩니다. 매치메이커에 플레이어 지연 시간을 평가하는 규칙이 있는 경우 플레이어는 지연 시간을 보고해야 매칭됩니다. 유형: 필수 항목 여부: 아니요 |
| PlayerAttributes |
매치메이킹에 사용할 플레이어 정보가 포함된 키:값 페어의 모음입니다. 플레이어 속성 키는 매치메이킹 규칙 세트에 사용되는 PlayerAttributes와 일치해야 합니다. 플레이어 속성에 대한 자세한 내용은 AttributeValue를 참조하세요. 유형: 필수 항목 여부: 아니요 |
| PlayerId |
플레이어의 고유 식별자입니다. 유형: 필수 항목 여부: 아니요 |
| Team |
매치에서 플레이어가 배정되는 팀의 이름입니다. 매치메이킹 규칙 세트에 팀 이름을 정의합니다. 유형: 필수 항목 여부: 아니요 |
DescribePlayerSessionsRequest
검색할 플레이어 세션을 지정하는 객체입니다. 서버 프로세스는 Amazon GameLift Servers로 DescribePlayerSessions() 호출을 통해 이 정보를 제공합니다.
| 속성 | 설명 |
|---|---|
GameSessionID |
고유한 게임 세션 식별자입니다. 지정한 게임 세션의 모든 플레이어 세션을 요청하려면 이 파라미터를 사용합니다. 게임 세션 ID 형식은 유형: 필수 항목 여부: 아니요 |
PlayerSessionID |
플레이어 세션의 고유 식별자입니다. 이 파라미터를 사용하여 단일 특정 플레이어 세션을 요청합니다. 유형: 필수 항목 여부: 아니요 |
PlayerID |
플레이어의 고유 식별자입니다. 이 파라미터를 사용하여 특정 플레이어에 대한 모든 플레이어 세션을 요청합니다. 플레이어 ID 생성을(를) 참조하세요. 유형: 필수 항목 여부: 아니요 |
PlayerSessionStatusFilter |
결과를 필터링하는 기준이 되는 플레이어 세션 상태입니다. 다음과 같은 플레이어 세션 상태가 가능합니다.
유형: 필수 항목 여부: 아니요 |
NextToken |
결과의 다음 페이지의 시작을 나타내는 토큰입니다. 결과 집합의 시작을 지정하려면 값을 제공하지 않습니다. 플레이어 세션 ID가 제공된 경우 이 파라미터가 무시됩니다. 유형: 필수 항목 여부: 아니요 |
Limit |
반환할 최대 결과 수입니다. 플레이어 세션 ID가 제공된 경우 이 파라미터가 무시됩니다. 유형: 필수 항목 여부: 아니요 |
StopMatchBackfillRequest
매치메이킹 채우기 요청을 취소하는 데 사용되는 정보입니다. 게임 서버는 StopMatchBackfill() 호출을 통해 이 정보를 Amazon GameLift Servers 서비스에 전달합니다.
| 속성 | 설명 |
|---|---|
| GameSessionArn |
취소 중인 요청의 고유한 게임 세션 식별자입니다. 유형: 필수 항목 여부: 아니요 |
| MatchmakingConfigurationArn |
이 요청을 보낸 매치메이커의 고유 식별자입니다. 유형: 필수 항목 여부: 아니요 |
| TicketId |
취소할 채우기 요청 티켓의 고유 식별자입니다. 유형: 필수 항목 여부: 아니요 |
GetFleetRoleCredentialsRequest
AWS 리소스에 대한 제한된 액세스를 게임 서버까지 확장하는 역할 자격 증명입니다. 자세한 내용은 Amazon GameLift Servers의 IAM 서비스 역할 설정 섹션을 참조하세요.
| 속성 | 설명 |
|---|---|
| RoleArn | AWS 리소스에 대한 제한된 액세스를 확장하는 서비스 역할의 ARN입니다. 유형: 필수 항목 여부: 예 |
| RoleSessionName | 역할 자격 증명의 사용을 설명하는 세션 이름입니다. 유형: 필수 항목 여부: 예 |