데이케이티드 서버 개발 과정
❓ 어떤 식으로 동작하나요?
📋 역할 요약
길 찾기/이동과 관련된 모든 정보를 관리합니다.
📌 길 찾기 세션의 생성
- 빌드된 NavMesh 파일(.navmesh)이 asset으로 관리되고 있으며, 서버 부팅과 함께 해당 정보들이 로드되어 매핑됩니다.
- Node.js 게임 서버에서 던전 세션이 시작되면 길 찾기 서버와 연결됩니다.
- 서버에서 해당 세션의 NavMesh를 사용하는 NavManager를 생성하고 해당 세션의 게임 루프를 시작합니다.
📌 이동의 검증
위치 이동에 대한 모든 부분이 이 서버에서 관리되고 있어서 유저가 목표하는 위치가 적합한지에 대한 추가적인 검증이 필요하지 않습니다.
📌 캐릭터의 이동 요청
- 플레이어가 이동 요청을 보내면 Node.js 게임 서버로 목표 위치를 전송하고, 이 좌표는 길 찾기 서버로 전송되어 NavMesh 위의 Agent에 전달됩니다.
- NavMesh 바깥의 위치를 클릭하더라도 지정된 범위 내 가장 가까운 NavMesh 안쪽 위치로 가는 길을 찾거나, 가까운 위치가 없다면 길 찾기를 수행하지 않습니다.
📌 길 찾기 연산
- 에이전트의 이동 목표가 변경되면 새로운 path를 연산합니다.
- 만약 고정된 위치(대상이 건물이거나 지형 좌표인 경우)로 이동하고 있다면, 재 연산을 하지 않고 이미 연산된 path를 사용합니다.
📌 위치 정보의 전달
- 길 찾기 서버의 게임 루프는 이동이 있었던 에이전트들의 위치를 Node.js 게임 서버의 던전 세션에 짧은 주기로 지속적으로 전송합니다.
- 이동이 없었던 에이전트의 정보는 전달하지 않습니다.