Bullet을 사용하여 클라이언트 / 서버 물리 시스템을 구현하려고하는데 동기화하는 데 문제가 있습니다.
게임 오브젝트에서 변형을 읽고 쓰는 커스텀 모션 상태를 구현했으며 로컬에서 작동하지만 네트워크 게임에 대해 두 가지 다른 접근법을 시도했습니다.
- 서버에도있는 클라이언트의 동적 객체 (예 : 임의의 잔해 및 기타 중요하지 않은 물건)는 운동 학적으로 만들어집니다. 이것은 올바르게 작동하지만 개체가 매우 부드럽게 움직이지 않습니다.
- 객체는 둘 다 동적이지만 객체가 이동했다는 서버의 각 메시지 후에 선형 및 각 속도를 서버의 값으로 설정하고 서버에서 변환하여 btRigidBody :: proceedToTransform을 호출합니다. 또한 btCollisionObject :: activate (true); 개체를 강제로 업데이트합니다.
방법 2에 대한 나의 의도는 기본적으로 방법 1을 수행하지만 Bullet 1을 납치하여 방법 1을 매끄럽게하는 대신 가난한 사람의 예측을 수행하는 것이었지만 작동하지 않는 것 같습니다 (100 % 명확하지 않은 이유로) 나조차도 Bullet을 밟고) 때로는 물건이 다른 곳에서 나옵니다.
올바른 방향으로 가고 있습니까? 글 머리 기호에 자체 보간 코드가 내장되어있는 것 같습니다. 방법 1을 개선하는 데 도움이 될 수 있습니까? 또는 실수로 실수로 스톰 핑했기 때문에 내 방법 2 코드가 작동하지 않습니까?
편집 : 방금 주목 한 방법 1의 또 다른 문제는 동기화되지 않은 객체와의 충돌에 대한 충돌 응답이 중단된다는 것입니다. 키네틱 바디는 노크 할 수 없기 때문에 때때로 촬영물을 무한대로 촬영합니다.