Network - stingray.Network 네임스페이스 참조 - Stingray Lua API 참조

설명

Network 오브젝트는 멀티플레이 게임을 네트워크를 통해 플레이하는 데 사용되는 시스템에 대한 기본 인터페이스입니다.

이 시스템을 사용하려면 먼저 사용할 네트워크 하위 시스템을 결정하는 init_...() 함수(init_lan_client(), init_steam_client(), init_psn_client(), init_xboxlive_client() 등)를 호출하여 시스템을 설정해야 합니다.

한 번에 하나의 네트워크 하위 시스템만 실행할 수 있습니다.

네트워크를 초기화한 후에 사용 중인 네트워크 하위 시스템의 로비 기능을 사용하여 새 로비를 생성하거나 기존 로비를 찾습니다(로비 브라우저 사용). 사용 중인 네트워크 하위 시스템 인터페이스(LAN, Steam, PSN 또는 Xbox Live)를 확인합니다.

클라이언트가 실행되는 한 모든 프레임에서 Network.update()를 호출해야 합니다.

로비에 충분한 플레이어가 있다면 새로운 GameSession(실행 중인 멀티 플레이 게임을 관리하는 오브젝트)을 시작할 수 있습니다. 어느 네트워크 하위 시스템을 사용 중이든 동일한 오브젝트를 사용합니다.

네트워크를 사용하는 작업을 완료하고 나면 사용 중인 네트워크 하위 시스템에 대해 shutdown_...() 함수(shutdown_lan_client(), shutdown_steam_client(), shutdown_psn_client(), shutdown_xboxlive_client() 등)를 호출해야 합니다.

DLC, Steam [Leaderboards] 및 Achievements 등의 기타 네트워크 기능은 여기에 나와 있지 않습니다.

함수

매개변수

config_resource :

string

해시할 .network_config 데이터 파일의 리소스 이름입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

두 피어가 호환되는지를 판단하는 데 사용할 수 있습니다.

매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목

stingray.GameSession

새로 생성된 게임 세션입니다.

한 번에 하나의 게임 세션만 실행할 수 있습니다. 기존 세션이 있는 경우 새 세션을 생성하기 전에 먼저 shutdown_game_session()을 호출해 기존 세션을 종료해야 합니다.

참고: 서버와 클라이언트 모두 create_game_session()을 호출해야 합니다. 서버는 게임을 시작할 때, 클라이언트는 게임에 들어갈 때 호출해야 합니다.

매개변수

min_peer_kbps :

number

허용되는 최소 업로드 속도(kbit/s)입니다.

initial_peer_kbps :

number

최초 업로드 속도(kbit/s)입니다.

max_total_kbps :

number

허용되는 최대 업스트림 대역폭(kbit/s)입니다. 여러 게임을 서비스하는 전용 서버의 트래픽을 제한하는 데 사용됩니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.
매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목

boolean

치명적인 네트워크 오류가 발생한 경우 true를, 그렇지 않으면 false를 반환합니다.

게임은 이 상황에 대응해 Network 오브젝트를 종료하고, 플레이어를 오프라인 모드로 전환해야 합니다.

예를 들어, 게임 중 플레이어가 PlayStation Network에서 로그아웃하면 이 상황이 발생할 수도 있습니다.

매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목

stingray.GameSession

현재 게임 세션을 반환하거나, 아직 설정된 게임 세션이 없으면 nil을 반환합니다.

매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목

string

네트워크에서 이 피어를 고유하게 식별하는 문자열을 반환하거나, 아직 설정된 피어 ID가 없으면 nil을 반환합니다.

  • LAN 게임에서는 이 ID가 난수입니다.
  • Steam에서는 플레이어의 Steam ID입니다.

아직 설정된 피어 ID가 없는 경우에는 이 함수가 nil을 반환합니다. PlayStation4에서 룸에 대한 연결이 설정될 때까지 피어 ID를 알 수 없는 경우 이렇게 될 수 있습니다.

매개변수

player_id :

string

연결하려는 피어의 ID입니다.

반환하는 항목

number

해당 플레이어에게 도달하기 위한 ping에 소요되는 시간을 반환하거나, 해당 플레이어와 연결되어 있지 않으면 0을 반환합니다.

매개변수

peer_id :

string

피어를 식별합니다.

반환하는 항목

number

버퍼 크기(바이트)를 반환하거나, 해당 피어가 없으면 0을 반환합니다.

처음 새 피어가 세션에 참가하면 새 피어가 플레이를 시작하기 전에 몇 가지 정보를 전송해주는 것이 일반적입니다. 게임 오브젝트 생성 메시지가 여러 프레임에 걸쳐 분산되면서 아직 다른 끝단에서 수신하지 않은 정보를 포함하고 있는 버퍼에 과부하가 걸리지 않습니다. 모든 게임 오브젝트가 성공적으로 전송되고 나면 이를 알려주는 콜백을 받습니다. 피어가 세션에 참가할 때 대량의 데이터를 전송하는 경우에는 RPC 메시지도 비슷한 방식으로 처리되어야 합니다. 하지만 엔진에서는 이를 내부적으로 처리하지 않습니다. 이 함수를 사용하여 전송 버퍼에 더 많은 공간이 남겨질 때까지 RPC 메시지 전송을 중지하는 것이 최선일지 판단할 수 있습니다.

