글 수 83
안녕하세요~
NPC가 캐릭터를 공격하기 위함이나 이동을 하기 위하여 장애물이 있으면 피해가야겠죠??
A star 알고리즘을 사용해서 어느 정도 만들어 뒀는데 문제가 맵이더라구요.. ^^
3D 맵툴에서 맵을 디자인할때 이런식으로 해야겠죠??
( 아래껀 서버에서 가질 맵의 정보 )
00000000000111000000000000
00000000000111000000000000
00000000000111000000000000
00000000000000000000000000
00011100000000000111100000
00001111000000001110000000
00000000000000000000000000
00000000000111000000000000
"1"은 장애물 "0"은 보통 지형.. 한셀에는 하나의 캐릭터와 npc가 들어갈수있습니다.
근데 문제점이 맵이 커진다면.. 2000 x 2000(셀)의 크기는 될듯한데요..
여기에서 라그하임에서는 셀이 아닌 200x200(블럭)을 사용해서 한 블럭안에 10x10의 셀이 존재하는거 같더군요..
여치님은 셀단위로 2000x2000과 블럭 단위로 200x200의 차이가 무엇이라구 생각을 하세요??
패킷량이 줄어드는것도 아니구요.. ;;
코룸 온라인에서는 NPC 충돌 이동 시스템과 맵정보를 어떻게 관리 하는지가 궁금하네요 ^^;;
헐.. 내용이 길어져서 죄송합니다~ ^^
오늘은 날씨가 그런데로 시원시원하군요 ㅋㅋ 즐거운 하루 보내시기 바랍니다~
NPC가 캐릭터를 공격하기 위함이나 이동을 하기 위하여 장애물이 있으면 피해가야겠죠??
A star 알고리즘을 사용해서 어느 정도 만들어 뒀는데 문제가 맵이더라구요.. ^^
3D 맵툴에서 맵을 디자인할때 이런식으로 해야겠죠??
( 아래껀 서버에서 가질 맵의 정보 )
00000000000111000000000000
00000000000111000000000000
00000000000111000000000000
00000000000000000000000000
00011100000000000111100000
00001111000000001110000000
00000000000000000000000000
00000000000111000000000000
"1"은 장애물 "0"은 보통 지형.. 한셀에는 하나의 캐릭터와 npc가 들어갈수있습니다.
근데 문제점이 맵이 커진다면.. 2000 x 2000(셀)의 크기는 될듯한데요..
여기에서 라그하임에서는 셀이 아닌 200x200(블럭)을 사용해서 한 블럭안에 10x10의 셀이 존재하는거 같더군요..
여치님은 셀단위로 2000x2000과 블럭 단위로 200x200의 차이가 무엇이라구 생각을 하세요??
패킷량이 줄어드는것도 아니구요.. ;;
코룸 온라인에서는 NPC 충돌 이동 시스템과 맵정보를 어떻게 관리 하는지가 궁금하네요 ^^;;
헐.. 내용이 길어져서 죄송합니다~ ^^
오늘은 날씨가 그런데로 시원시원하군요 ㅋㅋ 즐거운 하루 보내시기 바랍니다~
그리고 200*200이냐 2000*2000이냐는...
2000*2000이 통짜 타일이라면 검색할때나 기타 여러가지 처리를 할때 상당히 큰 리소스를 억세스해야합니다.즉 검색시간이 길어지고 한번에 사용할 메모리가 많아짐을 뜻합니다.
10*10짜리 타일이 모인 블럭을 200*200개 사용할 경우 한번에 억세스하는 양을 가변적으로 조절할 수 있죠.또한 각각의 플레이어와 NPC들끼리의 연관관계를 블럭 단위로 묶을 수 있죠.서버에선 꼭 필요합니다.링크드 리스트를 사용하든 테이블을 사용하든 어떤 단위로든 구간을 분리해서 구간별로 패킷을 뿌려줘야하니까요.
라그하임에서 어떤 이유로 그렇게 처리했는지 정확히 알수는 없지만 제 생각엔 서버에서 구간분리 처리를 위함이 가장 큰 이유일거 같군요.
도움이 되셨는지 모르겠네요.