안녕하세요
실시간 대전 게임 제작을 공부해보는 중에 질문드립니다
클래시 로얄을 모방해보고 있는데요(1:1 대전)
일단 유저 간 캐릭터의 위치를 동기화를 하는 방법으로 프레임 동기화 방식을 시도하고 있습니다
(프레임 수를 카운트해서 같은 프레임카운트일 때 완전히 같은 연산을 하도록 하는 방식)
일부러 유니티 내장 네트워크 동기화 기능을 쓰지 않았습니다(network transform? 등등)
그렇게 시도 중인데 유니티의 transform.position / transform.localposition 값이 float이다 보니 구동 플랫폼에 따라 계산값이 조금씩 차이가 납니다
같은 프레임에서
1.00000001 와 0.9999999 이런 식으로 달라지는 경우가 생겨서
점점 위치값이 차이가 나서 대전 결과도 달라집니다.
길찾기 알고리즘을 잘못 짰나도 생각해봤지만 NaviMesh를 적용해 봐도 nextPosition 값 자체가 다르더군요..
제가 동기화 코드를 잘못 짰나도 의심해봤지만 유니티 에디터 <->유니티 에디터 간에는 서로 움직임과 게임 결과가 동일합니다
유니티 에디터 <-> 안드로이드/아이폰 간에만 값이 달라집니다.
동기화 시 이런 부분을 어떻게 해결하시는지 조언해주실수 있을까요?