참고: 사용자가 인식하지 못한 데이터를 엔진이 전송할 수도 있으므로 버퍼를 완전히 채우지는 마십시오.

매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.
매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

자세한 내용은 [ReplaySession] 설명서를 참조하십시오.

매개변수

dt :

number

마지막 update() 호출 이후의 델타 시간(초)입니다.

callback_object :

table

네트워크 게임 세션 중에 발생하는 이벤트에 응답하기 위해 호출하는 콜백 함수 세트가 포함되어 있는 테이블입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

이벤트 또는 RPC 메시지가 있을 때마다 callback_object 테이블의 함수가 update() 호출 중에 즉시 호출됩니다.

다른 피어가 RPC 메시지를 전송하는 경우에는 .network_config 데이터 파일에 설정해 둔 메시지 이름에 따라 어느 함수를 호출할지 결정됩니다. 자세한 내용은 RPC 오브젝트 설명서를 참조하십시오.

게임 이벤트의 경우에는 발생할 수 있는 다양한 게임 이벤트를 처리하도록 콜백 오브젝트에 구현해야 하는 콜백 함수 목록이 사전 설정되어 있습니다.

  • game_object_created(id, creator_id)

id로 식별된 게임 오브젝트가 피어 creator_id에 의해 생성되었음을 알려줍니다.

  • game_object_destroyed(id, destroyer_id)

id로 식별된 게임 오브젝트가 피어 destroyer_id에 의해 삭제되었음을 알려줍니다.

  • game_object_migrated_to_me(id, old_owner_id)

이제 id로 식별되는 게임 오브젝트의 소유자가 되었음을 알려줍니다. old_owner_id 매개변수는 이전에 이 게임 오브젝트를 소유했던 피어를 식별합니다.

  • game_object_migrated_away(id, new_owner_id)

더 이상 id로 식별되는 게임 오브젝트의 소유자가 아님을 알려줍니다. new_owner_id 매개변수는 이제 이 게임 오브젝트를 소유하는 피어를 식별합니다.

  • game_object_sync_done(peer_id)

새 피어가 추가된 후에 모든 게임 오브젝트가 지정된 원격 피어와 동기화되어 이제부터는 RPC 호출의 순서가 게임 오브젝트 생성 메시지를 기준으로 정해진다는 것을 알려줍니다. 이 콜백이 이루어지기 전에는 RPC 호출 및 게임 오브젝트 생성 호출이 호출 순서와 동일한 순서로 도달한다는 보장이 없습니다.

  • game_session_disconnect(host_id)

게임 세션 호스트에 의해 게임 세션 연결이 끊겼음을 알려줍니다. 추방을 당했거나 게임 세션 호스트가 게임에서 나갔을 수 있습니다.

네트워크 대기 시간을 조금이라도 줄이고 싶다면 대신 게임에서 update_receive()를 호출해 네트워크 통신을 수신하고, 이에 응답한 다음, 동일한 프레임에서 나중에 update_transmit()를 호출하면 됩니다.

매개변수

dt :

number

마지막 update() 호출 이후의 델타 시간(초)입니다.

callback_object :

table

네트워크 게임 세션 중에 발생하는 이벤트에 응답하기 위해 호출하는 콜백 함수 세트가 포함되어 있는 테이블입니다. 자세한 내용은 update()에 대한 설명을 참조하십시오. 대기 시간을 한 프레임 줄이려면 update()를 단일 호출하는 대신 update_receive()update_transmit()를 이 순서대로 호출하면 됩니다. 이런 식으로, 전송 전에 동일한 프레임 내에서 수신한 정보에 응답할 수 있습니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.
매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

이런 식으로, 전송 전에 동일한 프레임 내에서 수신한 정보에 응답할 수 있습니다.

매개변수

details :

string

네트워크 로그 파일에 기록할 문자열입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

Network Analyzer 도구로 네트워크 로그 파일을 살펴보는 경우에는 이 태그가 대역폭 그래프에 수직 마커로 표시됩니다.

구성

이 그룹의 요소들은 네트워크 연결 구성과 관련되어 있습니다.

매개변수

message_name :

string

관련 정보를 검색하려는 RPC 메시지 유형의 이름입니다. 이 이름은 .network_config 데이터 파일에 지정되어 있는 메시지 이름과 일치해야 합니다.

반환하는 항목

network_message_info

지정된 메시지 유형에 관한 메타데이터를 포함하고 있는 테이블입니다.

매개변수

object_name :

string

