Game Dev – 다양한 사이즈의 복셀 지원 및 컬러 팔레트 구현

날이 더워지니 작업이 점점 더뎌진다. 그래도 꾸역꾸역 작업을 진행시켜나가고 있다.

처음엔 10cm길이의 정방형 복셀만을 사용해서 파괴 가능한 조밀한 지형지물에만 사용하려 했다.
그렇지만..음 역시 이 데모-혹은 게임을 완성했을때 2명 이상이 동시에 접속해서 pvp를 즐길거라고는 전혀 생각이 들지 않는다.
그래서 마인크래프트처럼 뭔가 만들 수 있는 기능을 우선 넣기로 했다.

그러자면 10cm짜리 복셀은 뭔가를 만들어내기 위한 블럭으로 사용하기엔 너무 작다. 너무 조밀하다. 따라서 좀더 큰 복셀들도 지원해야할 필요가 있다.
그래서 엔진단에서 10cm짜리부터 160cm짜리 복셀까지 다양하게 사용할 수 있도록 수정했다. 이 과정에서 시간이 좀 걸렸다. 아니 구현은 금방 했는데 버그 잡느라고 꽤 걸렸다.게다가 DX11/DX12, UWP까지 지원해야 했다.

그리고 편집 기능을 제대로 넣기 위해서 게임 클라이언트의 구조도 좀 바꿨다. 내부적으로 VoxelEditor라는 클래스를 만들어서 편집 전용 기능을 몰아넣었다.

복셀 오브젝트와 각 오브젝트별 복셀을 picking하는 기능을 만들어 넣었다.
picking을 구현함에 있어 Octree-Traversal알고리즘을 사용하면 굉장히 빠르게 처리할 수 있는데, 일단 나중에 구현하기로 하고 단순하게 Octree를 계층적으로 순회하는 방법으로 처리했다.

UI기능도 약간 손을 봐서 컬러 팔레트를 다이얼로그 형태로 출력할 수 있게 했다.

기능 구현은 별거 없는데 기능 구현을 위해 구조를 뜯어고치고 그 와중에 발견된 버그들을 잡느라 적지 않은 시간이 걸렸다. 그래도 덕택에 다음 진도 나가기엔 좀 수월하지 않을까 싶다.

이후 작업은
-Voxel Object추가/삭제
-Voxel 추가/삭제
-Voxel Object 를 담을 KD-Tree구현

여기까지 하면 다시 서버작업으로 들어간다.


답글 남기기

댓글을 게시하려면 다음의 방법 중 하나를 사용하여 로그인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중