• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

3D MMORPG에서 충돌체크 구현에 대하여 궁금합니다.

20.10.28 09:29 작성 조회수 490

0

안녕하세요? Rookiss님

2D로 만드는 경우는 MAP 데이터를 COMMON폴더의 MAPDATA를 통해 서버가 게임룸속의 세상을 인지하고 처리하게 되는 걸 알게 되었습니다. ex) text파일을 읽어서 _collision[y,x]을 만들고 새로운 플레이어가 들어오면 _player[y,x] 배열에 담기..

그런데 만일 3D게임인 경우 구글검색을 해보니 cube나 box를 통해 collision을 만들어 놓은 3차원 좌표 데이터를 서버에 가지고 있게 된다고 하던데 그렇다면 큰 데이터를 실제로 어떤 방식으로 가지고 있고 구현하게 되나요? 리니지2m 예를 드시면서 설명해주셨는데 cell방식이라고.. 결국 3차원 구조체를 구현하고 데이터 역시 이런 방식이 필요한건가요?

배그같지만 디자인고 간단하지만 높이값이 있는 FPS 3D MMORPG를 만들어 보고 싶어서 드리는 질문입니다.

답변 1

답변을 작성해보세요.

1

높이값이 있는 3D 게임이라 하더라도,
린2M같은 경우라면 그냥 똑같이 셀에다가 높이 값만 넣어주면 그만입니다.
(인접한 셀은 상하좌우/대각선4)
반면 와우처럼 동굴의 개념이 들어가고,
같은 좌표라 해도 높이값에 따라 동굴 안/동굴 밖으로 구별될 경우
문제가 조금 더 복잡해집니다.

셀에도 Layer를 둬서 좌표에 따라 특정 셀 위에 있도록 구분을 하거나,
복셀(voxel 일종의 큐브)를 사용해야 하는데,
관련하여 검색해보시면 대충 원리를 알 수 있습니다.

그리고 어찌됐건 3D로 가신다면 인게임 지형과 지물에 따라
셀 좌표를 추출하는 툴을 만들긴 해야 합니다.