대략 Ssook Path Engine라는 이름이다..;
사실은 지형데이터이지만 Level이란 네이밍은 지형렌더링쪽에 쓰고 있고, Space란 네이밍은 실제 폴리곤용 네이밍에 쓰고 있는데다..공간 데이터도 아닌지라..;;
마땅히 쓸 네이밍이 없어서 결국 Path라는 네이밍을 썼다..;

알고리즘의 내용은 Multi Height Tile정도가 되겠다.
여러개의 높이를 가지고 있는 타일 데이터다..

김성민씨의 Space Filling Volume을 보고 나니 이럴바엔 예전 2D때 쓰던 방식을 그냥 쓰는게...으흠? 그거 괜찮겠는걸... 하고 만든 내용이다..
사실 만든 내용이라기보단 말한대로 2D때 많이 쓰던 내용이다.
( 아닌가 나만 쓴 내용인가-_-a 2D때도 어디서 보고 만든건 아니긴 했지만 )

일단 잡설은 접어두고 스샷부터 보쟈
사용자 삽입 이미지

대충 이런식이다.
보면 다리위와 아래에 높이 데이터가 있고 오브젝트가 있는부분은 높이 데이터가 없다.
그냥 타일로 나누었고, 하나의 타일은 갈 수 있다/없다가 아니라 높이 값을 가진다.
그리고 여러개의 높이 값을 가지고, 그 높이 값을 비교해서 갈 수 있다/없다 를 판단한다는 내용이다.

내용이 긴 관계로 자세한 내용을 보실분은 more를 클릭해서 보세요.


어쨋건 전에 패스엔진을 고려해서 테스트 해보았는데 위에 있는 내용처럼 높이에 대한 처리라던가 메모리라던가 하는 내용들이 감당이 안되서 만든 시스템인데..
필요하신 분들이 있을까봐 정리해서 공개해둔다.

'자료 > 내자료' 카테고리의 다른 글

mpl::is_vector  (2) 2009.02.17
SPE 길찾기용 지형구조 - V2  (1) 2007.02.22
SPE V1 - 길찾기용 지형구조  (9) 2006.12.10
게임을 위한 GUI모듈  (4) 2006.07.31
MSB/LSB template  (0) 2006.05.18
is_template  (0) 2006.05.10
  1. Favicon of http://blog.naver.com/jacking75 BlogIcon jacking 2006.12.10 12:37

    이런 좋은 것을 만드시고 계시다니 가능하면 항후에 꼭 상용으로 해서라도 공개해주세요^^. 저희 팀은 현재 pathengine을 사용하고 있는데 전 영어가 약해서 보기도 좀 힘들고 영어로 질문하기도 힘들더군요.
    그런데 현재 만들고 계신것은 서버에서도 적용하시는건지 궁금합니다.

    • Favicon of https://www.larosel.com BlogIcon 쑥갓 2006.12.10 16:14 신고

      네 이 내용은 풍류공작소 2차클베때 서버에 적용되어서 몬스터등의 길찾기에 사용되고 있습니다.
      3차때 낙백등이 들어갔는데.. 몬스터가 낙백되는걸 보면 건물이 있으면 건물을 뚫지 않고 건물앞까지 날아간다던가.. 하는 충돌이 적용되었습니다.
      그리고 위에 알고리즘은 다 설명했고.. 내용이 bsp커팅해서 높이 뽑는거 밖에 없어서 아마 엔진프로그래머분한테 내용 보여주시면 쉽게 만드실수 있을겁니다.

  2. Favicon of http://serious-code.net BlogIcon 김성민 2006.12.10 16:05

    ㅎㅎ. 결국 같은 결론에 도달했네 그려. NavVolume은 외부 지형에서는 못 써먹겠더라구.

    • Favicon of https://www.larosel.com BlogIcon 쑥갓 2006.12.11 00:00 신고

      처음에 그거 보고 만들려다가 계산해보니까 메모리나 속도가 감당안되서 이거 만들었지 ㅋ

  3. Favicon of http://labik.tistory.com BlogIcon labik 2006.12.12 03:10

    지금 까지 MMORPG의 3D 지형의 서버 표현 방식은(Wow같은 넓은 맵에서, 3D를 지원) Navigation Mesh를 사용해서 시뮬레이트해야 할 것으로 생각하고 있었습니다. (이전 프로젝트에서 이런 방식으로 진행할 예정이었는데, 초기 프로토 이후, 프로젝트가 접혀서 시도를 못했었습니다.)

    여러 다른 생각이 있네요.

    쑥갓재배기 님 방식은 고전적인(?) 2D Cell방식에 변형을 하여 서버 지형을 구현한다는 것이라고 생각이 되는데, 램값은 부담이 안되니까 4000*4000 짜리 맵하나가 100M가 정도면 되고, 그러면,1G 메모리 하나에 이런 맵 10개를 올릴 수 있다는 건데, (그나저나 엄청나게 큰 맵이네요, 옛날, 옛날 제가 참여했던 A3라는 프로젝트에서는 256*256 짜리 맵들을 사용했었습니다. 대략 256배의 차이가...그 때 사용했던 방식이 2D Cell 방식이고, A*로 몬스터 AI 돌렸었습니다. 서버 당 한 2000 ~ 3000마리 정도 몬스터 돌렸던 걸로 기억합니다만...)

    흠, 그나저나 왜 Navigation Mesh는 안쓰는 거죠? (그 후로 캐쥬얼 게임을 하다보니, 아직 이쪽에 개념이 없습니다.^^) 자료 조사도 따로 깊게 안해보고 질문을 드려서 죄송합니다.

    • Favicon of https://www.larosel.com BlogIcon 쑥갓 2006.12.12 10:23 신고

      일단 NavMesh는 구성이 쉽지 않습니다-.-;;
      지형과 지형오브젝트도 포함해서 NavMesh를 뽑는것도 어렵고 보통은 디자이너가 따로 만들어주지 않으면 데이터를 뽑기가 상당히 어렵습니다.
      게다가 높이차에 대한 구현을 할때 NavMesh는 구조상 연결되있는 노드들만 가지고 있기 때문에 다리위에서 뛰어내리려면 별도로 연결을 시켜주거나 해야 하는데 구조상 쉽지 않습니다.
      그리고 젤 큰이유는 역시 메모리 문제가 되겠네요.

  4. Favicon of http://acrobat.egloos.com BlogIcon 승후 2006.12.12 12:23

    너 참 대단한거 같긴 하다...
    뭔소린지 ㅋㅋㅋㅋ 사실 읽어보지도 않았어~~~

    • Favicon of https://www.larosel.com BlogIcon 쑥갓 2006.12.12 13:43 신고

      너하는거 줄줄 써놔도 내가 못알아보긴 마찬가지쟈나-ㅅ-

  5. Favicon of http://labik.tistory.com BlogIcon labik 2006.12.20 14:29

    답변, 감사합니다. 많은 도움이 되었습니다. 건승하세요~~

+ Recent posts