프로젝트 구조 분석
구성요소
역할
MultiplayerNetworkIO (actor)
네트워크 송수신, 보간 계산
GameplayManager (@MainActor)
게임 상태 관리, 점프/이동 처리
GameScene (SKScene)
물리 시뮬레이션, 렌더링
PlatformController
플랫폼 동적 생성/인덱싱
상대 디바이스로 전송하는 데이터
moveX (15Hz)
jumpTriggered (이벤트)
respawnRequested (이벤트)
전송하지 않는 데이터
절대 위치(x,y)
속도
점프 카운트
플랫폼 인덱스
문제 발생 원인
현재 시스템은 방향값과 이벤트만 전송해서 input을 복제하는 방식으로 구현되어있음
두 기기가 물리 시뮬레이션을 각자 독립적으로 수행
예시
Device A 시뮬레이션: A의 실제 물리
Device B 시뮬레이션: 수신한 moveX + jumpTriggered로 A를 나타냄
→ 오차가 누적되면 위치가 크게 달라보이게 됨