2014-07-01 1 views
3

멀티 플레이 풀 게임을 만들고 있지만 충돌 점, 충돌 력과 같은 물리 동기화 문제가 있습니다. 두 명의 클라이언트가 방에 연결되면 모든 공 데이터를 보내는 대신 소켓을 통해 데이터를 교환합니다. 나는 흰 공을 치는 힘 벡터와 같은 입력을 보낸다. 같은 행동 ie.force에 대해 이론적으로는 게임에서 동일한 반응이나 효과가 발생해야하지만 게임에서는 일어나지 않습니다.풀 멀티 플레이어에서 물리 동기화

& 방에 연결된 하나의 클라이언트 게임에 알려진 힘을 적용하여 같은 방에 연결된 다른 클라이언트 게임으로 강제 전송하지만 충돌로 인한 볼의 위치/위치가 다릅니다.

왜 이러한 일이 발생하는지 이해할 수 없습니까? 화합 엔진이 다른 장치 또는 플랫폼에서 약간 다르게 동작합니까?

어떻게하면됩니까?

+4

을 이 질문은 http://gamedev.stackexchange.com/에 속해 있습니다. – ninesided

답변

1

Unity 물리학이 비 결정적입니다. 또한 새로운 위치, 속도, 회전 등을 전송하는 대신 두 장치에서 물리 시뮬레이션을 실행하면 지연 및 장치 차이, 특히 부동 소수점 계산 부정확으로 인한 불일치가 발생할 수 있습니다.

은 참조 :

http://forum.unity3d.com/threads/is-unity-physics-deterministic.152825/

이 하나가 시뮬레이션 장치의 차이에 대한 예제를 제공합니다 : http://answers.unity3d.com/questions/46724/deterministic-physics-same-platform.html

그리고 여기 당신이 의견의 해결 방법에 대한 설명을 얻을 : http://answers.unity3d.com/questions/475402/is-physicsraycast-deterministic.html