복셀 자동 복원 기능을 넣었다.
전투필드나 마을처럼 많은 플레이어들이 함께 이용하는 맵이라면 플레이어들이 지형을 멋대로 바꾸면 큰 문제가 생길 수 있다. 따라서 자유로운 복셀 편집은 개인맵과 크래프트 전용 맵에서만 허용할 예정이다. 전투필드와 마을을 퍼블릭 맵이라 부른다. 그리고 이 퍼블릭맵은 기본적으로 복셀 편집 금지다.

퍼블릭 맵에선 기본적으로 복셀 편집 금지지만…게임을 처음 시작하면 틀림없이 지형을 뽀개보고 싶을 것이다. 지형이 파괴되지 않으면 플레이어는 실망하겠지. 그래서 파괴는 가능하되 맵을 완전히 뒤집어놓지는 못하도록 복원 기능을 넣었다.

서버/클라이언트 연동하는 테스트는 상당히 짜증나고 시간을 많이 잡아먹기 때문에 최대한 클라이언트만으로 작업을 했다. 코드 자체는 서버에 맞춰서 짜고 클라이언트의 virtual 서버에서 이를 사용해서 테스트했다. 여기서 검증된 코드를 약간 변형하여 서버에 복셀 복원 기능을 추가했다.

파괴된 복셀 오브젝트를 복원할때 해당 위치에 캐릭터랑 겹치면 안된다. 또한 cpu를 최대한 적게 사용해야하고 패킷량도 줄여야하니 고려할게 많다. 아직 더 손보고 테스트할게 많지만 일단 구현 자체는 완료했다.
복셀 오브젝트에 겹치는 경우는 복원을 보류하도록 했다. 일단은 복셀 오브젝트에 겹친 상태로 끼이는 일은 없을것이다. 하지만 그렇게 해도 복셀 지형을 파내려가면 갇힐수가 있다. 주변의 오브젝트들이 복원되면서 캐릭터 주변이 꽉 채워지면 갇히게 된다.
뭐 어차피 복셀 편집 불가능한 맵에서 안전장치로 만들어놓은 거니까…갇히면 주변을 파괴해서 다시 굴파고 나오면 됨.


”에 대한 답글 4개

  1. 우연히 DX12 검색하다가 들어왔는데 혹시 DX12공부는 어떤식으로 하셨나요…??
    다이렉트 공부하기가 너무 어렵네요….

    좋아요

      1. 실전적용은 뭔가를 만들어보라는 말씀이신가요??
        다이렉트 포트폴리오로 디아블로2 모작 만드려는데 너무 어려워서 어떻게 공부해야하나…싶거든요 ㅠㅠ

        좋아요

      2. 네. 뭔가 만들어보라는 얘기입니다. 잘은 모르지만 말씀하시는 내용으로 보아 게임을 직접 만들어보신적은 없는거 같은데요. 디아블로는 너무 어렵고요. 갤러그류의 간단한 슈팅을 먼저 만들어보세요. DirectX학습을 위해서는 3ds max에서 만든 캐릭터 모델을 로드해서 렌더링/애니메이션 하는걸 만들어보는게 좋습니다.

        좋아요

답글 남기기

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

WordPress.com 로고

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

Facebook 사진

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

%s에 연결하는 중