혹시 궁금해 하시는 분이 계실까봐 스샷 몇장올립니다.
자세한 내용은 일단 http://www.larosel.com/209 를 참고하세요..;

사용자 삽입 이미지

대략 이런 형태가 나왔습니다.

사용자 삽입 이미지
원래는 이런 형태죠;;

사용자 삽입 이미지
와이어 프레임은 이런 느낌입니다.

사용자 삽입 이미지
걸을수 있는 바닥면에 대한 데이터도 여전히 있습니다.

사용자 삽입 이미지
마을전경은 대략 이런느낌;;

점점 김성민씨의 Space Filling Volume와 모냥이 비슷해집니다..;;

일단은 버전2로 올라오면서 용량 최적화가 많이 됐습니다.
이전 구조에 공간데이터를 넣었으면 좌절할만한 용량이-_-;;

일단 기본설명은 버전1에서 설명했으니 생략하도록 하겠습니다..;

데이터가 같은 셀들을 묶어서 용량최적화를 했고..
공간의 데이터를 가지고 있을 수 있도록 내용을 추가했습니다.
알고리즘은 V1에서 높이만 뽑던걸 Pair로 뽑도록 변경한거라 별다른 내용은 없습니다.

렌더링 되고 있는 화면은 닫힌 공간(실제 공간을 차지하고 있는)을 렌더링 하고 있지만
실제 데이터는 열린 공간을 가지고 있습니다.
닫힌 공간으로는 충돌처리를 할수가 없게 되어 버리더군요;;
이유는 캐릭터가 점..; 이라면 닫힌공간에 부딪히나..를 검사하면 되지만
캐릭터가 세로부피가 있기 때문에(머 대략2m라고 치고) 이 공간에 내가 들어갈 수 있나..를 검사하도록 만들어야 합니다.
다리가 있다고 쳤을때 다리하고 지면이 1미터 간격밖에 안되는데 지나가 버리면 이상하겠죠;;

거창하게 공간데이터 이긴 하지만 실제 사용은 높이만 가지고 있던 내용이랑 큰차이가 없어서 3D상의 공간 충돌뿐만이 아니라 공간상의 길찾기도 내용만 약간 수정해서 그대로 넣어도 사용하는데 지장은 없습니다. 속도적인 부분도 가만할수 있을정도일듯 싶습니다.

잠수나 날아다니거나 하는경우는 사실 1인칭형으로 이동이 될거기 때문에 3D길찾기가 필요한 경우는 없겠지만 혹시나 수중전투-_-같은 경우는 필요하겠죠..; 혹시 몹이 하늘을 날아다니거나..하는 경우도 써먹을수도 있을거고..;;

그리고 걸을수 있는 데이터...의 경우에는 공간데이터와는 따로 가지고 있습니다.
공간데이터쪽에 플래그 같은걸 넣어도 되지만 길찾기 할 때 속도를 높이려고 그냥 중복해서 가지고 있습니다.;;

전과 달라진 내용은 지면데이터 쪽에도 지면에 대한 공간으로 가지고 있습니다.
혹시 캐릭터나 몬스터 이동시 높이에 대한 부피체크(위에서 설명한)가 들어갈 일이 있을까봐 같이 넣었습니다. ( 사실은 따로 만들기 귀찮아서;; )

머 그외에는 버전1에 비해 특별한 내용은 없군요..;

사용자 삽입 이미지

용량을 궁금해 하실까봐 용량을 캡쳐했습니다.
dat파일이 실제 서버에서 사용하는 파일입니다.

메모리 구조와 파일구조가 거의 비슷해서 실제 셀데이터 올릴때 vector에 공간차지하는거 약간 1~2메가 정도 말고는 실제 메모리에 올라가는 용량 그대로입니다.

4020*4020 1미터 단위 4개..와 2040*2040 1미터 단위 2개..맵이 185메가 정도군요..;
원래는 좀 더되야 하는데 내부에서 중복셀을 줄이기 위해 16분할로 데이터를 가지고 있습니다.
용량의 대부분이 셀데이터와 실제 지형을 연결시켜주는 인덱스 데이터이기 때문에
중복셀이 많으면 4바이트를 쓰고 적으면 1, 2바이트를 사용하기 때문에 분할하는것과 안하는것이 차이가 꽤 납니다. ( 많게는 2배까지 )