관련 정보를 검색하려는 게임 오브젝트 유형의 이름입니다. 이 이름은 .network_config 데이터 파일에 지정되어 있는 오브젝트 이름과 일치해야 합니다.

반환하는 항목

network_object_info

지정된 게임 오브젝트 유형에 관한 메타데이터를 포함하고 있는 테이블입니다.

매개변수

time :

number

연속적인 전송 간 경과할 수 있는 새로운 최소 시간(초)입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

기본값은 0.03입니다.

매개변수

time :

number

keep-alive 메시지를 전송하는 새로운 시간 간격(초)입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

기본값은 0.5입니다.

매개변수

time :

number

keep-alive 메시지를 전송하는 새로운 시간 간격(초)입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

기본값은 1.0입니다.

매개변수

time :

number

수신자와의 연결이 끊긴 것으로 간주하기까지의 새로운 최대 시간(초)입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

기본값은 60.0입니다.

매개변수

time :

number

설정할 새로운 재전송 시간(초)입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

기본값은 0.2입니다.

매개변수

type_name :

string

관련 정보를 검색하려는 데이터 유형의 이름입니다. 이 이름은 .network_config 데이터 파일에 지정되어 있는 유형 이름과 일치해야 합니다.

반환하는 항목

network_type_info

지정된 데이터 유형에 관한 메타데이터를 포함하고 있는 테이블입니다.

데이터 유형

Network.type_info() 함수에서 사용하는, 다양한 데이터 유형의 식별자입니다.

ARRAY : integer

어레이의 데이터 유형입니다.

FLOAT : integer

부동 소수점 숫자의 데이터 유형입니다.

IDSTRING32 : integer

IdString32의 데이터 유형입니다.

IDSTRING64 : integer

IdString64의 데이터 유형입니다.

INT : integer

정수 숫자의 데이터 유형입니다.

QUATERNION : integer

쿼터니언 회전의 데이터 유형입니다.

RESOURCE_ID : integer

리소스 ID의 데이터 유형입니다.

STRING : integer

문자열 값의 데이터 유형입니다.

UINT64 : integer

64비트 정수 값의 데이터 유형입니다.

VECTOR3 : integer

3D 벡터 값의 데이터 유형입니다.

디버깅

이 그룹의 요소들은 네트워크 게임 디버깅에 관련되어 있습니다.

매개변수

log_level :

integer

MESSAGES 또는 WARNINGS 등, logging level 그룹의 어떠한 값이든 될 수 있습니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

디버깅 로그 수준

Network.log()로 전달할 수 있는 로그 수준입니다.

SILENT : integer

디버깅 출력이 없습니다.

SPEW : integer

게임 오브젝트 업데이트와 세부 정보, 그리고 위에 나온 모든 항목까지 출력됩니다.

개발 전용

이 그룹의 요소는 개발 빌드에서만 사용할 수 있습니다.

최종 빌드에서는 사용하지 마십시오.

매개변수

dump_file :

string

네트워크 세션의 덤프를 포함하고 있는 파일의 경로입니다.

반환하는 항목

stingray.GameSession

"재생 세션"으로 설정된 새로운 GameSession 오브젝트입니다.

자세한 내용은 GameSession 오브젝트 설명서를 참조하십시오.

매개변수

peer_id :

string

서비스 품질 시스템을 비활성화할 피어의 ID입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

enable_qos_peer()를 호출해 다시 활성화할 수 있습니다.

개발 빌드에서 서비스 품질 시스템을 디버깅하는 목적으로만 사용할 수 있습니다. 이 함수가 효과를 발휘하도록 하려면 enable_qos()를 호출하여 서비스 품질 시스템을 활성화해야 합니다.

매개변수

peer_id :

string

서비스 품질 시스템을 다시 활성화할 피어의 ID입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

개발 빌드에서 서비스 품질 시스템을 디버깅하는 목적으로만 사용할 수 있습니다. 이 함수가 효과를 발휘하도록 하려면 enable_qos()를 호출하여 서비스 품질 시스템을 활성화해야 합니다.

명시적 연결

이 그룹의 요소들은 명시적 연결 구성과 관련되어 있습니다.

매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목

string[]

피어 ID가 나열된 테이블입니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.
매개변수

peer_id :

string

연결하려는 피어의 고유 ID입니다.

반환하는 항목

integer

새로 생성된 연결의 ID입니다.

특정 피어에 대해서는 최대 하나의 연결만 존재할 수 있기 때문에 해당 피어와의 연결이 이미 존재하는 경우에는 이 함수를 호출할 수 없습니다.

이렇게 피어와 직접 연결하는 방식은 특정 전송 레이어(예: Steam)에서만 지원됩니다. PSN 등의 다른 전송 레이어에서는 연결이 항상 룸 및 로비를 통해 설정되기 때문에 피어와 직접 연결할 수 있는 방법이 없습니다.

매개변수

peer_id :

string

연결을 끊으려는 피어의 고유 ID입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

