GameSession 오브젝트는 네트워크 게임 세션에 참가하고 있는 피어 간에 게임 오브젝트를 복제하여 동기화해줍니다.
Network.create_game_session()을 호출하여 새 게임 세션을 가져옵니다.
GameSession에게 게임 오브젝트는 ID로 식별되는 필드(키 및 값) 테이블일 뿐입니다. 게임 오브젝트를 생성하면 사용자가 소유자가 되고, 오브젝트를 조작하는 데 사용할 수 있는 ID를 받게 됩니다. 소유자가 되면 오브젝트 필드의 값을 변경할 수 있습니다. 변경 사항은 다른 모든 피어에게 복제됩니다. 오브젝트를 삭제하면 삭제했다는 사실 역시 복제됩니다.
게임 오브젝트는 그 유형이 다양할 수 있습니다. 각 유형마다 .network_config 데이터 파일에서 정의하는 자체 키 및 값 세트가 있습니다.
대개, 게임 오브젝트는 유닛, 물리적 몸체 등 게임 표준 내의 무언가를 나타내지만 GameSession 레이어는 이를 신경 쓰지 않습니다. 네트워크 게임 오브젝트와 실제 표준 엔티티 간에 데이터를 상호 이동하는 것은 사용자의 책임입니다. GameSession은 게임 오브젝트 내 필드의 상태 변경 사항을 다른 피어들에게 알려줄 책임만 있습니다.
게임 오브젝트의 소유권은 세션 내 피어 간에 이전할 수 있습니다. 소유권 이전은 네트워크 부하 분산을 설정하거나 플레이 환경의 충실도를 개선하는 목적으로 활용할 수 있습니다. 오브젝트의 소유자는 오브젝트와의 상호 작용 시 랙 또는 동기화 문제를 걱정할 필요가 없습니다.
원격 노드에서 게임 오브젝트를 생성, 삭제 또는 마이그레이션하면 Network.update()에 제공한 콜백 오브젝트에 대한 콜백으로 알림을 받게 됩니다. 자세한 내용은 Network.update() 설명을 참조하십시오.
개발 빌드에서는 Network.create_replay_session() 함수를 호출하고, 해당 함수에 이전 게임 세션 중에 생성된 네트워크 로그 파일을 전달하여 네트워크 게임 세션을 리플레이할 수 있습니다. 리플레이 세션에서는 GameSession 오브젝트가 원래 게임 세션에서와 똑같이 기능합니다. 즉, 연결된 클라이언트에 의해 실행된 것처럼 로그 파일에 저장되어 있는 모든 네트워크 이벤트에 응답합니다. 그리고 사용자는 동일한 함수를 호출하여 해당 게임 세션을 제어할 수 있습니다. 또한, 네트워크 이벤트는 모두 기록되기 때문에 원격 피어가 실행한 작업을 정확히 같은 순서대로 테스트 및 재테스트할 수 있습니다. 이는 네트워크 게임에서 문제를 진단하는 데 도움이 됩니다.
일반 게임 세션과 리플레이 세션의 가장 큰 차이는 일반 게임 세션에서는 네트워크 콜백 오브젝트가 사용자의 자체 변경 사항을 인식할 수 없지만 리플레이 세션에서는 네트워크 콜백 오브젝트가 어느 피어가 해당 작업을 시작했는지는 상관없이 모든 게임 오브젝트 변경 사항에 대해 콜백 알림을 받게 된다는 점입니다.
또한, 리플레이 세션에는 피어에 대한 동기화 상태가 존재하지 않는데, 이는 리플레이 세션에서는 자신을 관찰만 할 뿐 전송은 하지 않기 때문입니다.
이 기능은 실험적인 기능입니다.
리플레이 세션을 생성하는 방법:
network = { log = "%APPDATA%\\Company\\Project\\network_dumps\\network-%DATE%-%TIME%-%RANDOM%.ndp" }
일반 네트워크 게임 세션을 플레이하여 로그를 생성합니다.
세션을 닫은 후에 Network.create_replay_session(log_filename)을 호출하여 네트워크 로그 파일에 기록된 이벤트를 기준으로 하는 리플레이 세션을 생성합니다.
보통 매 프레임마다 Network.update()를 호출하면서 리플레이 세션을 플레이합니다.
모두 마치면 Network.shutdown_game_session() 대신 Network.shutdown_replay_session()을 호출하여 리플레이 세션을 닫습니다.
생성자 및 액세서
![]() | stingray.Network.create_game_session() stingray.Network.create_replay_session() stingray.Network.game_session() |
기타 관련 참조 항목
![]() | stingray.Network |
![]() | stingray.Network.create_replay_session() stingray.Network.shutdown_game_session() |
![]() | Networking |
게임 세션 호스트가 호출할 수 있는 함수들입니다.
![]() |
add_peer ( self, peer_id )![]() 지정된 피어 ID의 피어를 세션에 추가합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
peer_id : | string | 세션에 추가하려는 피어의 ID입니다. |
이 함수는 아무 값도 반환하지 않습니다. |
세션 호스트만 피어를 추가할 수 있습니다.
기타 관련 참조 항목
![]() |
make_game_session_host ( self )![]() 이 게임 인스턴스를 게임 세션에 대한 세션 호스트로 만듭니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
이 함수는 아무 값도 반환하지 않습니다. |
이 함수는 막 생성하여 아직 다른 피어가 포함되지 않은 세션에 대해서만 호출할 수 있습니다. 세션 호스트만 세션에 피어를 추가하거나 세션에서 피어를 제거할 수 있습니다.
이 함수를 호출하면 세션에 자동으로 참여하게 됩니다.
![]() |
remove_peer ( self, peer_id, callback_object )![]() 지정된 ID의 피어를 세션에서 제거합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
peer_id : | string | 세션에서 제거하려는 피어의 ID입니다. |
callback_object : | table | 피어가 제거되면 제거된 피어가 소유하고 있던 각 게임 오브젝트에 대한 콜백 함수를 통해 알림을 받게 되는 오브젝트가 삭제됩니다. |
이 함수는 아무 값도 반환하지 않습니다. |
세션 호스트만 피어를 제거할 수 있습니다.
피어를 제거하면 해당 피어가 소유했던 게임 오브젝트가 삭제될 수도 있습니다. 삭제된 각 게임 오브젝트의 경우 이 함수로 전달하는 콜백 오브젝트에 대해 다음 함수가 호출됩니다.
id로 식별된 게임 오브젝트가 피어 destroyer_id에 의해 삭제되었음을 알려줍니다.
이 함수는 Network.update()를 통해 호출할 수 있는 game_object_destroyed() 콜백 함수와 동일하기 때문에 GameSession.remove_peer() 호출 시 Network.update() 함수에 제공하는 동일한 콜백 오브젝트를 사용할 수도 있습니다.
![]() |
shutdown_game_session_host ( self )![]() 게임 세션 호스트가 세션을 종료하고, 피어에게 알리기 위해 호출합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
이 함수는 아무 값도 반환하지 않습니다. |
호스트에 대한 변경 사항을 수반하는 함수들입니다.
![]() |
disconnect_from_host ( self )![]() 통신 오류가 발생하는 경우 세션 호스트로부터 이 피어의 연결을 끊습니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
이 함수는 아무 값도 반환하지 않습니다. |
호스트에게 피어가 세션에서 나간다는 것을 알려주는 leave()와 달리 이 호출의 경우 호스트에게 알리지 않고 세션에서 나가게 됩니다. 이 함수는 호스트 오류가 있는 경우 호출되도록 고안된 것이기 때문에 피어가 나간다는 것을 호스트에게 알려줄 이유는 없습니다.
leave()와 마찬가지로 disconnect_from_host() 호출도 연결을 끊어달라는 요청입니다. 연결 해제는 즉시 이루어지지 않고, 다음 네트워크 업데이트 중에 이루어집니다.
기타 관련 참조 항목
![]() |
host_error ( self ) : boolean![]() 게임 세션 호스트와 통신하는 중에 오류가 발생했는지 여부를 나타냅니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
boolean |
세션 호스트와 통신하는 중 오류가 발생한 경우 true를, 그렇지 않으면 false를 반환합니다. |
disconnect_from_host()를 호출하여 게임 세션을 종료하거나, 피어 중 하나에 대해 migrate_game_session_host()를 호출하여 해당 피어가 호스트 역할을 맡도록 하여 오류를 처리해야 합니다.
기타 관련 참조 항목
![]() |
migrate_game_session_host ( self )![]() 이 함수를 호출한 피어가 지정된 게임 세션의 호스트 역할을 인계받도록 합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
이 함수는 아무 값도 반환하지 않습니다. |
현재 호스트와의 통신이 끊긴 경우, 즉 host_error()가 true를 반환하는 경우에만 이 함수를 호출할 수 있습니다.
여러 피어가 참여한 세션의 경우 세션에 호스트가 여럿일 수는 없으므로 한 피어만 migrate_game_session_host()를 호출해야 합니다. 이 문제를 해결하는 좋은 방법은 모든 피어가 Network.peer_id()를 통해 액세스할 수 있는 자신의 피어 ID를 GameSession.peers()를 통해 액세스할 수 있는 세션 내 모든 피어의 목록과 비교해 보도록 하는 것입니다. 그런 다음, 피어 ID가 가장 아래에 있는 피어가 migrate_game_session_host()를 호출해 호스트 역할을 맡아야 합니다.
기타 관련 참조 항목
게임 오브젝트 생성 및 관리가 수반되는 함수들입니다.
![]() |
create_game_object ( self, type, fields ) : integer![]() 지정된 유형의 새 게임 오브젝트를 생성합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
type : | string | 생성할 게임 오브젝트 유형(.network_config 데이터 파일에서 구성)입니다. |
fields : | table | 새 오브젝트의 데이터 필드에 대한 시작 값을 포함하고 있는 테이블입니다. |
integer |
새로 생성된 게임 오브젝트의 고유 ID입니다. |
fields 테이블은 게임 오브젝트가 유지 관리하는 데이터 필드의 시작 값을 제공합니다. 이 테이블에서 설정할 수 있는 구성원들은 .network_config 데이터 파일에서 이 게임 오브젝트 유형에 대해 구성한 필드에 따라 정해집니다. 예를 들면 다음과 같습니다.
myGameObject = stingray.GameSession.create_game_object(mySession, "enemy", { position = Vector3(0,0,0), hitpoints = 50 } )
![]() |
destroy_game_object ( self, object_id )![]() 지정된 게임 오브젝트를 삭제합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
object_id : | integer | 삭제할 게임 오브젝트 ID입니다. |
이 함수는 아무 값도 반환하지 않습니다. |
이 함수는 게임 오브젝트를 소유한 피어만 호출할 수 있습니다.
![]() |
game_object_exists ( self, object_id ) : boolean![]() 지정된 ID의 게임 오브젝트가 존재하는지 여부를 나타냅니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
object_id : | integer | 테스트할 게임 오브젝트 ID입니다. |
boolean |
지정된 ID의 게임 오브젝트가 세션에 존재하면 true를, 그렇지 않으면 false를 반환합니다. |
![]() |
game_object_field ( self, object_id, field ) : any![]() 지정된 게임 오브젝트가 지정된 데이터 필드에서 유지 관리하는 데이터를 반환합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
object_id : | integer | 값을 검색할 게임 오브젝트의 ID입니다. |
field : | string | 값을 검색하려는 필드의 이름입니다. |
any |
게임 오브젝트의 지정된 필드에 현재 저장되어 있는 값입니다. 이 값의 유형은 .network_config 데이터 파일에서 해당 필드에 대해 구성되어 있는 데이터 유형에 따라 정해집니다. |
![]() |
game_object_is_type ( self, object_id, object_type ) : boolean![]() 지정된 게임 오브젝트가 지정된 게임 오브젝트 유형의 인스턴스인지 여부를 나타냅니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
object_id : | integer | 테스트할 게임 오브젝트 ID입니다. |
object_type : | string | .network_config 데이터 파일에 설정되어 있는, 게임 오브젝트의 유형입니다. |
boolean |
게임 오브젝트가 지정된 유형의 인스턴스이면 true를, 그렇지 않으면 false를 반환합니다. |
해당 유형은 해시 값을 사용하여 내부적으로 저장되기 때문에 비교는 오브젝트 유형에 직접 액세스하는 것이 아니라 내부적으로 이루어집니다.
![]() |
game_object_owned ( self, object_id ) : boolean![]() 이 함수를 호출하는 피어가 지정된 게임 오브젝트의 소유자인지 여부를 나타냅니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
object_id : | integer | 테스트할 게임 오브젝트 ID입니다. |
boolean |
이 피어가 게임 오브젝트의 소유자라면 true를, 그렇지 않으면 false를 반환합니다. |
![]() |
game_object_owner ( self, object_id ) : string![]() 지정된 게임 오브젝트를 소유한 피어를 검색합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
object_id : | integer | 테스트할 게임 오브젝트 ID입니다. |
string |
해당 게임 오브젝트를 소유한 피어의 피어 ID입니다. |
![]() |
migrate_game_object ( self, object_id, new_peer_id, callback_object )![]() 지정된 게임 오브젝트의 소유권을 지정된 피어로 변경합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
object_id : | integer | 새 소유자에게 마이그레이션할 게임 오브젝트의 ID입니다. |
new_peer_id : | string | 새 소유자의 피어 ID입니다. |
callback_object : | table | 사용자가 게임 오브젝트의 현재 소유자이거나 새 소유자인 경우 게임 오브젝트를 마이그레이션할 때 콜백 함수를 통해 알림을 받을 오브젝트입니다. |
이 함수는 아무 값도 반환하지 않습니다. |
이 함수는 게임 세션 호스트만 호출할 수 있습니다.
사용자가 게임 오브젝트의 현재 소유자이거나 새 소유자인 경우 이 함수에 제공하는 콜백 오브젝트는 다음 콜백 중 하나를 호출하여 즉시 알림을 받습니다.
이제 id로 식별되는 게임 오브젝트의 소유자가 되었음을 알려줍니다. old_owner_id 매개변수는 이전에 이 게임 오브젝트를 소유했던 피어를 식별합니다.
더 이상 id로 식별되는 게임 오브젝트의 소유자가 아님을 알려줍니다. new_owner_id 매개변수는 이제 이 게임 오브젝트를 소유하는 피어를 식별합니다.
어느 경우에서든 이전 소유자와 새 소유자에게 다음 Network.update() 호출 중 마이그레이션 알림이 보내집니다.
![]() |
objects_owned_by ( self, peer_id ) : integer[]![]() 지정된 피어가 소유하는 모든 게임 오브젝트의 목록을 검색합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
peer_id : | string | 피어의 피어 ID입니다. |
integer[] |
해당 피어가 소유한 모든 게임 오브젝트의 ID가 포함되어 있는 테이블입니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. |
![]() |
set_game_object_field ( self, object_id, field, value )![]() 지정된 게임 오브젝트의 지정된 데이터 필드에 지정된 값을 저장합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
object_id : | integer | 값을 설정할 게임 오브젝트의 ID입니다. |
field : | string | 값을 설정하려는 필드의 이름입니다. |
value : | any | 게임 오브젝트의 지정된 필드에 저장할 값입니다. 이 값의 유형은 .network_config 데이터 파일에서 해당 필드에 대해 구성되어 있는 데이터 유형에 따라 정해집니다. |
이 함수는 아무 값도 반환하지 않습니다. |
이 함수는 게임 오브젝트를 소유한 피어만 호출할 수 있습니다.
![]() |
set_game_object_priority ( self, object_id, peer_id, priority )![]() 지정된 피어에 대한 지정된 게임 오브젝트의 우선 순위를 설정합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
object_id : | integer | 우선 순위를 설정할 게임 오브젝트의 ID입니다. |
peer_id : | string | 피어의 피어 ID입니다. |
priority : | number | 게임 오브젝트에 대해 설정된 새 우선 순위입니다. |
이 함수는 아무 값도 반환하지 않습니다. |
이 함수를 사용하려면 네트워크 시스템에 대해 QoS(서비스 품질) 시스템이 활성화되어야 합니다. Network.enable_qos()를 참조하십시오.
![]() |
unit_synchronizer ( self ) : stingray.UnitSynchronizer![]() 지정된 세션에 대한 유닛 싱크로나이저를 검색합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
이 세션에 대한 UnitSynchronizer(있는 경우)입니다. |
이 오브젝트를 사용하여 오브젝트 생성, 이동 및 제거의 동기화를 지원할 수 있습니다. 자세한 내용은 UnitSynchronizer 설명을 참조하십시오.
세션 내 다른 피어를 검색하는 함수들입니다.
![]() |
other_peers ( self ) : string[]![]() 세션에 연결되어 있는 모든 피어의 ID 목록을 검색합니다. 단, 이 함수를 호출하는 피어는 포함되지 않습니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
string[] |
이 세션 내 다른 모든 피어의 ID를 포함하고 있는 테이블입니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. |
![]() |
peers ( self ) : string[]![]() 세션에 연결되어 있는 모든 피어의 ID 목록을 검색합니다. 이 함수를 호출하는 피어도 포함됩니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
string[] |
이 세션 내 모든 피어의 ID를 포함하고 있는 테이블입니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. |
기타 관련 참조 항목
![]() |
synchronized_peers ( self ) : string[]![]() 게임 오브젝트의 최초 동기화를 완료한 모든 피어의 목록을 검색합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
string[] |
동기화된 모든 피어의 ID를 포함하고 있는 테이블입니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. |
![]() |
synchronizing_peers ( self ) : string[]![]() 최초 게임 오브젝트 동기화를 아직 진행 중인 모든 피어의 목록을 검색합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
string[] |
최초 게임 오브젝트 동기화를 진행 중인 피어의 ID를 포함하고 있는 테이블입니다. [] 표기는 이 유형이 어레이임을 나타냅니다. 어레이는 구성원의 키가 순차적인 정수이며, 각 요소의 값이 표시된 유형의 인스턴스인 테이블입니다. |
각 피어가 최초 동기회를 완료하면 다른 모든 피어는 Network.update()에 제공된 콜백 오브젝트를 통해 콜백을 받게 됩니다.
리플레이 세션에서는 동기화가 이루어지지 않기 때문에 이 함수가 항상 빈 목록을 반환합니다. 리플레이 세션에 대한 자세한 내용은 GameSession 설명을 참조하십시오.
게임 세션에 참여하고, 세션에서 나가기 위한 함수들입니다.
![]() |
broken_connection ( self ) : string?![]() 게임 세션 내 다른 피어와의 연결이 끊어졌는지 탐지합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
string? |
연결이 끊어진 피어(있는 경우)의 ID를 반환하거나, 끊어진 연결이 없으면 nil을 반환합니다. ? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다. |
세션 호스트만 호출할 수 있습니다. 한 피어와의 연결이 끊어진 경우 이 함수가 해당 피어의 ID를 반환합니다. 세션 호스트는 이에 응답해 해당 피어의 오브젝트를 삭제하거나 마이그레이션한 다음 해당 피어를 세션에서 제거해야 합니다.
모든 연결이 정상이면 함수가 nil을 반환합니다.
끊어진 연결이 둘 이상인 경우 이를 모두 찾아내려면 이 함수를 반복적으로 호출해야 합니다.
리플레이 세션에서는 끊어진 연결 상태가 네트워크 로그에 기록되지 않기 때문에 이 함수가 항상 nil을 반환합니다. 리플레이 세션에 대한 자세한 내용은 GameSession 설명을 참조하십시오.
![]() |
game_session_host ( self ) : string![]() 현재 게임 세션의 호스트 역할을 하고 있는 피어의 ID를 검색합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
string |
세션 호스트의 피어 ID입니다. |
![]() |
in_session ( self ) : boolean![]() 이 피어가 현재 지정된 게임 세션에 연결되어 있는지 여부를 나타냅니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
boolean |
이 함수를 호출한 피어가 세션에 연결되어 있으면 true를, 그렇지 않으면 false를 반환합니다. |
이 함수가 false를 반환하는 경우 연결 상태가 불량하거나 세션 호스트가 추방했기 때문에 사용자가 세션에서 제거된 것입니다. 어느 경우든 세션을 종료해야 합니다.
리플레이 세션에서는 항상 세션이 존재하기 때문에 이 함수가 항상 true를 반환합니다. 리플레이 세션에 대한 자세한 내용은 GameSession 설명을 참조하십시오.
기타 관련 참조 항목
![]() |
leave ( self )![]() 한 피어가 세션 호스트에게 세션에서 나가고 싶다는 것을 알리기 위해 호출합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
이 함수는 아무 값도 반환하지 않습니다. |
이 함수를 호출하고 나면 세션을 종료하기 전에 in_session()이 false를 반환할 때까지 대기해야 합니다. 이렇게 해야 다른 모든 피어에게 사용자가 세션에서 나갔다는 알림이 전달됩니다.
기타 관련 참조 항목
![]() |
wants_to_leave ( self ) : string?![]() 세션에서 나가겠다는 요청을 한 게임 세션 내 피어를 탐지합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. |
string? |
세션에서 나가겠다는 요청을 한 피어의 ID, 또는 nil을 반환합니다. ? 표기는 이 유형이 선택 사항임을 나타냅니다. 해당 인스턴스가 0개 또는 한 개일 수 있습니다. |
세션 호스트만 호출할 수 있습니다. 세션 호스트는 이에 응답해 해당 피어의 오브젝트를 삭제하거나 마이그레이션한 다음 해당 피어를 세션에서 제거해야 합니다.
나가려는 피어가 없는 경우 이 함수는 nil을 반환합니다.
나가려는 피어가 둘 이상인 경우 이를 모두 찾아내려면 이 함수를 반복적으로 호출해야 합니다.
리플레이 세션에서는 나가기 요청이 네트워크 로그에 기록되지 않기 때문에 이 함수가 항상 nil을 반환합니다. 리플레이 세션에 대한 자세한 내용은 GameSession 설명을 참조하십시오.
게임 오브젝트 생성 및 관리가 수반되는 함수들입니다.
![]() |
set_interpolation_lag_compensation ( self, time )![]() 게임 오브젝트에 대한 업데이트가 자주 일어나지 않는 경우 게임 오브젝트가 부드럽게 보이도록 얼마나 자주 보간을 진행할지 설정합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
time : | number | 보간 보정 임계값(초)입니다. |
이 함수는 아무 값도 반환하지 않습니다. |
값이 높을수록 업데이트 누락에 대한 관용도가 높지만 게임 오브젝트 소유자의 관점에서는 상대적으로 업데이트가 더 오래 지연되는 것으로 여겨질 수 있습니다.
기본값은 0.015입니다.
![]() |
set_perfhud_pie_update_interval ( self, time )![]() 네트워크 성능 HUD의 업로드 파이와 다운로드 파이의 업데이트 간격을 설정합니다.
|
self : | 이 함수가 작동하는 오브젝트 인스턴스를 지정합니다. 콜론 : 호출 구문을 사용하여 이 오브젝트의 인스턴스에 대해 이 함수를 호출할 수도 있습니다. 그렇게 하는 경우에는 이 매개변수를 생략해야 합니다. 자세한 내용은 이 Stingray 도움말 항목 또는 Lua 설명서의 이 페이지를 참조하십시오. | |
time : | number | 새로운 업데이트 간격(초)입니다. |
이 함수는 아무 값도 반환하지 않습니다. |
짧은 간격은 스파이크 현상을 보이지만 빠르게 변화합니다.
기본값은 1입니다.