yuchi's Development Home
글 수 201
유져가 접속해있는 에이전트 서버, 게임 컨트롤 서버, NPC 서버가 따로 존재하다보니 NPC입장에서 유져를 탐색하고 공격하고 그에 대한 판정을 하는게 쉽지는 않았다.
여기서 NPC란 대체로 몬스터를 칭하지만 그외 플레이 하지 않는 모든 캐릭터를 말한다.
하여간 대단히 복잡한 구조를 구상하고 코딩하다가, 삽질임을 깨닫고 좀 간단한 방법으로 코드를 다시 짰다. 삽질임을 빨리 깨달아서 다행이다.
일주일을 예상했지만 생각보다 빨리 끝냈다. 한 5일 정도 걸렸나.
1. 몬스터가 순찰하고 다님
2. 유져 캐릭터 발견시 추적
3. 사정거리 안으로 들어오면 공격
4. 탐색 범위 밖으로 나가면 타겟을 해제하고 다시 순찰모드로 전환
이 과정에서 NPC AI와 관련없는 다른 버그들도 많이 수정했다.
서버에서 엔진DLL을 그대로 사용하는 것이 많은 도움이 됐다. 3차원상에서 근처의 오브젝트를 검색하는건 꽤 많은 코드를 필요로 하는데 엔진에서 이미 BSP트리로 구현해놨으므로 엔진의 API만 사용하면 된다.
근거리 공격 데미지를 유져 캐릭터만큼 줬더니만, 몹한테 죽는 일이 다반사.
얘들이 총까지 쏘게 되면 몹이라고 절대 무시할 수 없을 거 같다.
여기서 NPC란 대체로 몬스터를 칭하지만 그외 플레이 하지 않는 모든 캐릭터를 말한다.
하여간 대단히 복잡한 구조를 구상하고 코딩하다가, 삽질임을 깨닫고 좀 간단한 방법으로 코드를 다시 짰다. 삽질임을 빨리 깨달아서 다행이다.
일주일을 예상했지만 생각보다 빨리 끝냈다. 한 5일 정도 걸렸나.
1. 몬스터가 순찰하고 다님
2. 유져 캐릭터 발견시 추적
3. 사정거리 안으로 들어오면 공격
4. 탐색 범위 밖으로 나가면 타겟을 해제하고 다시 순찰모드로 전환
이 과정에서 NPC AI와 관련없는 다른 버그들도 많이 수정했다.
서버에서 엔진DLL을 그대로 사용하는 것이 많은 도움이 됐다. 3차원상에서 근처의 오브젝트를 검색하는건 꽤 많은 코드를 필요로 하는데 엔진에서 이미 BSP트리로 구현해놨으므로 엔진의 API만 사용하면 된다.
근거리 공격 데미지를 유져 캐릭터만큼 줬더니만, 몹한테 죽는 일이 다반사.
얘들이 총까지 쏘게 되면 몹이라고 절대 무시할 수 없을 거 같다.