작성
·
395
2
안녕하세요.
파트7을 다 끝내고 복습겸해서 파트4의 코드를 베이스로 삼아 간단한 3D 멀티플레이 게임을 만들어 보려고 하는데요
2D에서는 타일맵을 텍스트파일로 뽑아와서 플레이어 등이 갈 수 있는지 없는지를 0과 1의 구분으로 판단할 수 있었지만, 3D로 충돌처리를 해보려고 하니 맵을 어떻게 뽑아오고, 3D끼리는 어떻게 해야할지 모르겠습니다 ㅠ
구현해보고 싶은건
1. 플레이어를 원기둥으로 만들고 플레이어들끼리 서로 충돌해서 겹치지 못하도록 구현
2. 맵에 존재하는 건물(Box) 등 장애물 정보를 서버가 참조할 수 있도록 가지고 있게 하여 이동 패킷을 받고 해당 좌표에 갈 수 있는지 여부를 판단
일단 3D 맵은 어떻게 뽑아올 것이며, 서버 코드에서 3D 물체끼리 충돌 처리를 어떻게 해야할 것인지가 문제인데 이 부분은 어떻게 구현을 해야할지 조언 부탁드립니다 ㅠ
답변 1
1
1. 플레이어를 원기둥으로 만들고 플레이어들끼리 서로 충돌해서 겹치지 못하도록 구현
이건 엄청 힘듭니다. 3d mmo 중에서 충돌을 구현한 게임은,
유심히 보면 리니지 같이 그리드 단위로 이동하는 게임이고
자유롭게 이동하는 게임 (와우처럼..)에선 충돌을 하기가 사실상 불가능합니다.
2. 맵에 존재하는 건물(Box) 등 장애물 정보를 서버가 참조할 수 있도록 가지고 있게 하여 이동 패킷을 받고 해당 좌표에 갈 수 있는지 여부를 판단
이 부분도 까다롭고 방법이 여러가지가 있지만,
기본적으로 클라 쪽에서 툴을 하나 만들어야 합니다.
서버는 클라처럼 전체 지형 정보를 100% 면밀하게 들고 있긴 힘들겠지만,
대략적인 정보를 서버에서도 들고 있긴 해야
길찾기도 돌리고 해킹을 예방할 수 있으니
위에서 raycasting을 해서 물체에 닿는 좌표를 1유닛 단위로 적는다거나~
하는 노력이 필요합니다.