inflearn logo
강의

Course

Instructor

[MMORPG Game Development Series with C++ and Unreal] Part 5: UE5 & IOCP Server Integration

Spawn #2

3D 이동 동기화

477

Park SungEun

16 asked

0

안녕하세요 강사님!

저는 강의 Part4,5 수강하고 서버 제작한 뒤에

원래 제가 만들어놨던 컨텐츠에 서버 붙이는 중인데요

 

패킷 송수신까지 잘 마무리 되었고

이동 동기화를 진행하는 도중에, 강의에서 연습했던 환경(평지)과 달리 제가 만든 컨텐츠에서는 울퉁불퉁한 지경도 있고 다양한 오브젝트들(몬스터, 건물, 나무...etx)이 있어 충돌을 고려해야 하는 상황인데요.

 

충돌이 발생하면 오차가 점점 커기는걸로 봐서 추측하건데,

한 명의 클라이언트의 움직임에 대해서 각각의 클라이언트에서 충돌처리가 일어나기때문에 오차가 점점 커진다고 판단이 되었습니다.

 

이러한 충돌로 인한 이동 동기화 오차를 줄일 수 있는 방법으로는 어떤 방법이 있을까요?

제가 생각해본걸로는.. 다음과 같은 방법이 생각났는데

  1. 클라가 먼저 이동해서 발생하는 충돌이벤트도 같이 서버에 패킷으로 보내준다. (위치정보+방향+충돌이벤트)

  2. 서버는 받은 패킷을 모든 클라에게 뿌린다.

  3. 다른 클라들은 해당 캐릭터를 기존과 같은 방식으로 이동시키되(방향으로만 전진) 충돌이벤트가 있다면 받은 위치정보로 AI 기능(?)을 활용해서 추가로 이동시킨다.

 

이러면 충돌이 발생할 때마다 AI로 움직여주고. 그럼 그 사이에 해당 캐릭터가 또 움직이면 움직임 자체에 텀이 생겨버릴것이라는 문제점이 나타나네요 ㅠㅠ..

 

이러한 이동 동기화 문제점을 어떤방식으로 해결하는지 궁금합니다!

c++ unreal-engine windows-server

Answer 1

0

Rookiss

FM대로 하려면 서버쪽에도 navigation 정보를 추출해서 들고 있어서 판정을 해줘야 합니다.
그 부분은 어렵진 않지만 엔진 코드를 좀 분석해서 들고 와야 해요 (애당초 언리얼에서도 3rd party 라이브러리 사용)

 

패킷 보내는 두가지 방법 질문

0

88

0

recv 할게 없어도 무한 while문을 도는데 괜찮은건가요?

0

69

2

MySQL 연동

0

62

2

잡큐단위 내부에서 잡큐호출

0

61

2

포트폴리오 작성 후 확장 방향에 대해 질문이 있어서 글을 남깁니다

0

100

2

에러코드

0

70

1

언리얼 버전

0

80

2

ProtoBuf UE 연동 문제

0

201

3

Snapshot base vs packet oriented

0

119

1

Is there official app or something that allow you watch lectures offline?

0

82

1

What is more capable of m2 c# server or cpp from episode 4?

0

102

2

워커스레드가 1개일 때 가장 빠를 수 있을까요?

1

198

2

이동동기화 관련 질문 드립니다. 추측항법 외.

0

279

1

이 시리즈 25년에 계획 있으실까요?

1

401

3

SubSystem이 궁금합니다.

0

522

2

웹서버

0

296

2

언리얼 에디터 Stop버튼

0

250

2

질문 있습니다...

0

208

2

클라이언트 강제 종료 시 플레이어 삭제 기능

0

224

1

라이브 강의 질문

0

177

1

52분에 나온 얘기..

0

243

1

게임 서버 몬스터 ai에 관해 궁금한게 있습니다.

0

382

1

파트4의 서버 파일이랑 다른건가요??

0

437

1

외부 네트워크에서 접속에 대한 질문이 있습니다 !

0

344

1