사실 실제 서버는 존서버 방식이라 한서버에 몇개의 존만 올라가서 그냥 써도 상관은 없지만 나중에 테스트 서버같은데는 모든존을 다 올려버리게 될거 같아서 가능한 다이어트를 했습니다.

_ST가 붙은 파일들은 클라이언트용 패킹파일입니다.
파일 내용자체는 100%같습니다.

사용자 삽입 이미지
안에는 대략 이런 모냥이죠;;

서버파일은 그냥 파일을 줄줄줄 붙여논거 밖에 없습니다. 파일 합치는 방식만 다르고 실제파일은 같습니다.

클라이언트용 패킹파일샷은 압축했을때 얼마나 압축이 되나.. 참고하시라고 올렸습니다.
185메가 짜리가 72메가 가량이 되었군요..
실제 클라이언트에서 그대로 쓰는 구조라 압축률이 낮은걸 쓰고 있어서 저정도 용량입니다.
zip방식으로 걍 압축하면 50메가 정도입니다.

대충 내용은 이정도입니다..
소스를 만들어서 배포를 하거나 할 예정은 없습니다..;;;; ( 이 내용외의 기본 내용들을 만들어서 붙이기도 귀찮고 같이 딸려있는 다른 모듈들;; 덕분에;; )

알고리즘은 내용에 설명을 다 해놨으니 공간개념이 있는 프로그래머분들은 아마 내용만 보고 만드시는데 별 지장은 없을듯 싶습니다.

실제 소스도 공간데이터 만드는 부분 200라인 정도 데이터 구조랑, 로드, 세이브가 500라인정도밖에 안됩니다.

혹시 궁금하신 내용이 있으면 답변 해드리도록 하겠습니다.

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

mpl::is_vector  (2) 2009.02.17
SPE V1 - 길찾기용 지형구조  (9) 2006.12.10
게임을 위한 GUI모듈  (4) 2006.07.31
MSB/LSB template  (0) 2006.05.18
is_template  (0) 2006.05.10

요즘은 NDS에 푹빠져 살고 있습니다.
두뇌트레이닝에 있는 스도쿠는 역시 시간때우기 짱이고
조용한곳에서는 영어삼매경도 참 삼매경에 빠집니다..;;

가이블엔진이 업데이트 되서 GPU스키닝 작업을 했습니다.
그전에도 쓸려면 쓸수 있었지만 이번버전에 본개수에 맞춰서 메쉬잘라주는 기능이 추가되서 작업했습니다.
본맥스를 37개나 잡았는데 mx의 vs1.1 시뮬레이션에서도 잘돌아가서 걍 냅둘까 하는 중입니다..;;

쉐이더쪽을 손대는 김에 싹 정리하고 머리색이랑 피부색 바꾸는 작업을 하고 있는데
머리색이야 통째로 색바꾸는거니까 약간만 손보면 될거 같은데
피부색은 mx에서 지원하려다 보니까 매핑을 꽤 많이 손봐야 하는 사태가 되버려서 캐릭터팀이 싫어할것 같습니다-ㅅ-;;
게다가 알파채널에 피부색 명암을 넣어야 해서 알파를 못쓰게 되기땜시 강력한 반발이 일어날지도 모르겠습니다.
어쩝니까 mx는 텍스쳐 두장밖에 못쓰는데.. 카툰쉐이딩때문에 쉐이딩용 텍스쳐 한장 써야 하는데-ㅅ-;;

SPE는 공간데이터까지 잘 넣어서 대략 2.0으로 버전업이 됐는데..
실제로 날아다니거나 수영 로직을 만들어서 테스트 해야 하는데 스케줄이 한참뒤에 있어서 로직테스트는 못해봤습니다.
대략 툴에서 확인해보기는 이상없습니다.
스샷 찍어서 올린다는걸 귀찮아서 못하고 있습니다..;

요즘 할일은 많은데 시간은 없는 사태가 벌어지고 있어서 참 스트레스가 많습니다..;
이번주부터 꼬박꼬박 새벽2~3시 사이에 잔다~!! 라고 하고 있는데 벌써 4시가 넘었습니다-ㅅ-;;

PS. 먼가 이렇게 쓰고 있자니 학교제출용 일기를 쓰고 있는것 같은 기분입니다..;

대략 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
게임을 위한 GUI모듈  (4) 2006.07.31
MSB/LSB template  (0) 2006.05.18
is_template  (0) 2006.05.10

+ Recent posts