• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

3D 게임 이동 동기화

24.04.05 15:21 작성 조회수 101

0

안녕하세요 파트 3부터 9까지 전부 완강을 하고 지금은 3D MMO를 제작하고 있는데 이동 동기화에 관련해서 질문이 있어 글 남깁니다.

 

현재 제가 구상한 것이 올바른지 확신이 서지 않습니다. 흐름은 다음과 같습니다.

플레이어는 A,B가 있다고 했을 때(클라이언트)

1. A가 만약 지정한 좌표(마우스 우클릭 등의 입력으로 이동을 원하는 좌표)로 가고 싶다면 그 좌표가 이동 할 수 있는 위치인지 클라이언트에서 선 판별하고 갈 수 있다면 서버로 지정한 좌표 값을 패킷으로 보냄
2. 서버에 도착한 좌표 패킷이 이동 할 수 있는 위치인지 한번 더 판별한 뒤 정상적인 좌표라면 같은 공간에 있는 클라이언트 A,B에게 A의 이동 허가 패캣을 보냄
3. 이동 허가 패킷을 받으면 A는 본인을 B는 A객체를 Navigation mesh를 통해 길을 찾아 목적지로 이동.
4. A가 목적지에 도착하면 서버에게 도착 좌표를 건네주고 서버에서 그 값이 초기 목적지랑 같은 좌표인지 확인해서 검증함.

현재는 이렇게 구상하고 있는데 서버쪽에서 길찾기 연산을 하지 않고 클라쪽 Naviagtion Mesh에 의존해도 되는지 궁금합니다.
만약 서버쪽에서도 길찾기 연산이 필요하다면 클라에서 Navagation mesh로 bake한 값을 서버쪽에서 파싱해서 같이 연산을 해줘야할까요?

3D에서 이동 동기화(롤이나 스타처럼) 하는 부분을 어떻게 구현해야할지 감이 잘 안잡히네요.
항상 좋은 강의 감사합니다.!!

답변 2

·

답변을 작성해보세요.

0

장르마다 워낙 다르기 때문에 정답이 없습니다.
기본적으로 키보드로 움직일 경우 클라가 선이동하고 서버에서 통보하는 경우가 많으며
마우스로 움직일 경우 서버 허락을 기다렸다 클라가 이동하는 경우가 많습니다.

스타크래프트 같은 게임에선 UI 입력 그 자체를 동기화해서 각자 연산하는 방식을 사용하며
롤은 이동하려는 의사 표시를 서버에 건내고, 서버/클라 각각 이동 연산을 하지 않을까 싶네요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.05

안녕하세요, 인프런 AI 인턴입니다.

qmal789님의 질문은 3D MMO 게임 개발 시 이동 동기화 방법에 관한 것으로, 특히 서버측에서의 길찾기 연산의 필요성에 대해 고민중이신 것으로 보입니다.

이와 관련하여, “강사님, 이동 동기화에 대한 질문 있습니다.” 라는 질문에 달린 Rookiss 강사님의 답변이 많은 도움이 될 것 같습니다. 이 답변에서는 이동 동기화 방법에 대해 설명하며 클라이언트와 서버 간의 동기화 처리 방식에 대한 예시를 제공하고 있습니다.

관련 내용 중, 클라이언트에서 먼저 이동하고 서버에 통보하는 방식과, 서버 허락을 기다렸다가 이동하는 방식에 대해 비교하고 있는데, 이는 qmal789님의 흐름 설명과도 어느 정도 일치하는 부분이 있습니다. 특히, 길찾기 연산의 경량화 또는 서버와 클라이언트 간의 동기화에 대한 유용한 인사이트를 제공할 수 있습니다.

또한, “3D서버 만들 때 질문입니다.” 에서는 FPS 게임 서버 만들기와 관련하여 이동 동기화 방식에 대해 상세히 언급하고 있는데, 이는 3D MMO 게임 개발 시 이동 동기화와 관련된 다른 관점을 제시할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.