네트워크 환경 시뮬레이션
개요
로컬 테스트 시, 네트워크 코드를 항상 현실적인 또는 현실보다 더 나쁜 지연 및 손실 조건하에서 테스트하는 것이 좋습니다.
좋은 네트워크 게임 디자인의 복잡성 대부분은 플레이어 간 시간 차이와 모순을 얼마나 잘 숨기느냐에 달려 있습니다.
이런 테스트를 통해 실제 플레이어가 경험하게 될 상황을 미리 알 수 있습니다.
이를 위해 실제 인터넷 연결로 테스트하거나, 개발 파이프라인이 로컬 테스트를 필요로 할 경우 네트워크 환경을 시뮬레이션해야 합니다.
Fusion은 내장된 네트워크 상태 시뮬레이션 기능을 제공합니다. 단, 이 기능은 fusion.dll
의 디버그 버전 사용 시에만 활성화됩니다.
릴리스 버전 사용 시에는 Windows용 Clumsy 같은 외부 소프트웨어를 사용해야 합니다.
내장 네트워크 상태

내장된 네트워크 상태 시뮬레이션은 지연 및 손실에 대해 시간에 따라 변동하는 값을 생성하기 위해 오실레이터와 랜덤 값 생성기를 사용합니다.
(간헐적 혼잡 같은 매우 나쁜 인터넷 상태도 시뮬레이션할 수 있습니다.)
고정 값으로 테스트하고 싶다면 Min과 Max 값을 동일하게 설정하면 됩니다.
네트워크 상태 시뮬레이션 활성화
- 유니티 메뉴
Fusion > Network Project Config
로 이동합니다. Network Conditions
접기 메뉴(Foldout)를 찾습니다.- 만약
Network Conditions
가 보이지 않는다면, 현재 프로젝트는 릴리스fusion.dll
을 사용 중일 가능성이 높습니다. 이 경우,Fusion > Toggle Debug Dlls
를 선택해 디버그 버전으로 전환하세요. (주의: 유니티 에디터를 재시작해야 적용될 수 있습니다.)
- 만약
Enabled
를 켜서 네트워크 상태 시뮬레이션을 활성화합니다.
설정 항목

네트워크 조건 설정
- Enabled: 네트워크 상태 시뮬레이션을 활성화할지 여부.
- Delay Shape:
DelayMin
과DelayMax
사이를 오실레이션하는 패턴. - Delay Min: 최소 패킷 지연 시간(ms).
- Delay Max: 최대 패킷 지연 시간(ms).
- Delay Period: 지연 오실레이터가 주기적으로 변동하는 시간(초 단위).
- Delay Threshold: 오실레이터 값이 이 임곗값 이하일 경우
DelayMin
값으로 설정. - Additional Jitter: Delay 값에 추가로 랜덤 지터(0 ~ 지정값)를 추가.
- Loss Chance Shape:
LossChanceMin
과LossChanceMax
사이를 오실레이션하는 패턴. - Loss Chance Min: 최소 패킷 손실 확률 (0 = 0%, 1 = 100%).
- Loss Chance Max: 최대 패킷 손실 확률 (0 = 0%, 1 = 100%).
- Loss Chance Threshold: 오실레이터 값이 이 임곗값 이하일 경우
LossChanceMin
값으로 설정. - Loss Chance Period: 손실 오실레이터가 변동하는 주기(초 단위).
- Additional Loss: Loss 값에 추가로 랜덤 손실 확률(0 ~ 지정값)을 추가.
호스트 및 서버 모드
내장 네트워크 상태 시뮬레이션은 양쪽(서버/클라이언트) 각각에 설정값의 절반을 적용합니다.
즉, 200ms 지연을 설정하면:
- 서버는 패킷을 약 100ms 동안 보류하고,
- 클라이언트도 패킷을 약 100ms 동안 보류합니다.
결과적으로 전체 지연이 약 200ms가 됩니다.
공유 모드
공유 모드에서는 클라이언트가 항상 Photon 게임 서버에 직접 연결됩니다.
따라서 공유 모드에서는 일반적으로 별도의 시뮬레이션이 필요하지 않습니다.
하지만 더 나쁜 조건을 테스트하고자 한다면, 추가로 지연이나 손실을 설정할 수 있습니다.
단, 공유 모드에서는 클라이언트 측에만 인위적 지연과 손실이 추가되므로, 설정값의 50%만 실제로 적용됩니다.
따라서 공유 모드에서는 값을 두 배로 설정해야 기대하는 결과를 얻을 수 있습니다.
또한 공유 모드에서는 이 값들이 이미 존재하는 실제 네트워크 지연에 "추가"로 적용된다는 점을 주의하세요.
외부 소프트웨어 사용
릴리스 버전 fusion.dll
을 사용하는 경우에도,
외부 앱을 통해 네트워크 지연과 손실을 시뮬레이션할 수 있습니다.
Windows에서는 Clumsy가 가장 많이 사용되고 추천되는 툴입니다.

대부분의 경우, 필터링 문자열로 'udp and outbound'
를 사용하면 충분합니다.
자세한 설정 방법은 Clumsy 공식 문서를 참고하세요.
(주의: 포트 번호 및 네트워크 IP 주소를 알고 있어야 합니다.)