Game Dev – Voxel Horizon – 개인맵 기능 개선. PVP맵 추가

당초 PvP맵을 구현계획을 세웠을땐 개인맵 기능과 분리할 생각이었다. 하지만 PvP맵이라고 해도 인스턴스 맵인데 현재 인스턴스맵 기능은 개인맵에서만 사용한다. 또한 개인맵에서 만든 복셀지형을 PvP맵의 지형으로 사용할 경우 비동기 로딩이 필요하다. 비동기 로드 기능은 개인맵에서 이미 구현되어있다. 겹치는 기능이 너무 많고 그 기능의 대부분은 개인맵에서 구현해놨으므로 결국 개인맵 기능의 일부로서 PvP맵을 구현했다. PvP맵에 입장할때도 권한을 체크하는게 필요한데 … More Game Dev – Voxel Horizon – 개인맵 기능 개선. PVP맵 추가

Game Dev – Voxel Horizon – 자동 최적화 기능 구현

메모리를 절약하고 처리 성능을 높이기 위한 자동 최적화 기능을 구현했다. 복셀 오브젝트는 8x8x8(최소 복셀 크기 50cm^3)에서 1x1x1(최소복셀 크기 1m^3)까지 가변적인 사이즈를 가진다. 복셀 오브젝트는 모양과 색칠된 상태를 유지한다는 전제하에 최적화 될 수 있다. 8x8x8 -> 4x4x4로 4x4x4 -> 2x2x2로 2x2x2 -> 1x1x1로 당연히 8x8x8오브젝트가 1x1x1짜리 오브젝트에보다 메모리를 더 먹는다. 복셀 데이터 스트리밍할때 패킷량도 더 크다. … More Game Dev – Voxel Horizon – 자동 최적화 기능 구현

Voxel Horizon – 개인맵 기능 개선 및 GUI추가.

개인맵 기능 자체는 몇개월 전에 구현했다. 완벽하다고 볼순 없지만 핵심적인 기능은 모두 구현했다. 또한 성능저하를 막기 위해 개인맵의 생성/삭제를 완전히 백그라운드에서 비동기적으로 처리하도록 했다. 이 부분이 꽤 힘들었다. 이때는 단순히 기능 구현이 목표였다. 이때만 해도 어지간한 UI는 콘솔로 다 처리할 생각이었으므로 UI부분은 전혀 신경 쓰지 않았다. 정말 다 콘솔로 구현했다. 11월에 출시한다고 마음을 굳힌 상황에서 … More Voxel Horizon – 개인맵 기능 개선 및 GUI추가.

Game Dev – Voxel Horizon 개발중 잡설

VOXEL HORIZON프로젝트를 시작하게 된 최초의 동기는 다음과 같다. – 배경 리소스 뽑아줄 디자이너가 없다. – 복셀렌더링을 해보고 싶었다. 그리고 개발을 진행해오면서 늘 유지하고 있는 프로젝트의 가장 큰 목적은 다음과 같다. – 자체엔진 개발이 옳다는걸 증명하고 싶다. 내 엔진만의 장점을 보이고 싶다. 상용 엔진의 기능 만으로 복셀월드를 렌더링할 수 없으니까. 복셀월드를 MMORPG베이스로 구현한다고 하는 것은 단순히 … More Game Dev – Voxel Horizon 개발중 잡설

Voxel Horizon – 복셀 월드에 몬스터 배치

이전에도 게임 서버에 몬스터를 올린적이 있었지만 그땐 기능 테스트를 위해서 하드코딩으로 올린거였다. 이번에는 절차대로 몬스터를 배치했다. 1. 맵툴에서 몬스터 배치 2. 맵툴 -> DB로 저장. 3. 게임서버가 DB의 몬스터 리스트를 읽어와서 로딩 및 배치. 몬스터에게 무기를 쥐어주지 않았으므로 공격은 못한다. 몬스터와 이벤트 NPC에는 당초 목표대로 실시간 복셀라이제이션을 적용했다. 과거에는 NPC서버와 Game서버를 따로 두고 통신하도록 했는데 … More Voxel Horizon – 복셀 월드에 몬스터 배치

Game Dev – Voxel Horizon – 가변 월드 사이즈 적용을 위한 사전작업

먼저번에 node사이즈를 꽤 줄여서 KD-Tree메모리로 56MB 사용하던것을 18M로 줄였다. 그 다음으로 맵 유형에 따라 Tree의 사이즈를 가변적으로 선택할 수 있도록 작업하고 있다. 지금까지는 월드 사이즈를 1km x 1km x 0.32km 고정으로 설정했었다. 이것은 kd-tree가 커버하는 사이즈이기도 하며 복셀월드에서 복셀들이 차지하는 실제 사이즈와는 관계가 없다. 퍼블릭맵에서는 1km x 1km를 기본으로 하고 있으므로 문제가 될것이 없다. 하지만 … More Game Dev – Voxel Horizon – 가변 월드 사이즈 적용을 위한 사전작업

Voxel Horizon – 개인맵

플레이어가 공용맵에서 지형을 마구 뽀개거나 마구 건물을 짓거나 하면 다른 플레이어에게 큰 피해가 된다. 따라서 공용맵에선 복셀 편집 기능을 제한해야 한다. 그래서 공용맵에선 플레이어당 편집 범위가 32m x 32m로 제한된다. 또한 마을이나 전투필드처럼 NPC가 배치되는 맵의 경우 지형을 함부로 변경하면 곤란하다. 안전장치로 마을이나 전투 필드에선 복셀을 파괴하더라도 몇초후 자동복구 되도록 했다. 그런데 이렇게 제약사항이 많아지면 … More Voxel Horizon – 개인맵