버그 해결을 위한 모든 질문을 던져
0 votes
367 views
여러가지 책이랑 자료를 찾아서 서버 되감기, 데드 레커닝등등 보고 있는데...직접 구현 해 보면 부드러운 화면이

나오지 않습니다. 혹시 자기 자신은 서버에서 받은 위치 값으로 동기화를 안 해주는게 맞는건가요?

서버에서 받은 데이터는 무조건 예전 위치 값이고 현재 미리 움직여 놓은 위치가 최신 위치 값인데 오히려 그냥

서버에서 자신의 데이터는 무시하는게 맞는거 같은데...중간 중간 내가 제대로 된 위치인지 검사를

따로 해줘야 하는건가요? 무슨 문제로 서버와 현재 클라 위치가 다르다면 무시하게 되면 영영

다른지 같은지 알 방법이 없지 않나요? 잘못 접근 하고 있는건가요?

좀 괜찮은 위치 동기화 설명이나 소스(GitHub 주소) 있으시면 알려 주세요...ㅠㅠ
asked (2 point) , 367 views
초당 50 프레임으로 동기화 해보세요. 잘 될지도 ^^;;

아래 책 추천드립니다. 질문하신 부분에 대한 많은 내용들이 나와있습니다.
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=107574498

2 answers

+1 vote
클라도 서버를 믿지 않습니다.

플레이 체감이 중요하기 때문에 클라는 자신의 위치를 계속 서버로 보내고 먼저 움직이고,

많은 차이가 발생할 때 되돌립니다.  적당한 지점을 찾는 것이 어렵죠.
answered (84 point)
정정합니다.  믿지 않는다기 보다는.. 뭐... 선조치후보고 해야합니다.
0 votes
자기 자신의 위치는 클라에서 그냥 계산해서 정하고, 서버에 일방적으로 알려주는 방식으로 구현하는 게임도 많습니다. 서버에서는 검증만 하고요. 물리적으로 있을 수 없는 속도로 움직였다던가, 벽을 뚫고 지나갔다고 판단되면 해킹으로 간주해서 킥을 한다던지...

서버에서도 (물리) 계산을 하는 경우라면, 로컬의 자기 자신의 캐릭터는 일단 움직이고 서버로 부터 온 값과 비교해서 차이가 난다면 지속적으로 보정해 주는 방법도 있습니다. 다만 이런 방법을 쓸 경우엔 보간 시간은 적당히 줘서 로컬에서 튀지 않게 조정할 필요가 있습니다.
answered (331 point)
수정됨

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

132 질문
224 answers
258 댓글
247 users