네트워크 스택의 상위 레이어가 사용하고 있는 연결은 해제할 수 없으므로 해당 연결을 해제할 수 있는지 확인하려면 이 함수를 호출하기 전에 먼저 is_used()를 호출해야 합니다.

매개변수

peer_id :

string

테스트하려는 피어의 고유 ID입니다.

반환하는 항목

integer?

이 피어에 대한 연결의 ID를 반환하거나, 연결이 없으면 nil을 반환합니다.

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
매개변수

peer_id :

string

연결을 테스트할 피어입니다.

반환하는 항목

boolean

연결이 끊겼으면 true를, 그렇지 않으면 false를 반환합니다.

매개변수

peer_id :

string

연결을 테스트할 피어입니다.

반환하는 항목

boolean

연결을 사용 중이면 true를, 그렇지 않으면 false를 반환합니다.

사용 중인 연결은 명시적으로 삭제할 수 없기 때문에 destroy_connection()을 호출할 수 있게 되기 전에는 이 함수가 false를 반환합니다. 이 함수가 true를 반환하는 상태에서 연결을 닫고 싶은 경우에는 이 피어와의 연결을 사용 중인 모든 로비, 룸, 게임 세션 등을 먼저 종료해야 합니다.

매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

LAN 관리

매개변수

lobby_port :

integer

로비 통신에 사용하려는 UDP 포트입니다. 이 포트는 init_lan_client() 호출 시 게임 포트로 사용하는 포트와 번호가 같으면 안 됩니다. 로비를 검색하는 클라이언트는 로비 포트 번호를 지정하기 때문에 로비를 실행 중인 모든 피어에 대해 잘 알려진 단일 포트 번호를 사용해야 합니다.

max_members :

integer

이 로비에 참여할 수 있는 최대 피어 수입니다.

반환하는 항목

stingray.LanLobby

새롭게 생성된 로비 오브젝트입니다.

이 함수를 사용해 새 로비를 생성하면 해당 로비에 자동으로 참여하게 됩니다. join_lan_lobby()를 호출할 필요가 없습니다.

매개변수

config :

string

클라이언트 설정을 위해 사용하는 .network_config 리소스의 이름입니다. 이 이름을 통해 세션 중에 사용할 수 있는 게임 오브젝트 및 RPC 메시지의 유형이 결정됩니다.

game_port :

integer?

네트워크 통신에 사용할 UDP 포트입니다. 0으로 지정하거나 이 매개변수를 생략하면 남아 있는 임의의 포트가 선택됩니다. 이렇게 하면 포트 번호가 충돌하지 않기 때문에 동일한 시스템에서 여러 네트워크 노드를 테스트할 때 유용합니다.

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.

peer_id :

integer?

지정하는 경우, 이 번호가 다른 네트워크 노드에 클라이언트를 식별시키는 ID로 사용됩니다. 생략하는 경우에는 임의의 수가 할당됩니다. 피어 ID는 LAN 상의 모든 노드에 대해 고유해야 합니다. 그렇지 않으면 메시지가 정확한 목적지에 도달하지 못합니다.

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
반환하는 항목

stingray.LanClient

새로운 클라이언트 오브젝트입니다.

LAN 클라이언트 초기화 후 모든 프레임에서 Network.update()를 호출하고 더 이상 필요하지 않으면 Network.shutdown_lan_client()를 호출해야 합니다.

매개변수

address :

string

로비를 실행 중인 호스트의 IP 주소 및 로비 포트 번호입니다. 이 문자열의 형식은 ip:port이며, 보통 LanLobbyBrowser.lobby() 호출을 통해 반환되는 정보 테이블에서 가져옵니다.

lobby_port :

integer?

로비가 이 컴퓨터에서 사용해야 하는 포트입니다.

lobby_port에 대해 0을 지정하거나, 매개변수를 생략하면 남아 있는 임의의 포트가 사용됩니다. 이렇게 하면 포트가 create_lan_lobby()에 사용되는 공용 로비 포트와 충돌하지 않기 때문에 동일한 시스템에서 여러 노드를 테스트할 때 유용합니다. 이 방식의 단점은 로비가 임의의 포트에서 실행 중이기 때문에 로비 호스트가 종료되어 로비가 사용자에게 이전되는 경우 다른 노드에서 로비를 찾을 수 없게 된다는 점입니다. 로비가 사용자에게 이전되어도 공개적으로 찾을 수 있게 하려면 create_lan_lobby()에서 사용하는 것과 동일한 공용 포트를 사용해야 합니다. 하지만 이 경우 동일한 시스템에서 여러 네트워크 노드를 실행할 수 없습니다.

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
반환하는 항목

stingray.LanLobby

참여한 로비입니다.

매개변수

lobby :

stingray.LanLobby

나오려는 로비입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

로비를 호스팅하는 중이라면 로비가 로비 내 다른 피어에게 이전됩니다. 로비의 마지막 구성원이라면 로비가 네트워크에서 제거됩니다.

매개변수

client :

stingray.LanClient

