• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

안녕하세요 강사님

21.10.27 11:13 작성 조회수 201

0

안녕하세요 강사님 좋은 강의 잘 듣고 있습니다. 다름이 아니라 이번은 2d 던데 만약 3d 같은 게임은 서버로 구현해서 플레이어 움직임을 뿌려주는게 2d 보다 당연히 어렵겠죠? 혹시 이번 2d에 배운 것을 응용해서 3d 게임 서버도 구현 할 수 있을까요? 아니면 그 둘은 좀 많이 다른가요?

답변 7

·

답변을 작성해보세요.

2

2d 게임이나 3d 게임이나 서버 관점에선 큰 차이가 없습니다.
3d 게임에서는 x,y,z 좌표와 회전각 rotY 이렇게 float 4개만 알면 동기화를 해줄 수 있습니다.
다만 리니지2m과 같은 그리드 좌표 단위 게임인지,
와우 같이 미세하게 움직일 수 있는 게임인지에 따라 살짝 기법이 달라집니다.
간단히 요약하면 목적지를 찍어서 해당 목적지 좌표를 broadcasting 한 다음에,
클라에서 해당 Object를 목적지로 향하도록 연산을 해주면서 렌더링 해주면 됩니다.

0

info님의 프로필

info

2021.11.10

제가 part 7, 섹션 2, 서버 연동의 이동 동기화 #3까지 들었는데요

더 들어보겠습니다!!

0

info님의 프로필

info

2021.11.10

친절한 답변 감사합니다.

제가 게임을 나갔다가 다시 들어오면 기존의 접속한 플레이어의 위치가 동기화 되지않고 생성되지 않는데요.

강의에서 확인할 수 있나요?

어느 강의 부분을 말씀하시는 것일까요?
서버는 계속 켠 상태에서 클라가 나갔다 들어오면
당연히 다른 오브젝트 위치도 동기화 되어 잘 보여야 합니다.
Part7 후반부에서 처리합니다.

0

그건 아니구요.
강의에서 그리드 Cell 좌표랑 실제 유니티상의 좌표가 다르기 때문에 조정을 해준 것입니다.
(0, 1) 그리드에 캐릭터가 위치하려면 캐릭터 중앙을 0.5, 1.5에 맞춰야 자연스럽게 그려집니다.

0

info님의 프로필

info

2021.11.10

그럼 선생님은 updatemoving() 함수에

destPos = CellPos + (0.5f, 0.5f); 해주신 이유가

미리 목적지를 0.5f만큼 더해주신건가요?

 

0

그래도 가상의 목적지를 찍어서 보내면 됩니다.
(ex. 현재 속도를 고려해서 0.1초 후의 위치라거나...)

0

info님의 프로필

info

2021.11.10

모바일에서 케릭터를 조이스틱으로 이동하는 로직이라면 목적지 좌표가 없지 않나요?