강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

엔딩님의 프로필 이미지
엔딩

작성한 질문수

mmorpg 게임 서버 플레이어와 건물간에 충돌 질문

작성

·

9

·

수정됨

0

언리얼 클라이언트 프로그래머와 포폴용 프로젝트를 만들고 있습니다.

3D MMORPG입니다.

GTA같은 TPS방식의 이동을 사용합니다. wasd로 움직이고 마우스로 화면을 돌립니다.

 

현재 이동 동기화는 구현하였으며, 이제 건물과 플레이어간의 충돌 처리를 구현하려고 합니다.

클라이언트쪽에서 이전에 충돌 라이브러리를 사용하여 충돌을 구현한 적이 있다고 합니다.

이거를 서버에 그대로 가져다가 사용할 것이냐 라는 질문에 mmorpg에서 사용하기엔 너무 무거울 것 같아서 간소화 해야할 것 같다고 답하였습니다.

 

일단 제가 구현한 충돌 방식은 건물의 바닥을 AABB로 만들고 플레이어를 원으로 해서 충돌 처리하는 것입니다.

그런데 이렇게 만들면 너무 부자연스러울 것 같아서 건물 하나를 여러 AABB로 나눠서 조금 더 정밀하게 하는 것도 생각중입니다.

제가 계속 걱정되는 부분은 mmorpg 서버에서 정말 이렇게 까지 간소화해서 충돌처리를 하는가 입니다.

서버에 정답은 없겠지만 그래도 포폴을 위한 프로젝트다 보니까 면접관님들께 최대한 연구했다는 것을 어필하고 싶습니다.

이 방식을 그대로 사용해도 충분합니까?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
엔딩님, MMORPG 게임 서버에서의 충돌 처리는 성능 최적화가 매우 중요합니다. 서버에서는 클라이언트와 달리 많은 플레이어와 객체의 충돌을 실시간으로 처리해야 하므로 복잡한 충돌 계산을 간소화하는 것이 일반적입니다.

일반적으로, 서버에서는 다음과 같은 방법으로 충돌 처리를 간소화할 수 있습니다:

  1. 간단한 충돌 모델 사용: 플레이어 캐릭터를 구(원)로, 건물을 AABB(Box)로 처리하는 것은 좋은 초기 접근 방식입니다. 캐릭터의 움직임이 주로 평면 상에서 이루어지기 때문에 이 방법은 간편하면서도 효과적입니다.

  2. 다단계 충돌 검증: 간단한 충돌 모델을 우선 적용해서 빠른 1차 검증을 하고, 더 복잡한 상황에서만 추가적인 정밀 충돌 검사를 수행하는 방법이 있습니다. 이 때, 건물을 여러 AABB로 분할해서 처리할 수 있습니다.

  3. 서버 부하 분산: 충돌 처리의 일부를 클라이언트에서 사전 계산하도록 하는 방법도 있습니다. 이를 통해 서버의 부담을 줄일 수 있습니다.

  4. 비동기 처리: 충돌 검사를 게임 루프와 독립적으로 처리하여 성능을 최적화하는 비동기적 방법도 고려해볼 수 있습니다.

마지막으로, 현재 구현하신 방식도 충분히 적절한 접근일 수 있으며, 포트폴리오를 위한 프로젝트라면 연구한 다양한 방법론과 선택한 근거를 잘 설명하는 것이 중요합니다. 면접관님들께 연구 과정에서 얻은 인사이트를 잘 전달해주시면 좋을 것입니다.

운영 및 최적화 관련 정보에 대한 더 자세한 내용을 알고 싶으시다면, 아래 링크들이 도움이 될 수 있습니다:
- 클러스터 운영 개요
- ZooKeeper 운영화 설명

이 정보를 바탕으로 프로젝트에 적용해보시길 바랍니다. 성공적인 프로젝트가 되길 기원합니다!

엔딩님의 프로필 이미지
엔딩

작성한 질문수

질문하기