종료하려는 LAN 클라이언트입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

PSN 관리

매개변수

name :

string

새 룸의 이름입니.

max_members :

integer

이 룸에 참여할 수 있는 최대 피어 수입니다.

반환하는 항목

integer

새로 생성된 룸을 식별하는 ID입니다.

이 함수를 사용해 새 룸을 생성하면 해당 룸에 자동으로 참여하게 됩니다. join_psn_room()을 호출할 필요가 없습니다.

매개변수

config :

string

클라이언트 설정을 위해 사용하는 .network_config 리소스의 이름입니다. 이 이름을 통해 세션 중에 사용할 수 있는 게임 오브젝트 및 RPC 메시지의 유형이 결정됩니다.

반환하는 항목

stingray.PsnClient

새로운 클라이언트 오브젝트입니다.

매개변수

room_id :

string

참여하려는 룸의 ID입니다. 이 문자열은 대개 PsnRoomBrowser.room() 호출을 통해 반환되는 정보 테이블에서 가져옵니다.

반환하는 항목

stingray.PsnRoom

참여한 룸입니다.

매개변수

room :

stingray.PsnRoom

나오려는 룸입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

룸을 호스팅하는 중이라면 룸이 룸 내 다른 피어에게 이전됩니다. 룸의 마지막 구성원이라면 룸이 네트워크에서 제거됩니다.

매개변수

client :

stingray.PsnClient

종료하려는 PSN 클라이언트입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

Steam 네트워크 관리

매개변수

type_lobby :

integer

생성하려는 로비의 유형입니다. 이 유형은 로비 유형 상수 중 하나일 수 있습니다.

max_members :

integer

로비에서 허용되는 최대 구성원 수입니다.

반환하는 항목

stingray.SteamLobby

새로 생성된 Steam 로비입니다.

로비를 생성하면 자동으로 참여하게 됩니다. join_steam_lobby()를 호출할 필요가 없습니다.

매개변수

config :

string

클라이언트 설정을 위해 사용하는 * .network_config* 파일의 이름입니다. 이 이름을 통해 세션 중에 사용할 수 있는 게임 오브젝트 및 RPC 메시지의 유형이 결정됩니다.

반환하는 항목

stingray.SteamClient

새로운 Steam 클라이언트 오브젝트입니다.

이 함수는 Steam이 실행 중이어야 호출할 수 있습니다. stingray.Steam 오브젝트 및 Steam.connected() 함수를 참조하십시오.

매개변수

config :

string

서버 설정을 위해 사용할 * .network_config* 파일의 이름입니다. 이 이름을 통해 세션 중에 사용할 수 있는 게임 오브젝트 및 RPC 메시지의 유형이 결정됩니다.

settings :

network_steam_server_settings

키/값 쌍으로 표현되는, 서버의 구성 설정을 포함하고 있는 테이블입니다.

반환하는 항목

stingray.SteamGameServer

새로 생성된 Steam 게임 서버입니다.

매개변수

lobby_id :

integer

Steam 로비의 ID입니다.

반환하는 항목

stingray.SteamLobby

로비에 대한 연결을 나타내는, 새로 생성된 SteamLobby 오브젝트입니다.

매개변수

ip_address :

string

a.b.c.d:e 형식의 IPv4 주소입니다. 처음 네 개 숫자는 호스트의 IPv4 주소 구성요소이고, 그 뒤에 콜론, 그리고 서버가 사용하는 쿼리 포트의 번호가 차례대로 붙습니다. 예: 127.0.0.1:27016.

password :

string?

서버가 예상하는 암호(있는 경우)입니다. 암호로 보호되는 서버에 연결할 때에만 필요합니다.

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
반환하는 항목

stingray.SteamGameServerLobby

서버에 대한 연결을 추적하는 로비 오브젝트입니다.

서버에 대한 연결 진행 상황을 확인하는 데 사용되는 로비 오브젝트가 반환됩니다.

매개변수

ip_address :

string

a.b.c.d:e 형식의 IPv4 주소입니다. 네 개 숫자는 호스트의 IPv4 주소 구성요소입니다. 예: 127.0.0.1.

port :

number

서버가 사용하는 쿼리 포트의 번호입니다. 예: 27016.

password :

string?

서버가 예상하는 암호(있는 경우)입니다. 암호로 보호되는 서버에 연결할 때에만 필요합니다.

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
반환하는 항목

stingray.SteamGameServerLobby

서버에 대한 연결을 추적하는 로비 오브젝트입니다.

서버에 대한 연결 진행 상황을 확인하는 데 사용되는 로비 오브젝트가 반환됩니다.

매개변수

lobby :

stingray.SteamLobby

나오려는 Steam 로비입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

로비를 호스팅하는 중이라면 로비가 로비 내 다른 사용자에게 이전됩니다. 로비의 마지막 구성원이라면 로비가 제거됩니다.

매개변수

server_lobby :

stingray.SteamGameServerLobby

제거하려는 로비입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.
매개변수

