This document is about: FUSION 1
SWITCH TO

수정중인 페이지 입니다.

네트워크 조건 시뮬레이션

개요

로컬 테스트를 할 때는 항상 네트워킹 코드를 현실적이거나 현실적 지연 및 손실보다 더 나쁜 상태에서 테스트하는 것이 좋습니다. 좋은 네트워크 게임 설계의 복잡성의 대부분은 플레이어 간의 역설과 시간 차이가 어떻게 숨겨져 있는지에 관한 것입니다. 이를 통해 코드 베이스가 만들어낼 실제 플레이어 경험을 알 수 있습니다.

이를 위해 실제 인터넷 연결로 테스트를 실행하거나 개발 파이프라인에서 로컬로 구축 및 테스트가 필요한 경우 시뮬레이션을 수행해야 합니다.

Fusion은 네트워크 조건 시뮬레이션에 내장되어 있으며, 이 시뮬레이션은 dll 디버깅 버전의 fusion.dll을 사용할 때 사용할 수 있습니다. 릴리즈 dll을 사용할 때는 Windows 용 Clumsy 소프트웨어 등의 외부 소프트웨어를 사용해야 합니다.

내장 네트워크 조건

Network Conditions Foldout
네트워크 프로젝트 구성의 네트워크 조건 옵션.

내장 네트워크 조건은 지연(레이턴시) 및 손실용 오실레이터와 랜덤 값 생성기의 조합으로 작동합니다. 이 오실레이터는 시간에 따라 변하는 값을 사용하여 지연 및 손실을 시뮬레이션할 수 있습니다(간헐적 혼잡과 같은 매우 끔찍한 인터넷 상태의 시뮬레이션 가능). 진동보다 고정된 값을 선호하는 경우 Min 값과 Max 값을 일치하도록 설정하면 됩니다.

네트워크 조건 사용하기

  1. NetworkProjectConfig(유니티 메뉴 Fusion > Network Project Config)를 엽니다.
  2. Network Conditions라는 이름의 폴드아웃을 찾습니다.
    • 폴드아웃이 보이지 않는다면 프로젝트는 현재 release fusion.dll을 사용하고 있을 가능성이 높습니다. 이 경우 유니티 메뉴 Fusion > Toggle Debug Dlls로 이동하여 debug dll로 전환합니다. 주의: 변경 사항을 적용하려면 유니티 에디터를 다시 시작해야 할 수 있습니다.
  3. 네트워크 상태 시뮬레이션을 활성화 및 비활성화하려면 Enabled로 전환합니다.

설정

Network Conditions
인위적이 지연 및 손실에 대한 네트워크 조건 설정.

네트워크 조건

  • Enabled: 불리한 네트워크 상태가 시뮬레이션되고 있는 경우.
  • Delay Shape: DelayMinDelayMax 값 사이에서 진동하는 데 사용되는 패턴.
  • Delay Min: DelayShape 오실레이터에서 반환되는 가장 낮은 패킷 지연 값.
  • Delay Max: DelayShape 오실레이터에서 반환된 패킷 지연 값 중 가장 높은 값.
  • Delay Period: DelayShape 오실레이터의 주기(지연이 초 단위로 진동하는 속도).
  • Delay Threshold: DelayShape는 0과 1 사이에서 진동합니다. 이 임곗값 미만의 값은 0으로 감소하므로 DelayMin과 같은 값이 됩니다.
  • Additional Jitter: DelayShape 오실레이터로부터의 지연 값이 결정된 후, 0과 이 AdditionalJitter 사이의 추가 랜덤 값이 지연시간에 추가됩니다.
  • Loss Chance Shape: LossChanceMin 그리고 LossChanceMax 값 사이에서 진동하는 데 사용되는 패턴.
  • Loss Chance Min: LossChanceShape 오실레이터가 만들어낼 가장 낮은 손실 확률 값. 0 = 손실 확률 0%, 1 = 손실 확률 100%.
  • Loss Chance Max: LossChanceShape 오실레이터가 만들어낼 가장 높은 손실 확률 값. 0 = 손실 확률 0%, 1 = 손실 확률 100%.
  • Loss Chance Threshold: LossChanceShape 파형은 0과 1 사이에서 진동합니다. 이 임계값 미만의 값은 0으로 감소하므로 LossChanceMin과 동일한 값이 됩니다.
  • Loss Chance Period: LossChanceShape 오실레이터의 주기(지연이 초 단위로 진동하는 속도)입니다.
  • Additional Loss: LossChanceShape 오실레이터에 의해 Loss Chance 값이 생성된 후, 0에서 이 AdditionalLoss 사이의 추가 랜덤 값이 (정규화된) Loss Chance에 추가됩니다.

호스트 및 서버 모드

내장된 네트워크 조건은 각 피어에 표시된 값의 1/2을 생성합니다. 서버와 클라이언트 모두 이 값을 적용하여 총 지연 시간이 설정과 거의 같습니다. 즉, 200ms의 지연은 다음과 같은 결과를 가져옵니다:

  • ~100ms 동안 패킷을 보관하는 서버 그리고
  • 최대 100밀리초 동안 패킷을 보유하고 있는 클라이언트.

공유 모드

공유 모드에서 클라이언트는 항상 Photon 게임 서버를 온라인으로 연결합니다. 공유 모드에서 테스트할 때 로컬 클라이언트가 실제 온라인 플레이를 보고 있으므로 네트워크 조건을 시뮬레이션할 필요가 없습니다.

그러나 현재 연결이 제공하는 것보다 더 나쁜 조건을 시뮬레이션하기 위해 지연 시간과 손실을 추가하는 것이 여전히 바람직할 수 있습니다. 공유 모드에서는 클라이언트만 시뮬레이션된 지연 시간과 손실을 추가하므로 설정에 표시된 값의 절반(50%)만 실제로 적용됩니다. 따라서 공유 모드 테스트를 위해서는 값을 두 배로 늘려야 합니다. 또한 공유 모드에서는 이러한 값이 이미 온라인 상태에서 자연스럽게 발생하는 지연 시간에 추가됩니다.

타사 소프트웨어

fusion.dll의 릴리스 버전을 사용하는 경우에도 서드파티 앱을 사용하여 네트워크 트래픽을 지연시키고 방해함으로써 불리한 네트워크 상태를 시뮬레이션할 수 있습니다.

Windows의 경우 Clumsy는 네트워크의 불리한 상황을 시뮬레이션할 때 가장 많이 사용되고 권장되는 타사 앱입니다.

Clumsy User Interface
Clumsy 사용자 인터페이스 및 설정.

대부분의 사용 사례에는 'udp and outbound' 의 필터링 문자열이 사용되어야 하며, 자세한 내용은 Clumsy 문서를 참조하시기 바랍니다. 주의: 사용 중인 포트 및 네트워크 IP 주소를 알아야 합니다.

Back to top