client :

stingray.SteamClient

종료하려는 Steam 클라이언트입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.
매개변수

server :

stingray.SteamGameServer

종료하려는 Steam 게임 서버입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

Steam 로비 유형

다양한 Steam 로비 유형을 나타내는 데 사용되는 상수입니다.

로비에 친구들이 참여할 수 있음을 나타냅니다.
로비가 다른 친구들에게 보이지 않지만 검색 결과로 반환될 수 있음을 나타냅니다.
로비에 초대를 받은 사람만 참여할 수 있음을 나타냅니다.
로비가 로비 목록에 표시됨을 나타냅니다.

Xbox Live 관리

매개변수

user_id :

integer

연관 세션을 정리하려는 사용자의 ID입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

사용자가 매치메이킹 또는 세션 생성을 시작하기 전에 실행하는 것이 좋습니다. 이 함수는 비동기적으로 실행되며, clean_sessions_status()를 사용하여 상태를 모니터링합니다.

완료 시 자동으로 stingray.SessionJobStatus.COMPLETE가 아닌 stingray.SessionJobStatus.NOT_RUNNING으로 전환되기 때문에 이 작업을 완료하고 나서는 리소스 점유를 풀어줄 필요가 없습니다.

호출 전에 모든 세션에서 나왔는지 확인합니다.

매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목

integer

clean_sessions()으로 시작한 세션 정리 작업의 상태입니다. SessionJobStatus(network.xbl.work_status) 상수 중 하나일 수 있습니다.

매개변수

user_id :

integer

활동을 정리하려는 사용자의 ID입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

이 함수는 비동기적으로 실행되며, clear_activity_status()를 사용하여 상태를 모니터링합니다.

완료 후 이 작업의 리소스 점유를 풀어줄 필요가 없습니다.

참고: set_activity()와 달리 이 함수는 세션 독립적입니다.

매개변수

user_id :

integer

활동 정리 작업의 상태를 가져오려는 사용자의 ID입니다.

반환하는 항목

integer

clear_activity()로 시작한 사용자 활동 정리의 상태입니다. SessionJobStatus(network.xbl.work_status) 상수 중 하나일 수 있습니다.

매개변수

user_id :

integer

관련 세션을 생성하려는 사용자의 ID입니다.

session_name :

string

세션의 이름입니다. 모두 소문자여야 합니다.

session_template_name :

string

세션 템플릿의 이름입니다. 모두 소문자여야 합니다.

create_as_host :

boolean

제공된 사용자가 세션 호스트로 설정되어야 하는 경우 true입니다.

session_keywords :

string[]?

세션의 키워드를 나타내는 문자열의 테이블입니다(선택 사항). 문자열은 비어 있으면 안 되고, 최대 63자로 구성할 수 있습니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.
? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
반환하는 항목

integer

Lua 인터페이스에서 이 세션을 참조하는 데 사용되는 세션 ID입니다.

stingray.MultiplayerSession.status()를 통해 세션 상태를 추적할 수 있습니다.

더 이상 사용되지 않습니다. create_multiplayer_session_host 및 create_multiplayer_session_client를 사용하십시오. 세션을 추적하는 데 사용되는 session_id를 반환합니다.

이 함수는 각 콘솔의 기본 사용자에 대해서만 호출할 수 있습니다. 로컬 사용자가 여러 명인 경우 stingray.Network.join_local_multiplayer_session()을 사용하여 이 사용자들을 세션에 추가해야 합니다.

세션에서 나가려면 stingray.MultiplayerSession.leave()을 사용합니다. 비동기 작업이 완료되면 stingray.Network.free_multiplayer_session()을 호출하여 세션 리소스의 점유를 풀어주어야 합니다.

매치메이킹을 통해 발견한 원격 호스트에 참여할 때에는 create_as_host를 false로 설정해야 합니다.

매개변수

user_id :

integer

관련 세션을 생성하려는 사용자의 ID입니다.

session_name :

string

세션의 이름입니다. 모두 소문자여야 합니다.

session_template_name :

string

세션 템플릿의 이름입니다. 모두 소문자여야 합니다.

xbox_user_id_member_reservation :

integer[]?

구성원 자리를 예약할 Xbox 사용자 ID의 테이블입니다(선택 사항).

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.
? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
반환하는 항목

integer

Lua 인터페이스에서 이 세션을 참조하는 데 사용되는 세션 ID입니다.

stingray.MultiplayerSession.status()를 통해 세션 상태를 추적할 수 있습니다.

세션을 추적하는 데 사용되는 session_id를 반환합니다.

이 함수는 각 콘솔의 기본 사용자에 대해서만 호출할 수 있습니다. 로컬 사용자가 여러 명인 경우 stingray.Network.join_local_multiplayer_session()을 사용하여 이 사용자들을 세션에 추가해야 합니다.

세션에서 나가려면 stingray.MultiplayerSession.leave()을 사용합니다. 비동기 작업이 완료되면 stingray.Network.free_multiplayer_session()을 호출하여 세션 리소스의 점유를 풀어주어야 합니다.

매개변수

user_id :

integer

관련 세션을 생성하려는 사용자의 ID입니다.

session_name :

string

세션의 이름입니다. 모두 소문자여야 합니다.

session_template_name :

string

세션 템플릿의 이름입니다. 모두 소문자여야 합니다.

min_number_members :

integer?

세션 내 최소 구성원 수입니다(선택 사항). 이 임계값이 충족되지 않으면 구성원이 초기화 단계를 완료하지 못합니다. 기본값은 세션 템플릿을 사용하는 0입니다.

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.

max_number_members :

integer?

세션 내 최대 구성원 수입니다(선택 사항). 기본값은 세션 템플릿을 사용하는 0입니다. 따로 지정하지 않는 경우 100이 됩니다.

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.

session_keywords :

string[]?

세션의 키워드를 나타내는 문자열의 테이블입니다(선택 사항). 문자열은 비어 있으면 안 되고, 최대 63자로 구성할 수 있습니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.
? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.

xbox_user_id_member_reservation :

integer[]?

구성원 자리를 예약할 Xbox 사용자 ID의 테이블입니다(선택 사항).

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.
? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
반환하는 항목

integer

Lua 인터페이스에서 이 세션을 참조하는 데 사용되는 세션 ID입니다.

stingray.MultiplayerSession.status()를 통해 세션 상태를 추적할 수 있습니다.

세션을 추적하는 데 사용되는 session_id를 반환합니다.

이 함수는 각 콘솔의 기본 사용자에 대해서만 호출할 수 있습니다. 로컬 사용자가 여러 명인 경우 stingray.Network.join_local_multiplayer_session()을 사용하여 이 사용자들을 세션에 추가해야 합니다.

세션에서 나가려면 stingray.MultiplayerSession.leave()을 사용합니다. 비동기 작업이 완료되면 stingray.Network.free_multiplayer_session()을 호출하여 세션 리소스의 점유를 풀어주어야 합니다.

매개변수

session_lookup_id :

integer

리소스의 점유를 풀어줄 세션 조회의 ID입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

이 결과는 stingray.Network.get_activity_details_status()stingray.SessionJobStatus.COMPLETE 또는 stingray.SessionJobStatus.FAILED를 반환하는 경우에만 리소스 점유를 풀어줄 수 있습니다.

매개변수

session_lookup_id :

integer

리소스의 점유를 풀어줄 세션 조회의 ID입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

이 결과는 stingray.Network.handle_to_description_status()stingray.SessionJobStatus.COMPLETE 또는 stingray.SessionJobStatus.FAILED를 반환하는 경우에만 리소스 점유를 풀어줄 수 있습니다.

매개변수

session_id :

integer

리소스 점유를 풀어줄 세션의 ID입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

호출 전에 stingray.MultiplayerSession.status()stingray.MultiplayerSession.SHUTDOWN을 반환하는지 확인합니다.

매개변수

user_id :

integer

활동 조회에 사용할 사용자의 ID입니다.

xuids :

string[]

활동을 가져올 사용자의 XUID입니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.
반환하는 항목

integer

Lua 인터페이스에서 이 활동 세부 정보 가져오기 작업을 참조하는 데 사용되는 ID입니다.

상태는 stingray.Network.get_activity_details_status()를 통해 모니터링할 수 있으며, 결과는 stingray.Network.get_activity_details_result()를 통해 가져올 수 있습니다.

활동 세부 정보 가져오기 작업이 완료되면 stingray.Network.free_get_activity_details()를 호출하여 리소스 점유를 풀어주어야 합니다.

매개변수

session_lookup_id :

integer

결과를 가져오려는 세션 조회의 ID입니다.

반환하는 항목

activity_details*

활동이 설정되어 있는 사용자의 활동 세부 정보입니다.

* 표기는 지정된 유형의 인스턴스가 0개 이상 있을 수 있음을 나타냅니다.

이 결과는 stingray.Network.get_activity_details_status()stingray.SessionJobStatus.COMPLETE를 반환하는 경우에만 가져올 수 있습니다.

매개변수

get_activites_id :

integer

상태를 가져오려는 활동 세부 정보 가져오기 작업의 ID입니다.

반환하는 항목

integer

stingray.Network.get_activity_details()로 시작한 활동 세부 정보 가져오기 작업의 상태를 반환합니다. SessionJobStatus(network.xbl.work_status) 상수 중 하나일 수 있습니다.

매개변수

user_id :

integer

세션 조회를 수행할 사용자의 ID입니다.

handle :

string

세션 핸들입니다. 이는 비어 있으면 안 되고, 최대 63자로 구성할 수 있습니다.

반환하는 항목

integer

Lua 인터페이스에서 이 세션 조회 작업을 참조하는 데 사용되는 세션 조회 ID입니다.

상태는 stingray.Network.handle_to_description_status()를 통해 모니터링할 수 있고, 결과는 stingray.Network.handle_to_description_result()를 통해 가져올 수 있습니다.

세션 조회가 완료되면 stingray.Network.free_handle_to_description()을 호출하여 리소스 점유를 풀어주어야 합니다.

매개변수

session_lookup_id :

integer

결과를 가져오려는 세션 조회의 ID입니다.

반환하는 항목

string

세션 이름입니다.

string

세션 템플릿 이름

이 결과는 stingray.Network.handle_to_description_status()stingray.SessionJobStatus.COMPLETE를 반환하는 경우에만 가져올 수 있습니다.

매개변수

session_lookup_id :

integer

상태를 가져오려는 세션 조회의 ID입니다.

반환하는 항목

integer

stingray.Network.handle_to_description()으로 시작한 세션 조회의 상태를 반환합니다. SessionJobStatus(network.xbl.work_status) 상수 중 하나일 수 있습니다.

매개변수

config :

string

클라이언트 설정을 위해 사용하는 .network_config 리소스의 이름입니다. 이 이름을 통해 세션 중에 사용할 수 있는 게임 오브젝트 및 RPC 메시지의 유형이 결정됩니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

이 함수를 호출하기 전에 xboxlive_client_exists()를 사용하여 Xbox Live Client가 존재하지 않는지 확인합니다.

호출 전에 settings.ini(service_config_id 키 아래) 및 AppXManifest에 일치하는 서비스 구성 ID가 있는지 확인합니다.

매개변수

user_id :

integer

관련 세션을 생성하려는 사용자의 ID입니다.

session_id :

integer

참여할 세션의 ID입니다.

min_selection :

integer

선택해야 하는 최소 인원 수입니다. 이 수는 0일 수 있습니다. 이 수가 max_selection 값보다 크면 안 됩니다.

max_selection :

integer

선택할 수 있는 최대 인원 수입니다.

custom_invite_id :

string?

사용할 사용자 정의 초대 문자열의 ID입니다(선택 사항).

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.
매개변수

user_id :

integer

관련 세션을 생성하려는 사용자의 ID입니다.

session_id :

integer

참여할 세션의 ID입니다.

friend_xuids :

string[]

지정된 세션으로 초대할 친구의 Xbox 사용자 ID 목록입니다.

[] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다.

custom_invite_id :

string?

사용할 사용자 정의 초대 문자열의 ID입니다(선택 사항).

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.
매개변수

user_id :

integer

관련 세션을 생성하려는 사용자의 ID입니다.

session_id :

integer

참여할 세션의 ID입니다.

반환하는 항목

integer

세션 ID입니다.

stingray.MultiplayerSession.status()를 통해 세션 상태를 추적할 수 있습니다.

이 함수는 세션에 추가해야 하는 로컬 사용자가 여러 명일 때 사용해야 합니다. 호출 전에 stingray.Network.create_multiplayer_session()을 통해 생성한 세션이 최초 비동기 작업을 완료했는지 확인합니다.

매개변수

user_id :

integer

활동을 설정하려는 사용자의 ID입니다.

session_id :

integer

활동을 설정할 대상 세션의 ID입니다.

반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.

이 함수는 연관된 세션에서 비동기적으로 실행됩니다. stingray.MultiplayerSession.status()를 통해 세션 상태를 추적할 수 있습니다.

참고: 이 함수는 제공된 세션에 의존적입니다. 호출 전에 stingray.MultiplayerSession.status()stingray.MultiplayerSession.READY를 반환하는지 확인하십시오.

매개변수

user_id :

integer

현재 상태를 설정하려는 사용자의 ID입니다.

presence_id :

string

설정할 현재 상태에 해당하는 문자열의 ID입니다.

is_active_in_title :

boolean?

사용자가 실제로 현재 타이틀을 사용 중인지 여부를 지정합니다. 기본값은 true입니다.

? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다.
반환하는 항목

integer

현재 상태 설정 작업의 ID입니다.

작업 진행 상황을 추적하려면 stingray.Network.set_presence_status()를 사용합니다. 완료되면 시스템이 자동으로 작업을 정리합니다.

매개변수

set_precense_job_id :

integer

상태를 가져올 현재 상태 설정 작업의 ID입니다.

반환하는 항목

integer

stingray.Network.set_presence()로 시작한 세션 조회의 상태를 반환합니다. stingray.SessionJobStatus 상수 중 하나가 됩니다.

완료 시 자동으로 stingray.SessionJobStatus.COMPLETE가 아닌 stingray.SessionJobStatus.NOT_RUNNING으로 전환되기 때문에 이 작업을 완료하고 나서는 리소스 점유를 풀어줄 필요가 없습니다.

매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목
이 함수는 아무 값도 반환하지 않습니다.
매개변수
이 함수는 어떠한 매개변수도 수용하지 않습니다.
반환하는 항목

boolean

Xbox Live Client가 존재하면 true를 반환합니다.